From 059cd9efbd82e1017406a7a290a2fb9f6bfb64f7 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 30 Apr 2009 17:07:43 -0400 Subject: syscalls testsuite: use different escape sequence The syscall testsuite uses embedded "// TEXT" markers in the .c files to designate expected output, kind of like the "dg-" bunch in the gcc test suite. Unfortunately, "//" is not a unique prefix to systemtap tests, and in particular it can occur in the system headers that will be picked up with the "gcc -E -C ..." invocation in test.tcl. So let's switch to "//staptest//". test.tcl is also modified to escape a few more mischevious regexp metacharacters that might sneak past. --- testsuite/systemtap.syscall/test.tcl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'testsuite/systemtap.syscall/test.tcl') diff --git a/testsuite/systemtap.syscall/test.tcl b/testsuite/systemtap.syscall/test.tcl index db0df138..efe48d20 100755 --- a/testsuite/systemtap.syscall/test.tcl +++ b/testsuite/systemtap.syscall/test.tcl @@ -40,22 +40,26 @@ proc run_one_test {filename flags} { target_compile $filename $dir/$testname executable $flags set sys_prog "[file dirname [file normalize $filename]]/sys.stp" - set cmd "stap -c $dir/${testname} ${sys_prog}" + set cmd "stap --skip-badvars -c $dir/${testname} ${sys_prog}" # Extract the expected results # Use the preprocessor so we can ifdef tests in and out set ccmd "gcc -E -C -P $filename" + # XXX: but note, this will expand all system headers too! catch {eval exec $ccmd} output set ind 0 foreach line [split $output "\n"] { - if {[regsub {//} $line {} line]} { + if {[regsub {//staptest//} $line {} line]} { set line "$testname: [string trimleft $line]" - + + # We need to quote all these metacharacters regsub -all {\(} $line {\\(} line - regsub -all {\)} $line {\\)} line + regsub -all {\)} $line {\\)} line regsub -all {\|} $line {\|} line + regsub -all {\+} $line {\\+} line + regsub -all {\*} $line {\\*} line regsub -all NNNN $line {[\-0-9]+} line regsub -all XXXX $line {[x0-9a-fA-F]+} line @@ -78,6 +82,7 @@ proc run_one_test {filename flags} { set i 0 foreach line [split $output "\n"] { + # send_log "Comparing $results($i) against $line" if {[regexp $results($i) $line]} { incr i if {$i >= $ind} {break} -- cgit