summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.samples
diff options
context:
space:
mode:
authorhunt <hunt>2007-05-01 17:20:57 +0000
committerhunt <hunt>2007-05-01 17:20:57 +0000
commit355fc303a5a99f085c5f3e323f446b67778558ad (patch)
treebc47dabf9585dc14451ce809d797533e19b0c70c /testsuite/systemtap.samples
parent6e28b77dbf7e408cd0fe6b63cfe55204bc4704da (diff)
downloadsystemtap-steved-355fc303a5a99f085c5f3e323f446b67778558ad.tar.gz
systemtap-steved-355fc303a5a99f085c5f3e323f446b67778558ad.tar.xz
systemtap-steved-355fc303a5a99f085c5f3e323f446b67778558ad.zip
2007-05-01 Martin Hunt <hunt@redhat.com>
* systemtap.samples/system_func.*: New test.
Diffstat (limited to 'testsuite/systemtap.samples')
-rw-r--r--testsuite/systemtap.samples/system_func.exp18
-rw-r--r--testsuite/systemtap.samples/system_func.stp24
2 files changed, 42 insertions, 0 deletions
diff --git a/testsuite/systemtap.samples/system_func.exp b/testsuite/systemtap.samples/system_func.exp
new file mode 100644
index 00000000..1fef1717
--- /dev/null
+++ b/testsuite/systemtap.samples/system_func.exp
@@ -0,0 +1,18 @@
+set test "system_func"
+if {![installtest_p]} { untested $test; return }
+spawn stap $srcdir/$subdir/system_func.stp
+set open 0
+set done 0
+set saw_user 0
+set user [exec whoami]
+set timeout 30
+expect {
+ -re "$user\[^\r\]\*\r\n" {incr saw_user; exp_continue}
+ -re {sys_open[^\r]*\r\n} {incr open; exp_continue }
+ -re {DONE[^\r]*\r\n} {incr done; exp_continue }
+ timeout { fail "$test (timeout)" }
+ eof { }
+}
+catch {close}; wait
+#puts "open=$open saw_user=$saw_user, done=$done"
+if {$open > 0 && $saw_user == 1 && $done == 1 } { pass "$test" } { fail "$test ($open,$saw_user,$done)" }
diff --git a/testsuite/systemtap.samples/system_func.stp b/testsuite/systemtap.samples/system_func.stp
new file mode 100644
index 00000000..60d9a723
--- /dev/null
+++ b/testsuite/systemtap.samples/system_func.stp
@@ -0,0 +1,24 @@
+#! stap
+
+# test the system() function
+
+probe kernel.function("sys_open") {
+ # very inefficient. Testing only. DO NOT DO THIS
+ msg="echo sys_open"
+ system(msg)
+}
+
+probe begin {
+ # should succeed
+ system("whoami")
+
+ # should fail
+ system("cat __xyzzy123ABC__")
+
+ exit()
+}
+
+probe end {
+ # should succeed
+ system("echo DONE")
+}