summaryrefslogtreecommitdiffhomepage
path: root/tests/custom/02_runtime/06_recursion
diff options
context:
space:
mode:
authorPetr Štetiar <ynezz@true.cz>2021-03-19 16:54:55 +0100
committerJo-Philipp Wich <jo@mein.io>2021-04-23 00:42:30 +0200
commit2b59097c3f61fa901e91ac4cea48940760439578 (patch)
tree958d739a78f959dfcd55b3d76e6e970ca53fa1c6 /tests/custom/02_runtime/06_recursion
parent80393611fb6634abcc0da1dee2da7c4418dbde8d (diff)
tests: create custom tests from current tests cases
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Diffstat (limited to 'tests/custom/02_runtime/06_recursion')
-rw-r--r--tests/custom/02_runtime/06_recursion59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/custom/02_runtime/06_recursion b/tests/custom/02_runtime/06_recursion
new file mode 100644
index 0000000..470fc3a
--- /dev/null
+++ b/tests/custom/02_runtime/06_recursion
@@ -0,0 +1,59 @@
+Testing recursive invocations.
+
+
+1. Testing recursive invocation.
+
+-- Expect stdout --
+1
+2
+4
+8
+16
+32
+64
+128
+256
+512
+1024
+2048
+4096
+8192
+16384
+-- End --
+
+-- Testcase --
+{%
+ function test(x) {
+ print(x, "\n");
+
+ if (x < 10000)
+ test(x * 2);
+ }
+
+ test(1);
+%}
+-- End --
+
+
+2. Testing infinite recursion.
+
+-- Expect stderr --
+Runtime error: Too much recursion
+In test(), line 3, byte 8:
+ called from anonymous function ([stdin]:6:7)
+
+ ` test();`
+ Near here ---^
+
+
+-- End --
+
+-- Testcase --
+{%
+ function test() {
+ test();
+ }
+
+ test();
+%}
+-- End --