Re: fullname syntax variable for testsuite

Bob Rossi
2005-05-07T03:13:12Z

On Thu, May 05, 2005 at 09:54:42PM -0400, Daniel Jacobowitz wrote:
> On Thu, May 05, 2005 at 08:44:15PM -0400, Bob Rossi wrote:
> > Here is the updated patch. I broke down the regexp into several cases.
> > It should be very easy to maintain (add/remove) the regexp as time goes
> > on. If there are any other modifications that need to be made, please
> > let me know.
> >
> > Thanks,
> > Bob Rossi
> >
> >
> > 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.
>
> This patch is OK with me. Please wait a day to see if anyone else has
> comments, and then you can check this in. After you do that I'll
> revise Dennis's patch.

I changed the DOS_CASE
from set fullname_syntax_DOS_CASE {\\[^\\]+\\}
to set fullname_syntax_DOS_CASE {\\[^\\].*\\}
as Dennis noticed, it didn't match the regex
\a\b\c\d\basics.c

Anyways, please consider this as a last chance to speak up with any
problems. Otherwise, I'll commit tomorrow.

Thanks,
Bob Rossi

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 7 May 2005 03:10:02 -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 7 May 2005 03:10:02 -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 7 May 2005 03:10:03 -0000
@@ -51,6 +51,26 @@
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)"