summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--testsuite/systemtap.syscall/ChangeLog5
-rwxr-xr-xtestsuite/systemtap.syscall/test-debug.tcl40
-rw-r--r--testsuite/systemtap.syscall/test.exp35
-rwxr-xr-xtestsuite/systemtap.syscall/test.tcl19
4 files changed, 58 insertions, 41 deletions
diff --git a/testsuite/systemtap.syscall/ChangeLog b/testsuite/systemtap.syscall/ChangeLog
index d639b06d..8552351c 100644
--- a/testsuite/systemtap.syscall/ChangeLog
+++ b/testsuite/systemtap.syscall/ChangeLog
@@ -1,3 +1,8 @@
+2007-01-09 Martin Hunt <hunt@redhat.com>
+
+ * test.exp, test.tcl, test-debug.tcl: PR 3524.
+ Support for separtet source and obj trees.
+
2006-10-27 Martin Hunt <hunt@redhat.com>
* test.exp, test.tcl: Remove our own caching code
diff --git a/testsuite/systemtap.syscall/test-debug.tcl b/testsuite/systemtap.syscall/test-debug.tcl
index 1eef509a..3497e41b 100755
--- a/testsuite/systemtap.syscall/test-debug.tcl
+++ b/testsuite/systemtap.syscall/test-debug.tcl
@@ -1,12 +1,15 @@
#!/usr/bin/env wish
package require Expect
+set dir ""
+set current_dir ""
+
proc cleanup {} {
global dir current_dir
- puts "cleanup"
+ puts "Cleanup"
if {$current_dir != ""} {
- cd $current_dir
- exec rm -rf $dir
+ cd $current_dir
+ if {$dir != ""} {exec rm -rf $dir}
set current_dir ""
}
exit 0
@@ -22,21 +25,20 @@ proc bgerror {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
+ exit
}
-set filename "${testname}.c"
-set cmd "stap -c ../${testname} ../sys.stp"
+
+set filename [lindex $argv 1]
+if {$filename == ""} {
+ set filename "${testname}.c"
+ set sys_prog "../sys.stp"
+} else {
+ set sys_prog "[file dirname [file normalize $filename]]/sys.stp"
+}
+set cmd "stap -c ../${testname} ${sys_prog}"
# extract the expected results
# Use the preprocessor so we can ifdef tests in and out
@@ -62,8 +64,14 @@ foreach line [split $output "\n"] {
}
if {$ind == 0} {
- puts "UNSUPP"
- exit
+ puts "UNSUPP"
+ cleanup
+ exit
+}
+
+if {[catch {exec mktemp -d staptestXXXXX} dir]} {
+ puts stderr "Failed to create temporary directory: $dir"
+ cleanup
}
set current_dir [pwd]
diff --git a/testsuite/systemtap.syscall/test.exp b/testsuite/systemtap.syscall/test.exp
index 8de1574a..2d441cb2 100644
--- a/testsuite/systemtap.syscall/test.exp
+++ b/testsuite/systemtap.syscall/test.exp
@@ -1,16 +1,17 @@
proc test_procedure {} {
- global subdir
- if {$subdir != ""} {
- cd $subdir
- }
-
-
+ global srcdir subdir
+ set wd [pwd]
set flags ""
- foreach filename [lsort [glob *.c]] {
- set file [string range $filename 0 end-2]
- target_compile $filename $file executable $flags
+ if {$srcdir == ""} {
+ set pattern "*.c"
+ } else {
+ set pattern "$srcdir/$subdir/*.c"
+ }
+ foreach filename [lsort [glob $pattern]] {
+ set file [file tail [string range $filename 0 end-2]]
+ target_compile $filename $wd/$file executable $flags
send_log "Testing ${file}\n"
- set res [exec ./test.tcl $file]
+ set res [exec $srcdir/$subdir/test.tcl $file $filename]
if {$res == "PASS"} {
pass "$file"
} elseif {$res == "UNSUPP"} {
@@ -24,11 +25,11 @@ proc test_procedure {} {
if {$::tcl_platform(machine) == "x86_64"} {
# on x86_64, test 32-bit and 64-bit binaries
set flags "additional_flags=-m32"
- foreach filename [lsort [glob *.c]] {
- set file [string range $filename 0 end-2]
- target_compile $filename $file executable $flags
+ foreach filename [lsort [glob $pattern]] {
+ set file [file tail [string range $filename 0 end-2]]
+ target_compile $filename $wd/$file executable $flags
send_log "Testing 32-bit ${file}\n"
- set res [exec ./test.tcl $file]
+ set res [exec $srcdir/$subdir/test.tcl $file $filename]
if {$res == "PASS"} {
pass "32-bit $file"
} elseif {$res == "UNSUPP"} {
@@ -38,11 +39,7 @@ proc test_procedure {} {
send_log "$res\n"
}
}
- }
-
- if {$subdir != ""} {
- cd ..
- }
+ }
}
test_procedure
diff --git a/testsuite/systemtap.syscall/test.tcl b/testsuite/systemtap.syscall/test.tcl
index 41934da4..082eaabe 100755
--- a/testsuite/systemtap.syscall/test.tcl
+++ b/testsuite/systemtap.syscall/test.tcl
@@ -15,6 +15,7 @@ proc cleanup {} {
proc usage {progname} {
puts "Usage: $progname testname"
+ cleanup
}
proc bgerror {error} {
@@ -23,13 +24,19 @@ proc bgerror {error} {
}
trap {cleanup} SIGINT
set testname [lindex $argv 0]
-
if {$testname == ""} {
usage $argv0
exit
}
-set filename "${testname}.c"
-set cmd "stap -c ../${testname} ../sys.stp"
+
+set filename [lindex $argv 1]
+if {$filename == ""} {
+ set filename "${testname}.c"
+ set sys_prog "../sys.stp"
+} else {
+ set sys_prog "[file dirname [file normalize $filename]]/sys.stp"
+}
+set cmd "stap -c ../${testname} ${sys_prog}"
# Extract the expected results
# Use the preprocessor so we can ifdef tests in and out
@@ -61,12 +68,12 @@ if {$ind == 0} {
}
if {[catch {exec mktemp -d staptestXXXXX} dir]} {
- puts "Failed to create temporary directory: $dir"
+ puts stderr "Failed to create temporary directory: $dir"
cleanup
}
+
set current_dir [pwd]
-cd $dir
-
+cd $dir
catch {eval exec $cmd} output
set i 0