]> sourceware.org Git - systemtap.git/commitdiff
Don't spawn uprobes tests with sudo
authorJosh Stone <jistone@redhat.com>
Wed, 5 Aug 2009 23:55:24 +0000 (16:55 -0700)
committerJosh Stone <jistone@redhat.com>
Thu, 6 Aug 2009 00:06:11 +0000 (17:06 -0700)
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.

testsuite/lib/systemtap.exp
testsuite/systemtap.base/bz10078.exp
testsuite/systemtap.base/bz6850.exp
testsuite/systemtap.base/bz6905.exp
testsuite/systemtap.base/uprobes.exp

index 76fd57bd22be6957adaa5f04e42e3c73ad283c0a..82afb6b7b450c5dde179fea2c991fa245ffb5ab4 100644 (file)
@@ -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"
index cad3a3a870fe9150b3bb301592d43412132fdc79..8928a078f8ea7f77d25139f5d581b2e703483d0f 100644 (file)
@@ -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
index 32ecdaf5f9676be76a8baeeaa6ea394392ce39be..1b88ac108b001e3112622b818aa59dda94053604 100644 (file)
@@ -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 }
index 8119159e8da5258c23d0bedd2e2f01fde6b330ed..20a846cca9ac1f2f53cde82a8ee2ee1d96cf2ca4 100644 (file)
@@ -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 {
index 6344cbf0ad91c65d65324c373440bff607986ac0..bdd620b3ebaffcd30ecec83d8cd4dc2beddbf7ed 100644 (file)
@@ -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 }
This page took 0.030947 seconds and 5 git commands to generate.