diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2009-04-30 17:07:43 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2009-04-30 17:07:43 -0400 |
commit | 059cd9efbd82e1017406a7a290a2fb9f6bfb64f7 (patch) | |
tree | 8ab74af55066fd93c30682da09014aa81e3339ef /testsuite/systemtap.syscall/test.tcl | |
parent | c12f7fa15eec148307fa94f886b0673c1d0dd789 (diff) | |
download | systemtap-steved-059cd9efbd82e1017406a7a290a2fb9f6bfb64f7.tar.gz systemtap-steved-059cd9efbd82e1017406a7a290a2fb9f6bfb64f7.tar.xz systemtap-steved-059cd9efbd82e1017406a7a290a2fb9f6bfb64f7.zip |
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.
Diffstat (limited to 'testsuite/systemtap.syscall/test.tcl')
-rwxr-xr-x | testsuite/systemtap.syscall/test.tcl | 13 |
1 files changed, 9 insertions, 4 deletions
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} |