diff options
| author | Satya Rohith <me@satyarohith.com> | 2024-03-14 01:22:53 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-13 19:52:53 +0000 |
| commit | bbc211906dcd5043af549250343cd7b42fb45043 (patch) | |
| tree | 49868b4b758290dcec6668f95495ce9d79ad6a86 /tests | |
| parent | 0fd8f549e2194223eca2d4b17f4e96cd5a0f5fd5 (diff) | |
fix(ext/node): make worker ids sequential (#22884)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/integration/worker_tests.rs | 6 | ||||
| -rw-r--r-- | tests/testdata/workers/worker_ids_are_sequential.ts | 34 | ||||
| -rw-r--r-- | tests/testdata/workers/worker_ids_are_sequential.ts.out | 4 |
3 files changed, 44 insertions, 0 deletions
diff --git a/tests/integration/worker_tests.rs b/tests/integration/worker_tests.rs index 492a06e36..8fdef8b2b 100644 --- a/tests/integration/worker_tests.rs +++ b/tests/integration/worker_tests.rs @@ -112,6 +112,12 @@ itest!(worker_doest_stall_event_loop { exit_code: 0, }); +itest!(worker_ids_are_sequential { + args: "run --quiet -A workers/worker_ids_are_sequential.ts", + output: "workers/worker_ids_are_sequential.ts.out", + exit_code: 0, +}); + // Test for https://github.com/denoland/deno/issues/22629 itest!(node_worker_auto_exits { args: "run --quiet --allow-read workers/node_worker_auto_exits.mjs", diff --git a/tests/testdata/workers/worker_ids_are_sequential.ts b/tests/testdata/workers/worker_ids_are_sequential.ts new file mode 100644 index 000000000..eb90f0d47 --- /dev/null +++ b/tests/testdata/workers/worker_ids_are_sequential.ts @@ -0,0 +1,34 @@ +import { + isMainThread, + parentPort, + threadId, + Worker, +} from "node:worker_threads"; + +console.log("threadId", threadId); + +if (isMainThread) { + const worker = new Worker(new URL(import.meta.url)); + worker.on("message", (msg) => console.log("from worker:", msg)); + worker.on("error", () => { + throw new Error("error"); + }); + worker.on("exit", (code) => { + if (code !== 0) { + reject(new Error(`Worker stopped with exit code ${code}`)); + } + }); +} else if (threadId == 1) { + const worker = new Worker(new URL(import.meta.url)); + worker.on("message", (msg) => console.log("from worker:", msg)); + worker.on("error", () => { + throw new Error("error"); + }); + worker.on("exit", (code) => { + if (code !== 0) { + reject(new Error(`Worker stopped with exit code ${code}`)); + } + }); +} else { + parentPort.postMessage("hello!"); +} diff --git a/tests/testdata/workers/worker_ids_are_sequential.ts.out b/tests/testdata/workers/worker_ids_are_sequential.ts.out new file mode 100644 index 000000000..1f0552864 --- /dev/null +++ b/tests/testdata/workers/worker_ids_are_sequential.ts.out @@ -0,0 +1,4 @@ +threadId 0 +threadId 1 +threadId 2 +from worker: hello! |
