diff options
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/ChangeLog | 46 | ||||
-rw-r--r-- | testsuite/lib/systemtap.exp | 23 | ||||
-rw-r--r-- | testsuite/systemtap.base/badkprobe.exp | 1 | ||||
-rwxr-xr-x | testsuite/systemtap.base/bz5274.exp | 8 | ||||
-rw-r--r-- | testsuite/systemtap.base/bz6850.exp | 9 | ||||
-rw-r--r-- | testsuite/systemtap.base/static_uprobes.exp | 139 | ||||
-rw-r--r-- | testsuite/systemtap.base/static_uprobes.stp | 14 | ||||
-rw-r--r-- | testsuite/systemtap.base/uprobes.exp | 9 | ||||
-rw-r--r-- | testsuite/systemtap.context/backtrace.tcl | 2 | ||||
-rw-r--r-- | testsuite/systemtap.examples/ChangeLog | 11 | ||||
-rwxr-xr-x | testsuite/systemtap.examples/io/traceio2.stp | 2 | ||||
-rwxr-xr-x | testsuite/systemtap.examples/process/futexes.stp | 2 | ||||
-rwxr-xr-x | testsuite/systemtap.examples/profiling/functioncallcount.stp | 1 | ||||
-rwxr-xr-x | testsuite/systemtap.examples/profiling/thread-times.stp | 3 | ||||
-rwxr-xr-x | testsuite/systemtap.syscall/test.tcl | 2 |
15 files changed, 214 insertions, 58 deletions
diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog index 9ce0fd10..49ff7b95 100644 --- a/testsuite/ChangeLog +++ b/testsuite/ChangeLog @@ -9,6 +9,52 @@ * systemtap.context/usymbols.c: New test program. * systemtap.context/usymbols.exp: New dejagnu test. +2009-01-22 Stan Cox <scox@redhat.com> + + * systemtap.base/static_uprobes.exp: Test dtrace. + +2009-01-20 Stan Cox <scox@redhat.com> + + * systemtap.base/static_uprobes.exp: Don't test -lsduprobes. + +2009-01-20 Wenji Huang <wenji.huang@oracle.com> + + * systemtap.base/bz5274.exp: Add checking utrace. + * systemtap.base/bz6850.exp: Ditto. + * systemtap.base/static_uprobes.exp: Ditto. + * systemtap.base/uprobes.exp: Ditto. + +2009-01-13 Stan Cox <scox@redhat.com> + + * systemtap.base/static_uprobes.exp: Use sdt.h + +2009-01-11 Wenji Huang <wenji.huang@oracle.com> + + * systemtap.base/badkprobe.exp: Add explicit timeout. + +2009-01-09 Dave Brolley <brolley@redhat.com> + + * lib/systemtap.exp: Remove ssl_server_path and ssl_client_path. + +2009-01-06 Frank Ch. Eigler <fche@elastic.org> + + PR 9699: + * systemtap.context/backtrace.tcl: Correct tcl syntax in fail message. + +2008-12-24 Dave Brolley <brolley@redhat.com> + + * lib/systemtap.exp: Rename client_path to net_path. + (setup_systemtap_environment): Set ssl_server_path and + ssl_client_path. Pass ssl_server_path to stap-find-or-start-server. + +2008-12-21 Stan Cox <scox@redhat.com> + + * systemtap.base/static_uprobes.exp: Parms now called $argN + +2008-12-16 Stan Cox <scox@redhat.com> + + * systemtap.base/static_uprobes.exp: Generate our own probes file. + 2008-12-09 Frank Ch. Eigler <fche@elastic.org> PR6961. diff --git a/testsuite/lib/systemtap.exp b/testsuite/lib/systemtap.exp index 28129f0a..f399073e 100644 --- a/testsuite/lib/systemtap.exp +++ b/testsuite/lib/systemtap.exp @@ -37,7 +37,7 @@ proc print_systemtap_version {} { proc setup_systemtap_environment {} { - global srcdir prefix env server_pid client_path + global srcdir prefix env server_pid net_path # need an absolute SRCDIR for the top-level src/ tree # XXX: or, we could change nearby uses of ${SRCDIR}/testsuite to ${SRCDIR} @@ -55,9 +55,14 @@ proc setup_systemtap_environment {} { if {[use_server_p]} then { print "Testing using a systemtap server" - # Server management scripts are installed if this is an install test, otherwise - # in the source directory. Make sure they are on the $PATH. + # A place for some temporary files and scripts. + set net_path [exec pwd]/net + exec /bin/mkdir -p $net_path + + # Server management scripts and data are installed if this is an + # install test, otherwise there is some setup to do. if {! [installtest_p]} then { + # Make sure the server management scripts are on the $PATH. set env(PATH) "$srcdir/..:$env(PATH)" } @@ -76,14 +81,12 @@ proc setup_systemtap_environment {} { # Make a copy of 'stap-client' as 'stap' and make sure it's at the # beginning of the $PATH. Do this after starting the server so that # The server does not call this instance of 'stap' - set client_path [exec pwd]/net - exec /bin/mkdir -p $client_path if {[installtest_p]} then { - exec /bin/cp -p [exec which stap-client] $client_path/stap + exec /bin/cp -p [exec which stap-client] $net_path/stap } else { - exec /bin/cp -p $srcdir/../stap-client $client_path/stap + exec /bin/cp -p $srcdir/../stap-client $net_path/stap } - set env(PATH) "$client_path:$env(PATH)" + set env(PATH) "$net_path:$env(PATH)" } # PATH, SYSTEMTAP_TAPSET, SYSTEMTAP_RUNTIME, LD_LIBRARY_PATH are already set. @@ -121,7 +124,7 @@ proc systemtap_init {args} {} proc systemtap_version {} {} proc systemtap_exit {} { - global server_pid client_path + global server_pid net_path # Stop the stap server, if we started it. if {[use_server_p]} then { @@ -131,7 +134,7 @@ proc systemtap_exit {} { } # Remove the temporary stap script - exec /bin/rm -fr $client_path + exec /bin/rm -fr $net_path } } diff --git a/testsuite/systemtap.base/badkprobe.exp b/testsuite/systemtap.base/badkprobe.exp index 1a1dbad5..efc06695 100644 --- a/testsuite/systemtap.base/badkprobe.exp +++ b/testsuite/systemtap.base/badkprobe.exp @@ -5,6 +5,7 @@ if {! [installtest_p]} { untested $test; return } spawn stap -g -w -e "$script" expect { + -timeout 60 -re "^WARNING: probe .*registration error.*" { pass $test } eof { fail "$test (eof)" } timeout { fail "$test (timeout)" } diff --git a/testsuite/systemtap.base/bz5274.exp b/testsuite/systemtap.base/bz5274.exp index 6e95a58b..db0e0a46 100755 --- a/testsuite/systemtap.base/bz5274.exp +++ b/testsuite/systemtap.base/bz5274.exp @@ -14,6 +14,14 @@ if {$err == "" && [file exists $test]} then { pass "$test compile" if {! [installtest_p]} { untested "$test -p5"; return } +# Try to find utrace_attach symbol in /proc/kallsyms +# copy from utrace_p5.exp +set utrace_support_found 0 +set path "/proc/kallsyms" +if {! [catch {exec grep -q utrace_attach $path} dummy]} { + set utrace_support_found 1 +} +if {$utrace_support_found == 0} { untested "$test -p5"; return } if {[catch {exec stap $tpath.stp -c "$srcdir/$subdir/$test.sh"} res]} { untested "$test longjmp to a uretprobed function" diff --git a/testsuite/systemtap.base/bz6850.exp b/testsuite/systemtap.base/bz6850.exp index b06b1696..73fedc8a 100644 --- a/testsuite/systemtap.base/bz6850.exp +++ b/testsuite/systemtap.base/bz6850.exp @@ -3,6 +3,15 @@ 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" } +# Try to find utrace_attach symbol in /proc/kallsyms +# copy from utrace_p5.exp +set utrace_support_found 0 +set path "/proc/kallsyms" +if {! [catch {exec grep -q utrace_attach $path} dummy]} { + set utrace_support_found 1 +} +if {$utrace_support_found == 0} { untested "$test -p4"; untested "$test -p5"; return } + set rc [stap_run_batch $srcdir/$subdir/bz6850.stp] if {$rc == 0} then { pass "$test -p4" } else { fail "$test -p4" } diff --git a/testsuite/systemtap.base/static_uprobes.exp b/testsuite/systemtap.base/static_uprobes.exp index 78641d3f..eb0d1c6e 100644 --- a/testsuite/systemtap.base/static_uprobes.exp +++ b/testsuite/systemtap.base/static_uprobes.exp @@ -8,28 +8,30 @@ set sup_flags "additional_flags=-iquote$env(SYSTEMTAP_RUNTIME) additional_flags= set fp [open $sup_srcpath "w"] puts $fp " #include <stdlib.h> -#include \"sduprobes.h\" +#define USE_STAP_PROBE 1 +#include \"static_uprobes.h\" foo () { - STAP_PROBE(tstlabel,label1); + STAP_PROBE(static_uprobes,test_probe_1); } bar (int i) { if (i == 0) i = 1000; - STAP_PROBE1(tstlabel,label2,i); + STAP_PROBE1(static_uprobes,test_probe_2,i); } baz (int i, char* s) { + STAP_PROBE1(static_uprobes,test_probe_0,i); if (i == 0) i = 1000; - STAP_PROBE2(tstlabel,label3,i,s); + STATIC_UPROBES_TEST_PROBE_3(i,s); } -buz () +buz (int parm) { } @@ -39,46 +41,120 @@ main () foo(); bar(2); baz(3,\"abc\"); + buz(4); } " close $fp -set res [target_compile $sup_srcpath $sup_exepath executable $sup_flags] -if { $res != "" } { - verbose "target_compile failed: $res" 2 - fail "compiling static_uprobes.c" - return -} else { - pass "compiling static_uprobes.c" +# set res [target_compile $sup_srcpath $sup_exepath executable $sup_flags] +# if { $res != "" } { +# verbose "target_compile failed: $res" 2 +# fail "compiling static_uprobes.c" +# return +# } else { +# pass "compiling static_uprobes.c" +# } + +set fp [open "[pwd]/static_uprobes.stp" "w"] +puts $fp " +probe process(\"static_uprobes.x\").mark(\"test_probe_0\") +{ + printf(\"In test_probe_0 probe %#x\\n\", \$arg1) +} +probe process(\"static_uprobes.x\").mark(\"test_probe_1\") +{ + printf(\"In test_probe_1 probe\\n\") +} +probe process(\"static_uprobes.x\").mark(\"test_probe_2\") +{ + printf(\"In test_probe_2 probe %#x\\n\", \$arg1) } +probe process(\"static_uprobes.x\").mark(\"test_probe_3\") +{ + printf(\"In test_probe_3 probe %#x %#x\\n\", \$arg1, \$arg2) +} +" +close $fp -set ok 0 -spawn stap -c $sup_exepath $srcdir/$subdir/static_uprobes.stp -expect { - -timeout 180 - -re {In label1 probe} { incr ok; exp_continue } - -re {In label2 probe 0x2} { incr ok; exp_continue } - -re {In label3 probe 0x3 0x[0-9a-f][0-9a-f]} { incr ok; exp_continue } - timeout { fail "$test (timeout)" } - eof { } +# Try to find utrace_attach symbol in /proc/kallsyms +# copy from utrace_p5.exp +set utrace_support_found 0 +set path "/proc/kallsyms" +if {! [catch {exec grep -q utrace_attach $path} dummy]} { + set utrace_support_found 1 } +if {$utrace_support_found == 0} { untested "$test"; return } + +set ok 0 +# verbose -log "spawn stap -c $sup_exepath [pwd]/static_uprobes.stp" +# spawn stap -c $sup_exepath [pwd]/static_uprobes.stp +# expect { +# -timeout 180 +# -re {In test_probe_1 probe} { incr ok; exp_continue } +# -re {In test_probe_2 probe 0x2} { incr ok; exp_continue } +# -re {In test_probe_0 probe 0x3} { incr ok; exp_continue } +# -re {In test_probe_3 probe 0x3 0x[0-9a-f][0-9a-f]} { incr ok; exp_continue } +# timeout { fail "$test (timeout)" } +# eof { } +# } + +# if {$ok == 4} { pass "$test" } { fail "$test ($ok)" } +set ok 0 # Now do a debuginfo style probe of the above test set fp [open "[pwd]/static_uprobes.sh" "w"] puts $fp " ed $sup_srcpath <<HERE -1a -#define USE_STAP_DEBUGINFO_PROBE 1 +/USE_STAP_PROBE/d +/buz/+1 +a + DTRACE_PROBE1(static_uprobes,test_probe_4,parm); . w q -HERE " close $fp spawn sh [pwd]/static_uprobes.sh -set sup_flags "additional_flags=-iquote$env(SYSTEMTAP_RUNTIME) additional_flags=-g additional_flags=$env(SYSTEMTAP_RUNTIME)/sduprobes.c" +set fp [open "[pwd]/static_uprobes.stp" "w"] +puts $fp " +probe process(\"static_uprobes.x\").mark(\"test_probe_0\") +{ + printf(\"In test_probe_0 probe %#x\\n\", \$arg1) +} +probe process(\"static_uprobes.x\").mark(\"test_probe_1\") +{ + printf(\"In test_probe_1 probe\\n\") +} +probe process(\"static_uprobes.x\").mark(\"test_probe_2\") +{ + printf(\"In test_probe_2 probe %#x\\n\", \$arg1) +} +probe process(\"static_uprobes.x\").mark(\"test_probe_3\") +{ + printf(\"In test_probe_3 probe %#x %#x\\n\", \$arg1, \$arg2) +} +probe process(\"static_uprobes.x\").mark(\"test_probe_4\") +{ + printf(\"In test_probe_4 dtrace probe %#x\\n\", \$arg1) +} +" +close $fp + +set fp [open "[pwd]/static_uprobes.d" "w"] +puts $fp " +provider static_uprobes { + probe test_probe_1 (); + probe test_probe_2 (int i); + probe test_probe_3 (int i, char* x); + probe test_probe_4 (int i); +}; +" +close $fp +spawn dtrace -h -s [pwd]/static_uprobes.d + +set sup_flags "additional_flags=-iquote$env(SYSTEMTAP_RUNTIME) additional_flags=-g additional_flags=-O additional_flags=-I." set res [target_compile $sup_srcpath $sup_exepath executable $sup_flags] if { $res != "" } { verbose "target_compile failed: $res" 2 @@ -88,16 +164,19 @@ if { $res != "" } { pass "compiling sduprobes.c -g" } -spawn stap -c $sup_exepath $srcdir/$subdir/static_uprobes.stp +verbose -log "spawn stap -c $sup_exepath [pwd]/static_uprobes.stp" +spawn stap -c $sup_exepath [pwd]/static_uprobes.stp expect { -timeout 180 - -re {In label1 probe} { incr ok; exp_continue } - -re {In label2 probe 0x2} { incr ok; exp_continue } - -re {In label3 probe 0x3 0x[0-9a-f][0-9a-f]} { incr ok; exp_continue } + -re {In test_probe_1 probe} { incr ok; exp_continue } + -re {In test_probe_2 probe 0x2} { incr ok; exp_continue } + -re {In test_probe_0 probe 0x3} { incr ok; exp_continue } + -re {In test_probe_3 probe 0x3 0x[0-9a-f][0-9a-f]} { incr ok; exp_continue } + -re {In test_probe_4 dtrace probe 0x4} { incr ok; exp_continue } timeout { fail "$test (timeout)" } eof { } } wait -if {$ok == 6} { pass "$test" } { fail "$test ($ok)" } +if {$ok == 5} { pass "$test" } { fail "$test ($ok)" } diff --git a/testsuite/systemtap.base/static_uprobes.stp b/testsuite/systemtap.base/static_uprobes.stp deleted file mode 100644 index b9de197e..00000000 --- a/testsuite/systemtap.base/static_uprobes.stp +++ /dev/null @@ -1,14 +0,0 @@ -probe process("static_uprobes.x").mark("label1") -{ - printf("In label1 probe\n") -} - -probe process("static_uprobes.x").mark("label2") -{ - printf("In label2 probe %#x\n", $arg1) -} - -probe process("static_uprobes.x").mark("label3") -{ - printf("In label3 probe %#x %#x\n", $arg1, $arg2) -} diff --git a/testsuite/systemtap.base/uprobes.exp b/testsuite/systemtap.base/uprobes.exp index 408ba8c4..e8318586 100644 --- a/testsuite/systemtap.base/uprobes.exp +++ b/testsuite/systemtap.base/uprobes.exp @@ -18,6 +18,15 @@ 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" } +# Try to find utrace_attach symbol in /proc/kallsyms +# copy from utrace_p5.exp +set utrace_support_found 0 +set path "/proc/kallsyms" +if {! [catch {exec grep -q utrace_attach $path} dummy]} { + set utrace_support_found 1 +} +if {$utrace_support_found == 0} { untested "$test -p4"; untested "$test -p5"; return } + set rc [stap_run_batch $srcdir/$subdir/uprobes.stp] if {$rc == 0} then { pass "$test -p4" } else { fail "$test -p4" } diff --git a/testsuite/systemtap.context/backtrace.tcl b/testsuite/systemtap.context/backtrace.tcl index aaec4cb8..ca60c369 100644 --- a/testsuite/systemtap.context/backtrace.tcl +++ b/testsuite/systemtap.context/backtrace.tcl @@ -128,7 +128,7 @@ expect { } exp_continue } - eof {fail "backtrace of yyy_func[2-4]: unexpected EOF" } + eof {fail "backtrace of yyy_func*: unexpected EOF" } } exec kill -INT -[exp_pid] if {$m1 == 3} { diff --git a/testsuite/systemtap.examples/ChangeLog b/testsuite/systemtap.examples/ChangeLog index 810df78c..253e1a76 100644 --- a/testsuite/systemtap.examples/ChangeLog +++ b/testsuite/systemtap.examples/ChangeLog @@ -1,3 +1,14 @@ +2009-01-02 Mark Wielaard <mjw@redhat.com> + + PR9693. Reported by Eugeniy Meshcheryakov <eugen@debian.org> + * io/traceio2.stp: Add proper #! /usr/bin/env stap line. + * profiling/functioncallcount.stp: Likewise. + +2008-12-10 William Cohen <wcohen@redhat.com> + + * process/futexes.stp: + * profiling/thread-times.stp: Tweak formatting. + 2008-12-10 Tim Moore <timoore@redhat.com> * profiling/latencytap.stp: Probe scheduler to identify processes diff --git a/testsuite/systemtap.examples/io/traceio2.stp b/testsuite/systemtap.examples/io/traceio2.stp index 032edcd9..1abea45d 100755 --- a/testsuite/systemtap.examples/io/traceio2.stp +++ b/testsuite/systemtap.examples/io/traceio2.stp @@ -1,3 +1,5 @@ +#! /usr/bin/env stap + global device_of_interest, dev probe begin { diff --git a/testsuite/systemtap.examples/process/futexes.stp b/testsuite/systemtap.examples/process/futexes.stp index 0bd63262..d10a6a0b 100755 --- a/testsuite/systemtap.examples/process/futexes.stp +++ b/testsuite/systemtap.examples/process/futexes.stp @@ -11,7 +11,7 @@ global lock_waits # long-lived stats on (tid,lock) blockage elapsed time global process_names # long-lived pid-to-execname mapping probe syscall.futex { - if (op != FUTEX_WAIT) next # we don't care about originators of WAKE events + if (op != FUTEX_WAIT) next # don't care about WAKE event originator t = tid () process_names[pid()] = execname() thread_thislock[t] = $uaddr diff --git a/testsuite/systemtap.examples/profiling/functioncallcount.stp b/testsuite/systemtap.examples/profiling/functioncallcount.stp index e393b612..9e9ec3fd 100755 --- a/testsuite/systemtap.examples/profiling/functioncallcount.stp +++ b/testsuite/systemtap.examples/profiling/functioncallcount.stp @@ -1,3 +1,4 @@ +#! /usr/bin/env stap # The following line command will probe all the functions # in kernel's memory management code: # diff --git a/testsuite/systemtap.examples/profiling/thread-times.stp b/testsuite/systemtap.examples/profiling/thread-times.stp index 007e23ed..cbe4118e 100755 --- a/testsuite/systemtap.examples/profiling/thread-times.stp +++ b/testsuite/systemtap.examples/profiling/thread-times.stp @@ -16,7 +16,8 @@ global tids probe timer.s(5), end { allticks = @count(ticks) - printf ("%5s %7s %7s (of %d ticks)\n", "tid", "%user", "%kernel", allticks) + printf ("%5s %7s %7s (of %d ticks)\n", + "tid", "%user", "%kernel", allticks) foreach (tid in tids- limit 20) { uscaled = @count(uticks[tid])*10000/allticks kscaled = @count(kticks[tid])*10000/allticks diff --git a/testsuite/systemtap.syscall/test.tcl b/testsuite/systemtap.syscall/test.tcl index 66a943d6..db0df138 100755 --- a/testsuite/systemtap.syscall/test.tcl +++ b/testsuite/systemtap.syscall/test.tcl @@ -106,7 +106,7 @@ proc run_one_test {filename flags} { } } if {$i < $ind} { - send_log "--------- EXPECTED and NOT MATCHED ----------\n" + send_log -- "--------- EXPECTED and NOT MATCHED ----------\n" } for {} {$i < $ind} {incr i} { send_log "$results($i)\n" |