diff options
Diffstat (limited to 'tests/icon/accept')
| -rw-r--r-- | tests/icon/accept/step_globals.expected | 1 | ||||
| -rw-r--r-- | tests/icon/accept/step_globals.zc | 19 |
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; +} |
