diff options
Diffstat (limited to 'testsuite/systemtap.exelib/libmarkunamestack.tcl')
-rw-r--r-- | testsuite/systemtap.exelib/libmarkunamestack.tcl | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/testsuite/systemtap.exelib/libmarkunamestack.tcl b/testsuite/systemtap.exelib/libmarkunamestack.tcl new file mode 100644 index 00000000..55dc10ee --- /dev/null +++ b/testsuite/systemtap.exelib/libmarkunamestack.tcl @@ -0,0 +1,104 @@ +# Only run on make installcheck +if {! [installtest_p]} { untested "libmarkunamestack-$testname"; return } +if {! [uprobes_p]} { untested "libmarkunamestack-$testname"; return } + +# Big jumbo test, for tracking down bugs, use the individual tests. + +# Output for ustack part is: +#print_ubacktrace exe 0 +# 0x080484ba : main_func+0xa/0x29 [.../uprobes_exe] +# 0x080484f6 : main+0x1d/0x37 [.../uprobes_exe] +#print_ustack exe 1 +# 0x080484ba : main_func+0xa/0x29 [.../uprobes_exe] +# 0x080484c9 : main_func+0x19/0x29 [.../uprobes_exe] +# 0x080484f6 : main+0x1d/0x37 [.../uprobes_exe] +#print_ubacktrace lib 2 +# 0x00db2422 : lib_func+0x16/0x2b [.../libuprobes_lib.so] +# 0x00db2455 : lib_main+0x1e/0x29 [.../libuprobes_lib.so] +# 0x080484d0 : main_func+0x20/0x29 [.../uprobes_exe] +# 0x080484c9 : main_func+0x19/0x29 [.../uprobes_exe] +# 0x080484c9 : main_func+0x19/0x29 [.../uprobes_exe] +# 0x080484f6 : main+0x1d/0x37 [.../uprobes_exe] +#print_ustack lib 3 +# 0x00db2422 : lib_func+0x16/0x2b [.../libuprobes_lib.so] +# 0x00db2431 : lib_func+0x25/0x2b [.../libuprobes_lib.so] +# 0x00db2455 : lib_main+0x1e/0x29 [.../libuprobes_lib.so] +# 0x080484d0 : main_func+0x20/0x29 [.../uprobes_exe] +# 0x080484c9 : main_func+0x19/0x29 [.../uprobes_exe] +# 0x080484c9 : main_func+0x19/0x29 [.../uprobes_exe] +# 0x080484f6 : main+0x1d/0x37 [.../uprobes_exe] + +set lib 0 +set mark 0 +set uname 0 + +set print 0 +set main 0 +set main_func 0 +set lib_main 0 +set lib_func 0 +send_log "Running: stap $srcdir/$subdir/libmarkunamestack.stp $testexe $testlib -c $testexe\n" +spawn stap $srcdir/$subdir/libmarkunamestack.stp $testexe $testlib -c $testexe + +wait -i $spawn_id +expect { + -timeout 60 + -re {^print_[^\r\n]+\r\n} {incr print; exp_continue} + +# lib + -re {^main\r\n} {incr lib; exp_continue} + -re {^main_func\r\n} {incr lib; exp_continue} + -re {^lib_main\r\n} {incr lib; exp_continue} + -re {^lib_func\r\n} {incr lib; exp_continue} + +# mark + -re {^main_count: [1-3]\r\n} {incr mark; exp_continue} + -re {^func_count: [1-3]\r\n} {incr mark; exp_continue} + +# uname + -re {^exe: main=main\r\n} {incr uname; exp_continue} + -re {^exe: main_func=main_func\r\n} {incr uname; exp_continue} + -re {^lib: lib_main=lib_main\r\n} {incr uname; exp_continue} + -re {^lib: lib_func=lib_func\r\n} {incr uname; exp_continue} + +# ustack + -re {^ 0x[a-f0-9]+ : main\+0x[^\r\n]+\r\n} {incr main; exp_continue} + -re {^ 0x[a-f0-9]+ : main_func\+0x[^\r\n]+\r\n} {incr main_func; exp_continue} + -re {^ 0x[a-f0-9]+ : lib_main\+0x[^\r\n]+\r\n} {incr lib_main; exp_continue} + -re {^ 0x[a-f0-9]+ : lib_func\+0x[^\r\n]+\r\n} {incr lib_func; exp_continue} + + timeout { fail "libmarkunamestack-$testname (timeout)" } + eof { } +} + +if {$lib == 8} { pass "lib-$testname" } { + fail "lib-$testname ($lib)" +} + +if {$mark == 6} { pass "mark-$testname" } { + fail "mark-$testname ($mark)" +} + +if {$uname == 8} { pass "uname-$testname" } { + fail "uname-$testname ($uname)" +} + +if {$print == 4} { pass "ustack-$testname print" } { + fail "ustack-$testname print ($print)" +} + +if {$main == 4} { pass "ustack-$testname main" } { + fail "ustack-$testname main ($main)" +} + +if {$main_func == 9} { pass "ustack-$testname main_func" } { + fail "ustack-$testname main_func ($main_func)" +} + +if {$lib_main == 2} { pass "ustack-$testname lib_main" } { + fail "ustack-$testname lib_main ($lib_main)" +} + +if {$lib_func == 3} { pass "ustack-$testname lib_func" } { + fail "ustack-$testname lib_func ($lib_func)" +} |