summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/ChangeLog5
-rw-r--r--testsuite/semok/twentysix.stp4
-rw-r--r--testsuite/systemtap.base/beginenderror.exp22
-rw-r--r--testsuite/systemtap.base/beginenderror.stp5
4 files changed, 36 insertions, 0 deletions
diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog
index a9f4488f..270b2caf 100644
--- a/testsuite/ChangeLog
+++ b/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-02 Frank Ch. Eigler <fche@redhat.com>
+
+ PR 5078
+ * semok/twentysix.stp, systemtap.base/beginenderror.*: New tests.
+
2007-10-02 William Cohen <wcohen@redhat.com>
* systemtap.syscall/signal.c:
diff --git a/testsuite/semok/twentysix.stp b/testsuite/semok/twentysix.stp
new file mode 100644
index 00000000..b18a490d
--- /dev/null
+++ b/testsuite/semok/twentysix.stp
@@ -0,0 +1,4 @@
+#! stap -p2
+
+probe begin,begin(10),end,end(10),error,error(10)
+{ println (pp()) }
diff --git a/testsuite/systemtap.base/beginenderror.exp b/testsuite/systemtap.base/beginenderror.exp
new file mode 100644
index 00000000..9ad596cb
--- /dev/null
+++ b/testsuite/systemtap.base/beginenderror.exp
@@ -0,0 +1,22 @@
+set test "beginenderror"
+
+if {![installtest_p]} {untested $test; return}
+
+spawn stap $srcdir/$subdir/beginenderror.stp
+set ok1 0
+set ok2 0
+set ko 0
+expect {
+ -re {^ERROR:[^\r\n]*\r\n} { incr ok1; exp_continue }
+ -re {^WARNING:[^\r\n]*\r\n} { incr ok1; exp_continue }
+ -re {^ok[^\r\n]*\r\n} { incr ok2; exp_continue }
+ -re {^ko[^\r\n]*\r\n} { incr ko; exp_continue }
+ timeout { fail "$test (timeout)" }
+ eof { }
+}
+wait
+if {$ok1 == 4 && $ok2 == 3 && $ko == 0} then {
+ pass "$test ($ok1 $ok2 $ko)"
+} else {
+ fail "$test ($ok1 $ok2 $ko)"
+}
diff --git a/testsuite/systemtap.base/beginenderror.stp b/testsuite/systemtap.base/beginenderror.stp
new file mode 100644
index 00000000..8d0772cd
--- /dev/null
+++ b/testsuite/systemtap.base/beginenderror.stp
@@ -0,0 +1,5 @@
+probe begin { println ("ok ".pp()) println (1/0) println ("ko ".pp()) } # handler should unwind before seemenot message
+probe begin(10) { println ("ko ".pp()) } # this late begin probe shouldn't run, ERROR
+probe end, end(10) { println ("ko ".pp()) } # end probes won't be run due to ERROR state
+probe error, error(10) { println ("ok ".pp()) } # these handlers should be run
+probe error(20),error(30) { println (1/0) println ("ko ".pp()) } # likewise