Add the fullname_syntax testsuite variable. This allows GDB to make sure
authorBob Rossi <bob@brasko.net>
Sun, 8 May 2005 13:42:04 +0000 (13:42 +0000)
committerBob Rossi <bob@brasko.net>
Sun, 8 May 2005 13:42:04 +0000 (13:42 +0000)
that the MI fullname field is an absolute path, instead of just checking
for .* or /.*

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.mi/mi-file.exp
gdb/testsuite/gdb.mi/mi2-file.exp
gdb/testsuite/lib/gdb.exp

index abbc0234c54c8391df6ee24493dc33ca4de4013a..3970593068249ef76365c70347c58a59e754a636 100644 (file)
@@ -1,3 +1,15 @@
+2005-05-05  Bob Rossi  <bob_rossi@cox.net>
+
+       * lib/gdb.exp (fullname_syntax): Added global regex.
+       (fullname_syntax_POSIX): Ditto.
+       (fullname_syntax_UNC): Ditto.
+       (fullname_syntax_DOS_CASE): Ditto.
+       (fullname_syntax_DOS): Ditto.
+       * 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.
+
 2005-05-04  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * gdb.threads/linux-dp.exp: Check for *-*-linux-gnu*.
index 0ce4fd64948ea0bafaae7e5a8de02438244f8a23..61044663841873ae2b32e2bfa6a72a37116d226d 100644 (file)
@@ -48,6 +48,7 @@ proc test_file_list_exec_source_file {} {
     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 @@ proc test_file_list_exec_source_file {} {
     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 1e81df6d6a427cbcdc0127a9f2104556190347ce..50581ca49f5f956771f2e9493829ec3e68e07b5c 100644 (file)
@@ -48,6 +48,7 @@ proc test_file_list_exec_source_file {} {
     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 @@ proc test_file_list_exec_source_file {} {
     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 c587c87c05e86f944d104300bbbce7aa6346e43a..c2c0b1536813956d2dadd95fbb87e14fbfe0eec4 100644 (file)
@@ -51,6 +51,26 @@ if ![info exists gdb_prompt] then {
     set gdb_prompt "\[(\]gdb\[)\]"
 }
 
+# The variable fullname_syntax_POSIX is a regexp which matches a POSIX 
+# absolute path ie. /foo/ 
+set fullname_syntax_POSIX "/.*/"
+# The variable fullname_syntax_UNC is a regexp which matches a Windows 
+# UNC path ie. \\D\foo\ 
+set fullname_syntax_UNC {\\\\[^\\]+\\.+\\}
+# The variable fullname_syntax_DOS_CASE is a regexp which matches a 
+# particular DOS case that GDB most likely will output
+# ie. \foo\, but don't match \\.*\ 
+set fullname_syntax_DOS_CASE {\\[^\\].*\\}
+# The variable fullname_syntax_DOS is a regexp which matches a DOS path
+# ie. a:\foo\ && a:foo\ 
+set fullname_syntax_DOS {[a-zA-Z]:.*\\}
+# 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.
+# Also, the purpse of this regexp is not to recognize a well formed 
+# absolute path, but to say with certainty that a path is absolute.
+set fullname_syntax "($fullname_syntax_POSIX|$fullname_syntax_UNC|$fullname_syntax_DOS_CASE|$fullname_syntax_DOS)"
+
 # Needed for some tests under Cygwin.
 global EXEEXT
 global env