fullname syntax variable for testsuite

Bob Rossi
2005-05-05T17:32:34Z

Hi all,

Hopefully this should make everyone happy. If the regex is slightly
incorrect, after this patch, it should be simple to modify it and have
the testsuite pick up on those changes.

As you will notice, the initial regex that Eli posted does not match the
case d:foo. If it is desired to match this case up front, I can do that.
Otherwise, it's noted in the comment, and can be changed when we run
into the problem.

Thanks,
Bob Rossi

2005-05-05 Bob Rossi <bob_rossi@cox.net>

* lib/gdb.exp (fullname_syntax): Added global regex.
* gdb.mi/mi-file.exp (test_file_list_exec_source_file): Added
fullname_syntax variable to scope and use it.
(test_file_list_exec_source_files): Ditto.
* gdb.mi/mi2-file.exp (test_file_list_exec_source_file): Ditto.

Index: gdb.mi/mi-file.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-file.exp,v
retrieving revision 1.4
diff -w -u -r1.4 mi-file.exp
--- gdb.mi/mi-file.exp 15 Aug 2004 10:15:58 -0000 1.4
+++ gdb.mi/mi-file.exp 5 May 2005 17:23:42 -0000
@@ -48,6 +48,7 @@
global srcfile
global srcdir
global subdir
+ global fullname_syntax
set srcfilepath [string_to_regexp ${srcdir}/${subdir}/${srcfile}]

# get the path and absolute path to the current executable
@@ -63,16 +64,17 @@
set line_default [expr $line_main_body - $gdb_lines_to_list + 1]

mi_gdb_test "111-file-list-exec-source-file" \
- "111\\\^done,line=\"$line_default\",file=\"${srcfilepath}\",fullname=\"/.*/${srcfile}\"" \
+ "111\\\^done,line=\"$line_default\",file=\"${srcfilepath}\",fullname=\"$fullname_syntax${srcfile}\"" \
"request path info of current source file (${srcfile})"
}

proc test_file_list_exec_source_files {} {
global srcfile
+ global fullname_syntax

# get the path and absolute path to the current executable
mi_gdb_test "222-file-list-exec-source-files" \
- "222\\\^done,files=\\\[\{file=\".*/${srcfile}\",fullname=\"/.*/${srcfile}\"\},\{file=\".*\"\},\{file=\".*\"\},\{file=\".*\"\},\{file=\".*\"\}\\\]" \
+ "222\\\^done,files=\\\[\{file=\".*/${srcfile}\",fullname=\"$fullname_syntax${srcfile}\"\},\{file=\".*\"\},\{file=\".*\"\},\{file=\".*\"\},\{file=\".*\"\}\\\]" \
"Getting a list of source files."
}

Index: gdb.mi/mi2-file.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi2-file.exp,v
retrieving revision 1.5
diff -w -u -r1.5 mi2-file.exp
--- gdb.mi/mi2-file.exp 15 Aug 2004 10:15:58 -0000 1.5
+++ gdb.mi/mi2-file.exp 5 May 2005 17:23:42 -0000
@@ -48,6 +48,7 @@
global srcfile
global srcdir
global subdir
+ global fullname_syntax
set srcfilepath [string_to_regexp ${srcdir}/${subdir}/${srcfile}]

# get the path and absolute path to the current executable
@@ -63,7 +64,7 @@
set line_default [expr $line_main_body - $gdb_lines_to_list + 1]

mi_gdb_test "111-file-list-exec-source-file" \
- "111\\\^done,line=\"$line_default\",file=\"${srcfilepath}\",fullname=\"/.*/${srcfile}\"" \
+ "111\\\^done,line=\"$line_default\",file=\"${srcfilepath}\",fullname=\"$fullname_syntax${srcfile}\"" \
"request path info of current source file (${srcfile})"
}

Index: lib/gdb.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v
retrieving revision 1.62
diff -w -u -r1.62 gdb.exp
--- lib/gdb.exp 3 May 2005 00:41:49 -0000 1.62
+++ lib/gdb.exp 5 May 2005 17:23:43 -0000
@@ -51,6 +51,15 @@
set gdb_prompt "\[(\]gdb\[)\]"
}

+# The variable fullname_syntax is a regexp which matches what GDB considers
+# an absolute path. It is currently debatable if the windows style paths
+# d:foo and \abc should be considered valid as an absolute path.
+# This regex matches \abc but not d:foo.
+global fullname_syntax
+if ![info exists fullname_syntax] then {
+ set fullname_syntax "(\[A-z\]:)?\[/\\\\\].*"
+}