From 3cb1dc8e09f0ea863bbc74d10811dda68efb53e3 Mon Sep 17 00:00:00 2001 From: ee7 <45465154+ee7@users.noreply.github.com> Date: Wed, 7 Jul 2021 12:00:23 +0200 Subject: [PATCH] tests: add test for run-time error in the non-first case --- .../expected_results.json | 17 +++++++++++++++++ .../identity.nim | 5 +++++ .../test_identity.nim | 12 ++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 tests/error/runtime_error_recursion_limit_middle_test/expected_results.json create mode 100644 tests/error/runtime_error_recursion_limit_middle_test/identity.nim create mode 100644 tests/error/runtime_error_recursion_limit_middle_test/test_identity.nim diff --git a/tests/error/runtime_error_recursion_limit_middle_test/expected_results.json b/tests/error/runtime_error_recursion_limit_middle_test/expected_results.json new file mode 100644 index 0000000..a9e6d8c --- /dev/null +++ b/tests/error/runtime_error_recursion_limit_middle_test/expected_results.json @@ -0,0 +1,17 @@ +{ + "version": 2, + "status": "fail", + "tests": [ + { + "name": "identity function of 1", + "status": "pass", + "output": "" + }, + { + "name": "identity function of 2", + "status": "error", + "message": "Traceback (most recent call last)\n/nim/lib/pure/unittest.nim(654) test_identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\n(1874 calls omitted) ...\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim(3) identity\nidentity.nim identity\nError: call depth limit reached in a debug build (2000 function calls). You can change it with -d:nimCallDepthLimit= but really try to avoid deep recursions instead.\n", + "output": "" + } + ] +} diff --git a/tests/error/runtime_error_recursion_limit_middle_test/identity.nim b/tests/error/runtime_error_recursion_limit_middle_test/identity.nim new file mode 100644 index 0000000..a14510b --- /dev/null +++ b/tests/error/runtime_error_recursion_limit_middle_test/identity.nim @@ -0,0 +1,5 @@ +func identity*(n: int): int = + if n == 2: + identity(n) + else: + n diff --git a/tests/error/runtime_error_recursion_limit_middle_test/test_identity.nim b/tests/error/runtime_error_recursion_limit_middle_test/test_identity.nim new file mode 100644 index 0000000..d6c95b4 --- /dev/null +++ b/tests/error/runtime_error_recursion_limit_middle_test/test_identity.nim @@ -0,0 +1,12 @@ +import std/unittest +import identity + +suite "Identity Function": + test "identity function of 1": + check identity(1) == 1 + + test "identity function of 2": + check identity(2) == 2 + + test "identity function of 3": + check identity(3) == 3