aboutsummaryrefslogtreecommitdiff
path: root/tests/icon/accept
diff options
context:
space:
mode:
Diffstat (limited to 'tests/icon/accept')
-rw-r--r--tests/icon/accept/step_globals.expected1
-rw-r--r--tests/icon/accept/step_globals.zc19
2 files changed, 20 insertions, 0 deletions
diff --git a/tests/icon/accept/step_globals.expected b/tests/icon/accept/step_globals.expected
new file mode 100644
index 0000000..8c5e263
--- /dev/null
+++ b/tests/icon/accept/step_globals.expected
@@ -0,0 +1 @@
+5 10 11 11 11 0 2
diff --git a/tests/icon/accept/step_globals.zc b/tests/icon/accept/step_globals.zc
new file mode 100644
index 0000000..c584772
--- /dev/null
+++ b/tests/icon/accept/step_globals.zc
@@ -0,0 +1,19 @@
+include rt;
+include run;
+include icon;
+int total = 1;
+fn main() {
+ // step a fragment that writes an isolated global and a bound one, reading both after each step
+ let q = run.tokens("int n = 5; scale = scale * n; total = total + scale; return total;");
+ let frame = icon.begin(q);
+ icon.set_global(frame, "scale", 2);
+ icon.bind_global(frame, "total");
+ icon.step(frame); rt.put_n(icon.local(frame, "n")); rt.put_c(' ');
+ icon.step(frame); rt.put_n(icon.global(frame, "scale")); rt.put_c(' ');
+ icon.step(frame); rt.put_n(icon.global(frame, "total")); rt.put_c(' '); rt.put_n(total); rt.put_c(' ');
+ icon.step(frame); rt.put_n(icon.result(frame)); rt.put_c(' ');
+ // a name the frame never bound reads as 0 with error status 2
+ rt.put_n(icon.global(frame, "missing")); rt.put_c(' '); rt.put_n(icon.error()); rt.put_c(10);
+ icon.close(d*frame);
+ return 0;
+}