diff options
Diffstat (limited to 'tests/icon')
| -rw-r--r-- | tests/icon/accept/step_globals.expected | 1 | ||||
| -rw-r--r-- | tests/icon/accept/step_globals.zc | 19 | ||||
| -rw-r--r-- | tests/icon/reject/begin_unknown_function.expected | 1 | ||||
| -rw-r--r-- | tests/icon/reject/begin_unknown_function.zc | 11 |
4 files changed, 32 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; +} diff --git a/tests/icon/reject/begin_unknown_function.expected b/tests/icon/reject/begin_unknown_function.expected new file mode 100644 index 0000000..1f338fc --- /dev/null +++ b/tests/icon/reject/begin_unknown_function.expected @@ -0,0 +1 @@ +1 4 0 diff --git a/tests/icon/reject/begin_unknown_function.zc b/tests/icon/reject/begin_unknown_function.zc new file mode 100644 index 0000000..6a8e5b3 --- /dev/null +++ b/tests/icon/reject/begin_unknown_function.zc @@ -0,0 +1,11 @@ +include rt; +include run; +include icon; +fn main() { + // an address that is no function has no tokens to step: no frame, error status 4 + let frame = icon.begin_function(12345); + rt.put_n(frame == 0); rt.put_c(' '); rt.put_n(icon.error()); rt.put_c(' '); + // stepping or reading a missing frame does nothing + rt.put_n(icon.step(0)); rt.put_c(10); + return 0; +} |
