diff options
Diffstat (limited to 'tests/functional')
3 files changed, 41 insertions, 0 deletions
diff --git a/tests/functional/repl_characterization/data/no_nested_debuggers.nix b/tests/functional/repl_characterization/data/no_nested_debuggers.nix new file mode 100644 index 000000000..bf3ad7f0a --- /dev/null +++ b/tests/functional/repl_characterization/data/no_nested_debuggers.nix @@ -0,0 +1 @@ +builtins.break {} diff --git a/tests/functional/repl_characterization/data/no_nested_debuggers.test b/tests/functional/repl_characterization/data/no_nested_debuggers.test new file mode 100644 index 000000000..5e834a68a --- /dev/null +++ b/tests/functional/repl_characterization/data/no_nested_debuggers.test @@ -0,0 +1,39 @@ +we enter a debugger via builtins.break in the input file. + + info: breakpoint reached + +causing another debugger even should not nest, but simply +print the error, skip the breakpoint, etc as appropriate. + + nix-repl> "values show" + "values show" + + nix-repl> builtins.break 2 + 2 + + nix-repl> builtins.throw "foo" + error: + … while calling the 'throw' builtin + at «string»:1:1: + 1| builtins.throw "foo" + | ^ + + error: foo + + nix-repl> assert false; 2 + error: assertion 'false' failed + at «string»:1:1: + 1| assert false; 2 + | ^ + +exiting the debug frame should allow another to open. + + nix-repl> :c + + nix-repl> builtins.throw "bar" + error: bar + +and once again, more breakpoints are ignored. + + nix-repl> builtins.break 3 + 3 diff --git a/tests/functional/repl_characterization/repl_characterization.cc b/tests/functional/repl_characterization/repl_characterization.cc index d0c3b0a71..d46f09553 100644 --- a/tests/functional/repl_characterization/repl_characterization.cc +++ b/tests/functional/repl_characterization/repl_characterization.cc @@ -126,5 +126,6 @@ DEBUGGER_TEST(regression_9918); DEBUGGER_TEST(regression_9917); DEBUGGER_TEST(regression_l145); DEBUGGER_TEST(stack_vars); +DEBUGGER_TEST(no_nested_debuggers); }; |