From 0dec9b4381e0aa1d4b75ab5837cb75598f19c727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Sat, 11 Dec 2021 15:56:45 +0100 Subject: fix: op_set_exit_code (#13034) Fixes "op_set_exit_code" by sharing a single "Arc" between all workers (via "op state") instead of having a "global" value stored in "deno_runtime" crate. As a consequence setting an exit code is always scoped to a tree of workers, instead of being overridable if there are multiple worker tree (like in "deno test --jobs" subcommand). Refactored "cli/main.rs" functions to return "Result" instead of "Result<(), AnyError>" so they can return exit code. --- cli/tests/integration/run_tests.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'cli/tests/integration') diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index fbdc01ad7..dd4482423 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -907,6 +907,12 @@ itest!(set_exit_code_2 { exit_code: 42, }); +itest!(set_exit_code_in_worker { + args: "run --no-check --unstable --allow-read set_exit_code_in_worker.ts", + output: "empty.out", + exit_code: 42, +}); + itest!(heapstats { args: "run --quiet --unstable --v8-flags=--expose-gc heapstats.js", output: "heapstats.js.out", -- cgit v1.2.3