summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorfche <fche>2007-10-02 17:44:25 +0000
committerfche <fche>2007-10-02 17:44:25 +0000
commit65aeaea0bc47637030ebe4c2d3a103e1fddaa8d8 (patch)
tree863f412bbf4a1f97af6fa02028bbdbbbf51a4770 /testsuite
parente59475742dc0363828f05a92979d5f6fa9588dee (diff)
downloadsystemtap-steved-65aeaea0bc47637030ebe4c2d3a103e1fddaa8d8.tar.gz
systemtap-steved-65aeaea0bc47637030ebe4c2d3a103e1fddaa8d8.tar.xz
systemtap-steved-65aeaea0bc47637030ebe4c2d3a103e1fddaa8d8.zip
2007-10-02 Frank Ch. Eigler <fche@redhat.com>
PR 5078 * tapsets.cxx (be_derived_probe): Rework to add error probe support. Emit probe description array in C for traversal by generated code. * register_standard_tapsets: Add error probes. * stapprobes.5.in: Document. * translate.cxx (emit_module_init): Handle errors that may occur during begin probes. (emit_module_exit): Use schedule() rather than cpu_relax() during shutdown synchronization wait loop. * staptree.cxx (probe::printsig): Put multiple probe points on same line. 2007-10-02 Frank Ch. Eigler <fche@redhat.com> PR 5078 * semok/twentysix.stp, systemtap.base/beginenderror.*: New tests.
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