summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.base
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/systemtap.base')
-rw-r--r--testsuite/systemtap.base/stmtvars.exp31
1 files changed, 31 insertions, 0 deletions
diff --git a/testsuite/systemtap.base/stmtvars.exp b/testsuite/systemtap.base/stmtvars.exp
new file mode 100644
index 00000000..6e950ea0
--- /dev/null
+++ b/testsuite/systemtap.base/stmtvars.exp
@@ -0,0 +1,31 @@
+set test "stmtvars"
+# PR 5787
+
+set pc 0
+set vars ""
+spawn stap -e "probe kernel.function(\"sys_open\") {\$foo}" -p4 -vv -u
+expect {
+ -re {probe sys_open.*pc=(0x.*)\r\n} { set pc $expect_out(1,string); exp_continue }
+ -re {alternatives: ([^\r\n]*) identifier [^\r\n]*\r\n} { set vars $expect_out(1,string)
+ exp_continue }
+ timeout { fail "$test (timeout)" }
+ eof
+ }
+wait
+verbose -log "pc=$pc vars=$vars"
+if {$pc != 0 && $vars != ""} { pass "$test - .function" } { fail "$test - .function" }
+
+set pc2 0
+set vars2 ""
+spawn stap -e "probe kernel.statement($pc) {\$foo}" -p4 -vv -u
+expect {
+ -re {probe sys_open.*pc=(0x.*)\r\n} { set pc2 $expect_out(1,string); exp_continue }
+ -re {alternatives: ([^\r\n]*) identifier [^\r\n]*\r\n} { set vars2 $expect_out(1,string)
+ exp_continue }
+ timeout { fail "$test (timeout)" }
+ eof
+ }
+wait
+
+verbose -log "pc2=$pc2 vars2=$vars2"
+if {$pc == $pc2 && $vars == $vars2} { pass $test } { fail $test }