aboutsummaryrefslogtreecommitdiff
path: root/tests/functional/lang/eval-fail-mutual-recursion.err.exp
diff options
context:
space:
mode:
authoreldritch horrors <pennae@lix.systems>2024-03-04 07:35:20 +0100
committereldritch horrors <pennae@lix.systems>2024-03-04 07:35:20 +0100
commit96f1a404d08d1dd00ef395bcdc53c7599c860ecf (patch)
treec2c10849ccfa865ae649be873fa9ed0d6d4d4da6 /tests/functional/lang/eval-fail-mutual-recursion.err.exp
parente1b1e6f7abb62b7e86a1d12aead1bd931089cd7a (diff)
Merge pull request #9617 from 9999years/stack-overflow-segfault
Fix segfault on infinite recursion in some cases (cherry picked from commit bf1b294bd81ca76c5ec9fe3ecd52196bf52a8300) Change-Id: Id137541426ec8536567835953fccf986a3aebf16
Diffstat (limited to 'tests/functional/lang/eval-fail-mutual-recursion.err.exp')
-rw-r--r--tests/functional/lang/eval-fail-mutual-recursion.err.exp57
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/functional/lang/eval-fail-mutual-recursion.err.exp b/tests/functional/lang/eval-fail-mutual-recursion.err.exp
new file mode 100644
index 000000000..dc2e11766
--- /dev/null
+++ b/tests/functional/lang/eval-fail-mutual-recursion.err.exp
@@ -0,0 +1,57 @@
+error:
+ … from call site
+ at /pwd/lang/eval-fail-mutual-recursion.nix:36:3:
+ 35| in
+ 36| throwAfterA true 10
+ | ^
+ 37|
+
+ … while calling 'throwAfterA'
+ at /pwd/lang/eval-fail-mutual-recursion.nix:29:26:
+ 28|
+ 29| throwAfterA = recurse: n:
+ | ^
+ 30| if n > 0
+
+ … from call site
+ at /pwd/lang/eval-fail-mutual-recursion.nix:31:10:
+ 30| if n > 0
+ 31| then throwAfterA recurse (n - 1)
+ | ^
+ 32| else if recurse
+
+ (19 duplicate frames omitted)
+
+ … from call site
+ at /pwd/lang/eval-fail-mutual-recursion.nix:33:10:
+ 32| else if recurse
+ 33| then throwAfterB true 10
+ | ^
+ 34| else throw "Uh oh!";
+
+ … while calling 'throwAfterB'
+ at /pwd/lang/eval-fail-mutual-recursion.nix:22:26:
+ 21| let
+ 22| throwAfterB = recurse: n:
+ | ^
+ 23| if n > 0
+
+ … from call site
+ at /pwd/lang/eval-fail-mutual-recursion.nix:24:10:
+ 23| if n > 0
+ 24| then throwAfterB recurse (n - 1)
+ | ^
+ 25| else if recurse
+
+ (19 duplicate frames omitted)
+
+ … from call site
+ at /pwd/lang/eval-fail-mutual-recursion.nix:26:10:
+ 25| else if recurse
+ 26| then throwAfterA false 10
+ | ^
+ 27| else throw "Uh oh!";
+
+ (21 duplicate frames omitted)
+
+ error: Uh oh!