summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.syscall/test.tcl
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2009-04-30 17:07:43 -0400
committerFrank Ch. Eigler <fche@elastic.org>2009-04-30 17:07:43 -0400
commit059cd9efbd82e1017406a7a290a2fb9f6bfb64f7 (patch)
tree8ab74af55066fd93c30682da09014aa81e3339ef /testsuite/systemtap.syscall/test.tcl
parentc12f7fa15eec148307fa94f886b0673c1d0dd789 (diff)
downloadsystemtap-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-xtestsuite/systemtap.syscall/test.tcl13
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}