aboutsummaryrefslogtreecommitdiff
path: root/tests/functional/lang
diff options
context:
space:
mode:
authoreldritch horrors <pennae@lix.systems>2024-03-08 05:06:09 +0100
committereldritch horrors <pennae@lix.systems>2024-03-09 00:05:41 -0700
commit609a8e0d94926cae460ed6f12f1f8a3d9f91246b (patch)
tree81a786aa9ca89c3953097778766ad9a3df9054b4 /tests/functional/lang
parent2f7c3fa2516a386af6c556dedc2811edb8302ffc (diff)
Merge pull request #9754 from 9999years/print-value-when-coercion-fails
Print the value in `error: cannot coerce` messages (cherry picked from commit 5b7bfd2d6b89d7dd5f54c1ca6c8072358d31a84e) === test taken from 6e8d5983143ae576e3f4b1d2954a5267f2943a49; it was added previously (and not backported because its pr was a mostly-revert), but it's useful to have around. Change-Id: Icbd14b55e3610ce7b774667bf14b82e6dc717982
Diffstat (limited to 'tests/functional/lang')
-rw-r--r--tests/functional/lang/eval-fail-bad-string-interpolation-1.err.exp2
-rw-r--r--tests/functional/lang/eval-fail-bad-string-interpolation-3.err.exp2
-rw-r--r--tests/functional/lang/eval-fail-bad-string-interpolation-4.err.exp9
-rw-r--r--tests/functional/lang/eval-fail-bad-string-interpolation-4.nix9
4 files changed, 20 insertions, 2 deletions
diff --git a/tests/functional/lang/eval-fail-bad-string-interpolation-1.err.exp b/tests/functional/lang/eval-fail-bad-string-interpolation-1.err.exp
index b461b2e02..5ae53034d 100644
--- a/tests/functional/lang/eval-fail-bad-string-interpolation-1.err.exp
+++ b/tests/functional/lang/eval-fail-bad-string-interpolation-1.err.exp
@@ -5,4 +5,4 @@ error:
| ^
2|
- error: cannot coerce a function to a string
+ error: cannot coerce a function to a string: «lambda @ /pwd/lang/eval-fail-bad-string-interpolation-1.nix:1:4»
diff --git a/tests/functional/lang/eval-fail-bad-string-interpolation-3.err.exp b/tests/functional/lang/eval-fail-bad-string-interpolation-3.err.exp
index 95f4c2460..170a3d132 100644
--- a/tests/functional/lang/eval-fail-bad-string-interpolation-3.err.exp
+++ b/tests/functional/lang/eval-fail-bad-string-interpolation-3.err.exp
@@ -5,4 +5,4 @@ error:
| ^
2|
- error: cannot coerce a function to a string
+ error: cannot coerce a function to a string: «lambda @ /pwd/lang/eval-fail-bad-string-interpolation-3.nix:1:5»
diff --git a/tests/functional/lang/eval-fail-bad-string-interpolation-4.err.exp b/tests/functional/lang/eval-fail-bad-string-interpolation-4.err.exp
new file mode 100644
index 000000000..5119238d7
--- /dev/null
+++ b/tests/functional/lang/eval-fail-bad-string-interpolation-4.err.exp
@@ -0,0 +1,9 @@
+error:
+ … while evaluating a path segment
+ at /pwd/lang/eval-fail-bad-string-interpolation-4.nix:9:3:
+ 8| # The error message should not be too long.
+ 9| ''${pkgs}''
+ | ^
+ 10|
+
+ error: cannot coerce a set to a string: { a = { a = { a = { a = "ha"; b = "ha"; c = "ha"; d = "ha"; e = "ha"; f = "ha"; g = "ha"; h = "ha"; j = "ha"; }; «4294967295 attributes elided»}; «4294967294 attributes elided»}; «4294967293 attributes elided»}
diff --git a/tests/functional/lang/eval-fail-bad-string-interpolation-4.nix b/tests/functional/lang/eval-fail-bad-string-interpolation-4.nix
new file mode 100644
index 000000000..457b5f06a
--- /dev/null
+++ b/tests/functional/lang/eval-fail-bad-string-interpolation-4.nix
@@ -0,0 +1,9 @@
+let
+ # Basically a "billion laughs" attack, but toned down to simulated `pkgs`.
+ ha = x: y: { a = x y; b = x y; c = x y; d = x y; e = x y; f = x y; g = x y; h = x y; j = x y; };
+ has = ha (ha (ha (ha (x: x)))) "ha";
+ # A large structure that has already been evaluated.
+ pkgs = builtins.deepSeq has has;
+in
+# The error message should not be too long.
+''${pkgs}''