summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorfche <fche>2005-06-05 16:35:28 +0000
committerfche <fche>2005-06-05 16:35:28 +0000
commitf3c26ea55e2f2c1d222312bf75035359c439ed21 (patch)
tree1a58dfcdebe04941002e7e0203f765b619ca9c67 /testsuite
parent8846477c222cdae649b02117cc96999b0be6ad40 (diff)
downloadsystemtap-steved-f3c26ea55e2f2c1d222312bf75035359c439ed21.tar.gz
systemtap-steved-f3c26ea55e2f2c1d222312bf75035359c439ed21.tar.xz
systemtap-steved-f3c26ea55e2f2c1d222312bf75035359c439ed21.zip
2005-06-05 Frank Ch. Eigler <fche@elastic.org>
Implement for/next/continue/break/while statements. * staptree.h: Declare new 0-arity statement types. Tweak for_loop. * parse.cxx: Parse them all. * translate.cxx (c_unparser): Maintain break/continue label stack. (visit_for_loop, *_statement): New implementations. * elaborate.*, staptree.cxx: Mechanical changes. * testsuite/parseok/ten.stp, semko/twelve.stp, transko/two.stp, transok/five.stp: New tests.
Diffstat (limited to 'testsuite')
-rwxr-xr-xtestsuite/parseok/ten.stp17
-rwxr-xr-xtestsuite/semko/twelve.stp6
-rwxr-xr-xtestsuite/transko/two.stp11
-rwxr-xr-xtestsuite/transok/five.stp17
4 files changed, 51 insertions, 0 deletions
diff --git a/testsuite/parseok/ten.stp b/testsuite/parseok/ten.stp
new file mode 100755
index 00000000..25d16e62
--- /dev/null
+++ b/testsuite/parseok/ten.stp
@@ -0,0 +1,17 @@
+#! stap -p1
+
+probe two
+{
+ for (;;) ;
+ for (a=0;;) { a + 4; break }
+ for (;a>0;) { a + 5; continue }
+ for (;;a++) { a + 5 }
+ for (a=0;a>0;) { a + 4 }
+ for (;a>0;a++) { a + 5 }
+ for (a=0;;a++) { a + 5 }
+ for (a=0; a<=4; a++) ;
+ for (a=0; a<=4; a++) { b = a }
+ next
+ while (99) ;
+ while (99) { break continue }
+}
diff --git a/testsuite/semko/twelve.stp b/testsuite/semko/twelve.stp
new file mode 100755
index 00000000..ab71d579
--- /dev/null
+++ b/testsuite/semko/twelve.stp
@@ -0,0 +1,6 @@
+#! stap -p2
+
+probe end {
+ for (a=0; "hello";) {}
+ while ("goodbye") {}
+}
diff --git a/testsuite/transko/two.stp b/testsuite/transko/two.stp
new file mode 100755
index 00000000..69f78b5c
--- /dev/null
+++ b/testsuite/transko/two.stp
@@ -0,0 +1,11 @@
+#! stap -p3
+
+function bar () {
+ next
+}
+
+probe foo {
+ break
+ for (a=0; a<10; a=a+1) for (b=0; b<10; b=b+1) ;
+ continue
+}
diff --git a/testsuite/transok/five.stp b/testsuite/transok/five.stp
new file mode 100755
index 00000000..266b3408
--- /dev/null
+++ b/testsuite/transok/five.stp
@@ -0,0 +1,17 @@
+#! stap
+
+probe two
+{
+ for (;;) ;
+ for (a=0;;) { if (a > 4) break }
+ for (;a>0;) { a + 5 }
+ for (;;a=a+1) { a + 5 }
+ for (a=0;a>0;) { if (a < 4) continue }
+ for (;a>0;a=a+1) { a + 5 }
+ for (a=0;;a=a+1) { a + 5 }
+ for (a=0; a<=4; a=a+1) ;
+ for (a=0; a<=4; a=a+1) { b = a }
+
+ while (99) next
+ while (99) {}
+}