summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.maps/foreach_foreach.stp
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/systemtap.maps/foreach_foreach.stp')
-rwxr-xr-xtestsuite/systemtap.maps/foreach_foreach.stp40
1 files changed, 40 insertions, 0 deletions
diff --git a/testsuite/systemtap.maps/foreach_foreach.stp b/testsuite/systemtap.maps/foreach_foreach.stp
new file mode 100755
index 00000000..09a230f5
--- /dev/null
+++ b/testsuite/systemtap.maps/foreach_foreach.stp
@@ -0,0 +1,40 @@
+# nested foreach
+
+global foo, bar
+
+probe begin {
+ for (i=0;i<11;i++)
+ foo[i] = i*i
+
+ for (i=0;i<11;i++)
+ bar[i] = i*i*i
+
+ foreach (i in foo)
+ printf("foo[%d] = %d\n", i, foo[i])
+
+ printf("\n")
+
+ foreach (i in bar)
+ printf("bar[%d] = %d\n", i, bar[i])
+
+ printf("\n")
+
+ foreach (i in foo) {
+ printf("foo[%d] = %d\n", i, foo[i])
+ printf("bar[%d] = %d\n", i, bar[i])
+ }
+
+ printf("\n")
+
+ delete bar
+ for (i=20;i<25;i++)
+ bar[i] = i*i*i
+
+ foreach (i in foo) {
+ foreach (j in bar)
+ printf("bar[%d] = %d\n", j, bar[j])
+ printf("foo[%d] = %d\n", i, foo[i])
+ }
+
+ exit()
+}