summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSatya Rohith <me@satyarohith.com>2024-03-14 01:22:53 +0530
committerGitHub <noreply@github.com>2024-03-13 19:52:53 +0000
commitbbc211906dcd5043af549250343cd7b42fb45043 (patch)
tree49868b4b758290dcec6668f95495ce9d79ad6a86 /tests
parent0fd8f549e2194223eca2d4b17f4e96cd5a0f5fd5 (diff)
fix(ext/node): make worker ids sequential (#22884)
Diffstat (limited to 'tests')
-rw-r--r--tests/integration/worker_tests.rs6
-rw-r--r--tests/testdata/workers/worker_ids_are_sequential.ts34
-rw-r--r--tests/testdata/workers/worker_ids_are_sequential.ts.out4
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!