summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.exelib/libmarkunamestack.tcl
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-09-14 11:58:49 -0400
committerDave Brolley <brolley@redhat.com>2009-09-14 11:58:49 -0400
commit775c3771bb4a5f663a763d7c65b1571e24e4b212 (patch)
treedf01d695bcf1f0d0e7fac567a4b917bc273a00e3 /testsuite/systemtap.exelib/libmarkunamestack.tcl
parentd2c9ec9b6933fbe36834d7ad52be0994e96eb12c (diff)
parentef0e74fc1131f1d217c78aa839d0de731ea7c940 (diff)
downloadsystemtap-steved-775c3771bb4a5f663a763d7c65b1571e24e4b212.tar.gz
systemtap-steved-775c3771bb4a5f663a763d7c65b1571e24e4b212.tar.xz
systemtap-steved-775c3771bb4a5f663a763d7c65b1571e24e4b212.zip
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
Diffstat (limited to 'testsuite/systemtap.exelib/libmarkunamestack.tcl')
-rw-r--r--testsuite/systemtap.exelib/libmarkunamestack.tcl104
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)"
+}