summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.syscall/test-debug.tcl
diff options
context:
space:
mode:
authorfche <fche>2006-08-12 05:13:09 +0000
committerfche <fche>2006-08-12 05:13:09 +0000
commit814bc89d4635f101b2c0077598f31aad95ed15b7 (patch)
tree407a49dbaf446af4751f5068607a7fb8dad0611d /testsuite/systemtap.syscall/test-debug.tcl
parent6b6d04673a1ef175821afc7d4fabdb496698e8e3 (diff)
downloadsystemtap-steved-814bc89d4635f101b2c0077598f31aad95ed15b7.tar.gz
systemtap-steved-814bc89d4635f101b2c0077598f31aad95ed15b7.tar.xz
systemtap-steved-814bc89d4635f101b2c0077598f31aad95ed15b7.zip
2006-08-12 Frank Ch. Eigler <fche@elastic.org>
* configure.ac, Makefile.am: Descend into testsuite/ directory. Remove local test logic. * configure, Makefile.in: Regenerated. * runtest.sh: Not yet removed. * HACKING: Update for new testsuite layout. 2006-08-12 Frank Ch. Eigler <fche@elastic.org> * all: Reorganized old pass-1..4 tests one dejagnu bucket. Moved over old pass-5 tests, except for disabled syscalls tests. * Makefile (installcheck): New target for running pass-1..5 tests against installed systemtap.
Diffstat (limited to 'testsuite/systemtap.syscall/test-debug.tcl')
-rwxr-xr-xtestsuite/systemtap.syscall/test-debug.tcl137
1 files changed, 137 insertions, 0 deletions
diff --git a/testsuite/systemtap.syscall/test-debug.tcl b/testsuite/systemtap.syscall/test-debug.tcl
new file mode 100755
index 00000000..1eef509a
--- /dev/null
+++ b/testsuite/systemtap.syscall/test-debug.tcl
@@ -0,0 +1,137 @@
+#!/usr/bin/env wish
+package require Expect
+
+proc cleanup {} {
+ global dir current_dir
+ puts "cleanup"
+ if {$current_dir != ""} {
+ cd $current_dir
+ exec rm -rf $dir
+ set current_dir ""
+ }
+ exit 0
+}
+
+proc usage {progname} {
+ puts "Usage: $progname testname"
+ cleanup
+}
+
+proc bgerror {error} {
+ puts "ERROR: $error"
+ cleanup
+}
+trap {cleanup} SIGINT
+if {[catch {exec mktemp -d staptestXXXXX} dir]} {
+ puts "Failed to create temporary directory: $dir"
+ cleanup
+}
+
+set current_dir ""
+set testname [lindex $argv 0]
+set modname [lindex $argv 1]
+
+if {$testname == ""} {
+ usage $argv0
+ cleanup
+}
+set filename "${testname}.c"
+set cmd "stap -c ../${testname} ../sys.stp"
+
+# extract the expected results
+# Use the preprocessor so we can ifdef tests in and out
+
+set ccmd "gcc -E -C -P $filename"
+catch {eval exec $ccmd} output
+
+set ind 0
+foreach line [split $output "\n"] {
+ if {[regsub {//} $line {} line]} {
+ set line "$testname: [string trimleft $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
+
+ set results($ind) $line
+ incr ind
+ }
+}
+
+if {$ind == 0} {
+ puts "UNSUPP"
+ exit
+}
+
+set current_dir [pwd]
+cd $dir
+catch {eval exec $cmd} output
+
+set i 0
+foreach line [split $output "\n"] {
+ if {[regexp $results($i) $line]} {
+ incr i
+ if {$i >= $ind} {break}
+ }
+}
+if {$i >= $ind} {
+ puts "PASS"
+} else {
+ puts "FAIL"
+}
+
+
+text .t1 -width 60 -height 20 -wrap none \
+ -xscrollcommand {.x1bar set} \
+ -yscrollcommand {.ybar set}
+text .t2 -width 60 -height 20 -wrap none \
+ -xscrollcommand {.x2bar set} \
+ -yscrollcommand {.ybar set}
+
+scrollbar .x1bar -orient horizontal -command {.t1 xview}
+scrollbar .x2bar -orient horizontal -command {.t2 xview}
+scrollbar .ybar -orient vertical -command [list bindyview [list .t1 .t2]]
+
+proc bindyview {lists args} {
+ foreach l $lists {
+ eval {$l yview} $args
+ }
+}
+
+grid .t1 .t2 .ybar -sticky nsew
+grid .x1bar .x2bar -sticky nsew
+grid columnconfigure . 0 -weight 1
+grid columnconfigure . 1 -weight 1
+grid rowconfigure . 0 -weight 1
+.t1 tag configure blue -foreground blue
+.t2 tag configure blue -foreground blue
+.t1 tag configure red -foreground red
+.t2 tag configure red -foreground red
+
+set i 0
+foreach line [split $output "\n"] {
+ if {[regexp "${testname}: " $line]} {
+ if {[regexp $results($i) $line]} {
+ .t1 insert end ${line} blue
+ .t2 insert end $results($i) blue
+ incr i
+ if {$i >= $ind} {break}
+ } else {
+ .t1 insert end ${line}
+ }
+ .t1 insert end "\n"
+ .t2 insert end "\n"
+ }
+}
+
+for {} {$i < $ind} {incr i} {
+ .t2 insert end $results($i) red
+ .t1 insert end "\n"
+ .t2 insert end "\n"
+}
+
+bind . <Destroy> {cleanup}
+