summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2009-08-05 16:55:24 -0700
committerJosh Stone <jistone@redhat.com>2009-08-05 17:06:11 -0700
commitf249edcd5f135278e15ccafb497be520c325a5e4 (patch)
treebfe1c5c56dc3c19f55406594b7d92a5182ed11f8 /testsuite
parentdceb9cebada8326f7eb5097475303c28e81b105b (diff)
downloadsystemtap-steved-f249edcd5f135278e15ccafb497be520c325a5e4.tar.gz
systemtap-steved-f249edcd5f135278e15ccafb497be520c325a5e4.tar.xz
systemtap-steved-f249edcd5f135278e15ccafb497be520c325a5e4.zip
Don't spawn uprobes tests with sudo
Using spawn with sudo doesn't work well, because the password prompt won't go to the correct TTY. The only reason that the uprobes tests needed to do this is so uprobes.ko could be built as root. Now instead, I've added a pre-check that will directly call the uprobes make with sudo (via the as_root proc). * testsuite/lib/systemtap.exp (uprobes_p): Check and build uprobes.ko. * testsuite/systemtap.base/uprobes.exp: Use uprobes_p; don't spawn sudo. * testsuite/systemtap.base/bz6850.exp: Ditto. * testsuite/systemtap.base/bz10078.exp: Ditto. * testsuite/systemtap.base/bz6905.exp: sudo isn't needed for -p2.
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/lib/systemtap.exp23
-rw-r--r--testsuite/systemtap.base/bz10078.exp6
-rw-r--r--testsuite/systemtap.base/bz6850.exp6
-rw-r--r--testsuite/systemtap.base/bz6905.exp3
-rw-r--r--testsuite/systemtap.base/uprobes.exp6
5 files changed, 30 insertions, 14 deletions
diff --git a/testsuite/lib/systemtap.exp b/testsuite/lib/systemtap.exp
index 76fd57bd..82afb6b7 100644
--- a/testsuite/lib/systemtap.exp
+++ b/testsuite/lib/systemtap.exp
@@ -26,6 +26,29 @@ proc utrace_p {} {
}
+proc uprobes_p {} {
+ global env
+ if {! [utrace_p]} {
+ return 0
+ }
+ set uprobes $env(SYSTEMTAP_RUNTIME)/uprobes
+ set res [catch "exec make -q -C $uprobes uprobes.ko" output]
+ if {$res != 0} {
+ if {! [installtest_p]} {
+ # build as user in the source tree
+ verbose -log "exec make -C $uprobes"
+ set res [catch "exec make -C $uprobes" output]
+ verbose -log "OUT $output"
+ verbose -log "RC $res"
+ } else {
+ # build as root in the installed location
+ set res [as_root "make -C $uprobes"]
+ }
+ }
+ if {$res == 0} { return 1 } else { return 0 }
+}
+
+
proc print_systemtap_version {} {
set version [exec /bin/uname -r]
set location "/boot/vmlinux-$version"
diff --git a/testsuite/systemtap.base/bz10078.exp b/testsuite/systemtap.base/bz10078.exp
index cad3a3a8..8928a078 100644
--- a/testsuite/systemtap.base/bz10078.exp
+++ b/testsuite/systemtap.base/bz10078.exp
@@ -3,7 +3,7 @@ set test bz10078
catch {exec gcc -g -o $test $srcdir/$subdir/$test.c} err
if {$err == "" && [file exists $test]} then { pass "$test compile" } else { fail "$test compile" }
-if {![utrace_p]} {
+if {![uprobes_p]} {
catch {exec rm -f $test}
untested "$test -p4"
untested "$test -p5"
@@ -19,9 +19,7 @@ if {! [installtest_p]} {
return
}
-# Pick up the stap being tested.
-set stapexe [exec /usr/bin/which stap]
-spawn sudo $stapexe $srcdir/$subdir/$test.stp -c ./$test
+spawn stap $srcdir/$subdir/$test.stp -c ./$test
set ok 0
expect {
-timeout 60
diff --git a/testsuite/systemtap.base/bz6850.exp b/testsuite/systemtap.base/bz6850.exp
index 32ecdaf5..1b88ac10 100644
--- a/testsuite/systemtap.base/bz6850.exp
+++ b/testsuite/systemtap.base/bz6850.exp
@@ -3,7 +3,7 @@ set test bz6850
catch {exec gcc -g -o bz6850 $srcdir/$subdir/bz6850.c} err
if {$err == "" && [file exists bz6850]} then { pass "$test compile" } else { fail "$test compile" }
-if {![utrace_p]} {
+if {![uprobes_p]} {
catch {exec rm -f $test}
untested "$test -p4"
untested "$test -p5"
@@ -19,9 +19,7 @@ if {! [installtest_p]} {
return
}
-# Pick up the stap being tested.
-set stapexe [exec /usr/bin/which stap]
-spawn sudo $stapexe $srcdir/$subdir/bz6850.stp -c ./bz6850
+spawn stap $srcdir/$subdir/bz6850.stp -c ./bz6850
expect {
-timeout 60
-re {[^\r\n]*called\r\n} { exp_continue }
diff --git a/testsuite/systemtap.base/bz6905.exp b/testsuite/systemtap.base/bz6905.exp
index 8119159e..20a846cc 100644
--- a/testsuite/systemtap.base/bz6905.exp
+++ b/testsuite/systemtap.base/bz6905.exp
@@ -9,8 +9,7 @@ if {![utrace_p]} {
return
}
-set stapexe [exec /usr/bin/which stap]
-spawn sudo $stapexe -p2 $srcdir/$subdir/$test.stp
+spawn stap -p2 $srcdir/$subdir/$test.stp
set hint 0
set probes 0
expect {
diff --git a/testsuite/systemtap.base/uprobes.exp b/testsuite/systemtap.base/uprobes.exp
index 6344cbf0..bdd620b3 100644
--- a/testsuite/systemtap.base/uprobes.exp
+++ b/testsuite/systemtap.base/uprobes.exp
@@ -18,7 +18,7 @@ if [file exists $path] then { pass "$test prep" } else { fail "$test prep" }
catch {exec gcc -g -o jennie jennie.c} err
if {$err == "" && [file exists jennie]} then { pass "$test compile" } else { fail "$test compile" }
-if {![utrace_p]} {
+if {! [uprobes_p]} {
untested "$test -p4"; untested "$test -p5"
catch {exec rm -f jennie.c jennie}
return
@@ -33,9 +33,7 @@ if {! [installtest_p]} {
return
}
-# Pick up the stap being tested.
-set stapexe [exec /usr/bin/which stap]
-spawn sudo $stapexe $srcdir/$subdir/uprobes.stp -w -c "./jennie 1 2 3 4"
+spawn stap $srcdir/$subdir/uprobes.stp -w -c "./jennie 1 2 3 4"
set ok 0
expect {
-re {^process[^\r\n]*jennie[^\r\n]*main[^\r\n]*argc=0x[1-5][^\r\n]*\r\n} { incr ok; exp_continue }