diff options
author | hiramatu <hiramatu> | 2007-09-12 16:48:00 +0000 |
---|---|---|
committer | hiramatu <hiramatu> | 2007-09-12 16:48:00 +0000 |
commit | cf9be511f05d0b310b2c4ce4c050d3707be9e65a (patch) | |
tree | 66ca48f389da6fd0ad2ce64341b8ca0d5a62fb09 /testsuite/systemtap.context/backtrace.tcl | |
parent | 737f98f027f838e976afae7b3586e1806e4ed26e (diff) | |
download | systemtap-steved-cf9be511f05d0b310b2c4ce4c050d3707be9e65a.tar.gz systemtap-steved-cf9be511f05d0b310b2c4ce4c050d3707be9e65a.tar.xz systemtap-steved-cf9be511f05d0b310b2c4ce4c050d3707be9e65a.zip |
2007-09-12 Masami Hiramatsu <mhiramat@redhat.com>
PR 4633
* systemtap.context/backtrace.stp: Add testcases for the return
probe and the profile probe.
* systemtap.context/backtrace.tcl: Ditto.
* /systemtap.context/systemtap_test_module2.c: Ditto.
Diffstat (limited to 'testsuite/systemtap.context/backtrace.tcl')
-rw-r--r-- | testsuite/systemtap.context/backtrace.tcl | 92 |
1 files changed, 88 insertions, 4 deletions
diff --git a/testsuite/systemtap.context/backtrace.tcl b/testsuite/systemtap.context/backtrace.tcl index 98a765a2..8d63604d 100644 --- a/testsuite/systemtap.context/backtrace.tcl +++ b/testsuite/systemtap.context/backtrace.tcl @@ -1,5 +1,9 @@ set m1 0 set m2 0 +set m3 0 +set m4 0 +set m5 0 +set m6 0 spawn stap backtrace.stp #exp_internal 1 @@ -28,11 +32,11 @@ expect { } exp_continue } - -re {.*---\r\nthe stack is 0x[a-f0-9]+ [^\r\n]+\r\n} { + -re {.*---\r\nthe call stack is 0x[a-f0-9]+ [^\r\n]+\r\n} { incr m2 expect { -timeout 5 - -re {.*0x[a-f0-9]+ : yyy_func3[^\[]+\[systemtap_test_module2\]\r\n} { + -re {.*---\r\n 0x[a-f0-9]+ : yyy_func3[^\[]+\[systemtap_test_module2\]\r\n} { if {$m2 == 1} {incr m2} exp_continue } @@ -44,20 +48,100 @@ expect { if {$m2 == 3} {incr m2} } } + exp_continue + } + -re {.*backtrace from module\(\"systemtap_test_module2\"\)\.function\(\"yyy_func4@[^\r\n]+\r\n} { + incr m3 + expect { + -timeout 5 + -re {^Returning from: 0x[a-f0-9]+ : yyy_func4[^\[]+\[systemtap_test_module2\]\r\n} { + if {$m3 == 1} {incr m3} + exp_continue + } + -re {^Returning to : 0x[a-f0-9]+ : yyy_func3[^\[]+\[systemtap_test_module2\]\r\n} { + if {$m3 == 2} {incr m3} + exp_continue + } + -re {^ 0x[a-f0-9]+ : yyy_func2[^\[]+\[systemtap_test_module2\]\r\n} { + if {$m3 == 3} {incr m3} + exp_continue + } + -re {^ 0x[a-f0-9]+ : yyy_func1[^\[]+\[systemtap_test_module2\]\r\n} { + if {$m3 == 4} {incr m3} + } + } + exp_continue + } + -re {.*---\r\nthe return stack is 0x[a-f0-9]+ [^\r\n]+\r\n} { + incr m4 + expect { + -timeout 5 + -re {.*0x[a-f0-9]+ : kretprobe_trampoline_holder[^\[]+\[\]\r\n} { + if {$m4 == 1} {incr m4} + exp_continue + } + -re {^ 0x[a-f0-9]+ : yyy_func2[^\[]+\[systemtap_test_module2\]\r\n} { + if {$m4 == 2} {incr m4} + exp_continue + } + -re {^ 0x[a-f0-9]+ : yyy_func1[^\[]+\[systemtap_test_module2\]\r\n} { + if {$m4 == 3} {incr m4} + } + } + exp_continue + } + -re {.*backtrace from timer.profile:\r\n} { + incr m5 + expect { + -timeout 5 + -re {^ 0x[a-f0-9]+ : [^\r\n]+\r\n 0x[a-f0-9]+ : [^\r\n]+\r\n} { + if {$m5 == 1} {incr m5} + } + } + exp_continue + } + -re {.*---\r\nthe profile stack is 0x[a-f0-9]+ [^\r\n]+\r\n} { + incr m6 + expect { + -timeout 5 + -re {.*---\r\n 0x[a-f0-9]+ : [^\r\n]+\r\n 0x[a-f0-9]+ : [^\r\n]+\r\n} { + if {$m6 == 1} {incr m6} + } + } } - eof {fail "backtrace of yyy_func3. unexpected EOF" } + eof {fail "backtrace of yyy_func3, yyy_func4.return and timer.profile. unexpected EOF" } } send "\003" if {$m1 == 4} { pass "backtrace of yyy_func3" } else { - fail "backtrace of yyy_func3" + fail "backtrace of yyy_func3 ($m1)" } if {$m2 == 4} { pass "print_stack of yyy_func3" } else { fail "print_stack of yyy_func3 ($m2)" } +if {$m3 == 5} { + pass "backtrace of yyy_func4.return" +} else { + fail "backtrace of yyy_func4.return ($m3)" +} +if {$m4 == 4} { + pass "print_stack of yyy_func4.return" +} else { + fail "print_stack of yyy_func4.return ($m4)" +} +if {$m5 == 2} { + pass "backtrace of timer.profile" +} else { + fail "backtrace of timer.profile ($m5)" +} +if {$m6 == 2} { + pass "print_stack of timer.profile" +} else { + fail "print_stack of timer.profile ($m6)" +} close wait |