aboutsummaryrefslogtreecommitdiff
path: root/tests/functional
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional')
-rw-r--r--tests/functional/repl_characterization/data/errors.test27
-rw-r--r--tests/functional/repl_characterization/repl_characterization.cc1
2 files changed, 28 insertions, 0 deletions
diff --git a/tests/functional/repl_characterization/data/errors.test b/tests/functional/repl_characterization/data/errors.test
new file mode 100644
index 000000000..47d7e7e13
--- /dev/null
+++ b/tests/functional/repl_characterization/data/errors.test
@@ -0,0 +1,27 @@
+Errors at the top of an expression are printed normally:
+
+ nix-repl> builtins.throw "Evil puppy detected!!!"
+ error:
+ … while calling the 'throw' builtin
+ at «string»:1:1:
+ 1| builtins.throw "Evil puppy detected!!!"
+ | ^
+
+ error: Evil puppy detected!!!
+
+Errors in attribute values are printed inline, to make it easier to explore
+values like nixpkgs where some parts of the value fail to evaluate:
+
+ nix-repl> { puppy = builtins.throw "This puppy is EVIL!!!"; puppy2 = "This puppy is GOOD :)"; }
+ {
+ puppy = «error: This puppy is EVIL!!!»;
+ puppy2 = "This puppy is GOOD :)";
+ }
+
+Same for list values:
+
+ nix-repl> [ (builtins.throw "This puppy is EVIL!!!") ("This puppy is GOOD :)") ]
+ [
+ «error: This puppy is EVIL!!!»
+ "This puppy is GOOD :)"
+ ]
diff --git a/tests/functional/repl_characterization/repl_characterization.cc b/tests/functional/repl_characterization/repl_characterization.cc
index f84bbdaae..0d3e5352d 100644
--- a/tests/functional/repl_characterization/repl_characterization.cc
+++ b/tests/functional/repl_characterization/repl_characterization.cc
@@ -186,5 +186,6 @@ REPL_TEST(repl_overlays_destructure_without_formals_ok);
REPL_TEST(repl_overlays_error);
REPL_TEST(repl_printing);
REPL_TEST(stack_vars);
+REPL_TEST(errors);
}; // namespace nix