From f249edcd5f135278e15ccafb497be520c325a5e4 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 5 Aug 2009 16:55:24 -0700 Subject: 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. --- testsuite/systemtap.base/bz10078.exp | 6 ++---- testsuite/systemtap.base/bz6850.exp | 6 ++---- testsuite/systemtap.base/bz6905.exp | 3 +-- testsuite/systemtap.base/uprobes.exp | 6 ++---- 4 files changed, 7 insertions(+), 14 deletions(-) (limited to 'testsuite/systemtap.base') 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 } -- cgit From 9b988eff8c29377e658606a85f371ceb9acfef7d Mon Sep 17 00:00:00 2001 From: Wenji Huang Date: Wed, 5 Aug 2009 22:58:46 -0400 Subject: PR10294: support wider range for statement probe * dwflpp.cxx (iterate_over_srcfile_lines): Add pattern parameter. * dwflpp.h (iterate_over_srcfile_lines): Ditto. * testsuite/systemtap.base/bz10294.c: Test case. * testsuite/systemtap.base/bz10294.stp: Ditto. * testsuite/systemtap.base/bz6905.exp: Deleted. * testsuite/systemtap.base/statement.exp: Merge bz10294 with bz6905. --- testsuite/systemtap.base/bz10294.c | 21 +++++++++++++++++++ testsuite/systemtap.base/bz10294.stp | 4 ++++ testsuite/systemtap.base/bz6905.exp | 24 --------------------- testsuite/systemtap.base/statement.exp | 38 ++++++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+), 24 deletions(-) create mode 100644 testsuite/systemtap.base/bz10294.c create mode 100644 testsuite/systemtap.base/bz10294.stp delete mode 100644 testsuite/systemtap.base/bz6905.exp create mode 100644 testsuite/systemtap.base/statement.exp (limited to 'testsuite/systemtap.base') diff --git a/testsuite/systemtap.base/bz10294.c b/testsuite/systemtap.base/bz10294.c new file mode 100644 index 00000000..1ea9a0d9 --- /dev/null +++ b/testsuite/systemtap.base/bz10294.c @@ -0,0 +1,21 @@ +int func_a(int a) +{ + a = a + 1; + return a; +} + + +int func_b(int b) +{ + b = b + 2; + return b; +} + +int main() +{ + int a; + + a = func_a(1); + a = a + func_b(a); + return 0; +} diff --git a/testsuite/systemtap.base/bz10294.stp b/testsuite/systemtap.base/bz10294.stp new file mode 100644 index 00000000..0a18c45f --- /dev/null +++ b/testsuite/systemtap.base/bz10294.stp @@ -0,0 +1,4 @@ +#! stap -p2 +probe process("./bz10294").statement("*@bz10294.c:10-10") { + printf("ok") +} diff --git a/testsuite/systemtap.base/bz6905.exp b/testsuite/systemtap.base/bz6905.exp deleted file mode 100644 index 20a846cc..00000000 --- a/testsuite/systemtap.base/bz6905.exp +++ /dev/null @@ -1,24 +0,0 @@ -set test bz6905 - -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]} { - catch {exec rm -f $test} - untested "$test -p2" - return -} - -spawn stap -p2 $srcdir/$subdir/$test.stp -set hint 0 -set probes 0 -expect { - -timeout 60 - -re "# probes" { incr hint; exp_continue } - -re {process.*statement.*} { incr probes; exp_continue } - timeout { fail "$test (timeout)" } - eof { } -} -wait -if { $hint == 1 && $probes > 0 } then { pass "$test -p2" } else { fail "$test -p2 ($probes)" } -exec rm -f $test diff --git a/testsuite/systemtap.base/statement.exp b/testsuite/systemtap.base/statement.exp new file mode 100644 index 00000000..d8fce8d8 --- /dev/null +++ b/testsuite/systemtap.base/statement.exp @@ -0,0 +1,38 @@ +set test bz6905 + +catch {exec gcc -g -o $test $srcdir/$subdir/$test.c} err +if {$err == "" && [file exists $test]} then { pass "$test compile" } else { fail "$test compile" } + +spawn stap -p2 $srcdir/$subdir/$test.stp +set hint 0 +set probes 0 +expect { + -timeout 60 + -re "# probes" { incr hint; exp_continue } + -re {process.*statement.*} { incr probes; exp_continue } + timeout { fail "$test (timeout)" } + eof { } +} +wait +if { $hint == 1 && $probes > 0 } then { pass "$test -p2" } else { fail "$test -p2 ($probes)" } +exec rm -f $test + +set test bz10294 + +catch {exec gcc -g -o $test $srcdir/$subdir/$test.c} err +if {$err == "" && [file exists $test]} then { pass "$test compile" } else { fail "$test compile" } + +spawn stap -p2 $srcdir/$subdir/$test.stp +set hint 0 +set probes 0 +expect { + -timeout 60 + -re "# probes" { incr hint; exp_continue } + -re {process.*statement.*} { incr probes; exp_continue } + timeout { fail "$test (timeout)" } + eof { } +} +wait +if { $hint == 1 && $probes == 1 } then { pass "$test -p2" } else { fail "$test -p2 ($probes)" } +exec rm -f $test + -- cgit