diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/tests/integration/run_tests.rs | 5 | ||||
-rw-r--r-- | cli/tests/testdata/worker_message_before_close.js | 16 | ||||
-rw-r--r-- | cli/tests/testdata/worker_message_before_close.js.out | 8 | ||||
-rw-r--r-- | cli/tests/testdata/workers/message_before_close.js | 6 |
4 files changed, 35 insertions, 0 deletions
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index 981b85199..2c0a16582 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -1177,6 +1177,11 @@ itest!(worker_close_race { output: "worker_close_race.js.out", }); +itest!(worker_message_before_close { + args: "run --quiet --reload --allow-read worker_message_before_close.js", + output: "worker_message_before_close.js.out", +}); + #[test] fn no_validate_asm() { let output = util::deno_cmd() diff --git a/cli/tests/testdata/worker_message_before_close.js b/cli/tests/testdata/worker_message_before_close.js new file mode 100644 index 000000000..6a9149af1 --- /dev/null +++ b/cli/tests/testdata/worker_message_before_close.js @@ -0,0 +1,16 @@ +for (let i = 0; i < 4; i++) { + const worker = new Worker( + new URL("./workers/message_before_close.js", import.meta.url).href, + { type: "module", name: String(i) }, + ); + + worker.addEventListener("message", (message) => { + // Only print responses after all reception logs. + setTimeout(() => { + console.log("response from worker %d received", message.data); + }, 500); + }); + worker.postMessage(i); +} + +export {}; diff --git a/cli/tests/testdata/worker_message_before_close.js.out b/cli/tests/testdata/worker_message_before_close.js.out new file mode 100644 index 000000000..f1cc558a2 --- /dev/null +++ b/cli/tests/testdata/worker_message_before_close.js.out @@ -0,0 +1,8 @@ +message received in worker 0 +message received in worker 1 +message received in worker 2 +message received in worker 3 +response from worker 0 received +response from worker 1 received +response from worker 2 received +response from worker 3 received diff --git a/cli/tests/testdata/workers/message_before_close.js b/cli/tests/testdata/workers/message_before_close.js new file mode 100644 index 000000000..0213abcb3 --- /dev/null +++ b/cli/tests/testdata/workers/message_before_close.js @@ -0,0 +1,6 @@ +self.onmessage = (params) => { + const workerId = params.data; + console.log("message received in worker %d", workerId); + self.postMessage(workerId); + self.close(); +}; |