summaryrefslogtreecommitdiff
path: root/cli/tests/workers
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests/workers')
-rw-r--r--cli/tests/workers/bench_large_message.ts31
-rw-r--r--cli/tests/workers/bench_round_robin.ts65
-rw-r--r--cli/tests/workers/bench_startup.ts33
-rw-r--r--cli/tests/workers/bench_worker.ts21
-rw-r--r--cli/tests/workers/broadcast_channel.ts5
-rw-r--r--cli/tests/workers/busy_worker.js8
-rw-r--r--cli/tests/workers/close_race_worker.js6
-rw-r--r--cli/tests/workers/deno_worker.ts7
-rw-r--r--cli/tests/workers/dynamic_remote.ts2
-rw-r--r--cli/tests/workers/error.ts5
-rw-r--r--cli/tests/workers/event_worker.js7
-rw-r--r--cli/tests/workers/event_worker_scope.js43
-rw-r--r--cli/tests/workers/fetching_worker.js6
-rw-r--r--cli/tests/workers/http_worker.js11
-rw-r--r--cli/tests/workers/immediately_close_worker.js1
-rw-r--r--cli/tests/workers/message_port.ts14
-rw-r--r--cli/tests/workers/nested_worker.js18
-rw-r--r--cli/tests/workers/no_permissions_worker.js17
-rw-r--r--cli/tests/workers/non_deno_worker.js7
-rw-r--r--cli/tests/workers/nonexistent_worker.out3
-rw-r--r--cli/tests/workers/nonexistent_worker.ts5
-rw-r--r--cli/tests/workers/parent_read_check_granular_worker.js41
-rw-r--r--cli/tests/workers/parent_read_check_worker.js27
-rw-r--r--cli/tests/workers/permissions_blob_local.ts6
-rw-r--r--cli/tests/workers/permissions_blob_local.ts.out4
-rw-r--r--cli/tests/workers/permissions_blob_remote.ts4
-rw-r--r--cli/tests/workers/permissions_blob_remote.ts.out4
-rw-r--r--cli/tests/workers/permissions_data_local.ts7
-rw-r--r--cli/tests/workers/permissions_data_local.ts.out4
-rw-r--r--cli/tests/workers/permissions_data_remote.ts5
-rw-r--r--cli/tests/workers/permissions_data_remote.ts.out4
-rw-r--r--cli/tests/workers/permissions_dynamic_remote.ts11
-rw-r--r--cli/tests/workers/permissions_dynamic_remote.ts.out6
-rw-r--r--cli/tests/workers/permissions_remote_remote.ts3
-rw-r--r--cli/tests/workers/permissions_remote_remote.ts.out4
-rw-r--r--cli/tests/workers/post_undefined.ts5
-rw-r--r--cli/tests/workers/racy_worker.js25
-rw-r--r--cli/tests/workers/read_check_granular_worker.js11
-rw-r--r--cli/tests/workers/read_check_worker.js7
-rw-r--r--cli/tests/workers/shared_array_buffer.ts9
-rw-r--r--cli/tests/workers/sibling_worker.js4
-rw-r--r--cli/tests/workers/static_remote.ts2
-rw-r--r--cli/tests/workers/test.ts852
-rw-r--r--cli/tests/workers/test.ts.out3
-rw-r--r--cli/tests/workers/test_worker.js19
-rw-r--r--cli/tests/workers/test_worker.ts8
-rw-r--r--cli/tests/workers/throwing_worker.js2
-rw-r--r--cli/tests/workers/worker_crypto.js5
-rw-r--r--cli/tests/workers/worker_error.ts5
-rw-r--r--cli/tests/workers/worker_error.ts.out5
-rw-r--r--cli/tests/workers/worker_event_handlers.js23
-rw-r--r--cli/tests/workers/worker_globals.ts13
-rw-r--r--cli/tests/workers/worker_large_message.js14
-rw-r--r--cli/tests/workers/worker_location.ts6
-rw-r--r--cli/tests/workers/worker_nested_error.ts5
-rw-r--r--cli/tests/workers/worker_nested_error.ts.out5
-rw-r--r--cli/tests/workers/worker_structured_cloning.ts15
-rw-r--r--cli/tests/workers/worker_types.ts4
-rw-r--r--cli/tests/workers/worker_unstable.ts5
-rw-r--r--cli/tests/workers/worker_with_top_level_await.ts15
60 files changed, 0 insertions, 1512 deletions
diff --git a/cli/tests/workers/bench_large_message.ts b/cli/tests/workers/bench_large_message.ts
deleted file mode 100644
index a89ea9a78..000000000
--- a/cli/tests/workers/bench_large_message.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2020 the Deno authors. All rights reserved. MIT license.
-
-function oneWorker(i: number) {
- return new Promise<void>((resolve) => {
- let countDown = 10;
- const worker = new Worker(
- new URL("worker_large_message.js", import.meta.url).href,
- { type: "module" },
- );
- worker.onmessage = (_e) => {
- if (countDown > 0) {
- countDown--;
- return;
- }
- worker.terminate();
- resolve();
- };
- worker.postMessage("hi " + i);
- });
-}
-
-function bench() {
- const promises = [];
- for (let i = 0; i < 50; i++) {
- promises.push(oneWorker(i));
- }
-
- return Promise.all(promises);
-}
-
-bench();
diff --git a/cli/tests/workers/bench_round_robin.ts b/cli/tests/workers/bench_round_robin.ts
deleted file mode 100644
index a39f7ec6f..000000000
--- a/cli/tests/workers/bench_round_robin.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-// Benchmark measures time it takes to send a message to a group of workers one
-// at a time and wait for a response from all of them. Just a general
-// throughput and consistency benchmark.
-const data = "HTTP/1.1 200 OK\r\nContent-Length: 12\r\n\r\nHello World\n";
-const workerCount = 4;
-const cmdsPerWorker = 400;
-
-import { Deferred, deferred } from "../../../test_util/std/async/deferred.ts";
-
-function handleAsyncMsgFromWorker(
- promiseTable: Map<number, Deferred<string>>,
- msg: { cmdId: number; data: string },
-) {
- const promise = promiseTable.get(msg.cmdId);
- if (promise === null) {
- throw new Error(`Failed to find promise: cmdId: ${msg.cmdId}, msg: ${msg}`);
- }
- promise?.resolve(data);
-}
-
-async function main() {
- const workers: Array<[Map<number, Deferred<string>>, Worker]> = [];
- for (let i = 1; i <= workerCount; ++i) {
- const worker = new Worker(
- new URL("bench_worker.ts", import.meta.url).href,
- { type: "module" },
- );
- const promise = deferred();
- worker.onmessage = (e) => {
- if (e.data.cmdId === 0) promise.resolve();
- };
- worker.postMessage({ cmdId: 0, action: 2 });
- await promise;
- workers.push([new Map(), worker]);
- }
- // assign callback function
- for (const [promiseTable, worker] of workers) {
- worker.onmessage = (e) => {
- handleAsyncMsgFromWorker(promiseTable, e.data);
- };
- }
- for (const cmdId of Array(cmdsPerWorker).keys()) {
- const promises: Array<Promise<string>> = [];
- for (const [promiseTable, worker] of workers) {
- const promise = deferred<string>();
- promiseTable.set(cmdId, promise);
- worker.postMessage({ cmdId: cmdId, action: 1, data });
- promises.push(promise);
- }
- for (const promise of promises) {
- await promise;
- }
- }
- for (const [, worker] of workers) {
- const promise = deferred();
- worker.onmessage = (e) => {
- if (e.data.cmdId === 3) promise.resolve();
- };
- worker.postMessage({ action: 3 });
- await promise;
- }
- console.log("Finished!");
-}
-
-main();
diff --git a/cli/tests/workers/bench_startup.ts b/cli/tests/workers/bench_startup.ts
deleted file mode 100644
index bcf21ef44..000000000
--- a/cli/tests/workers/bench_startup.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-// Benchmark measures time it takes to start and stop a number of workers.
-const workerCount = 50;
-
-async function bench() {
- const workers: Worker[] = [];
- for (let i = 1; i <= workerCount; ++i) {
- const worker = new Worker(
- new URL("bench_worker.ts", import.meta.url).href,
- { type: "module" },
- );
- const promise = new Promise<void>((resolve) => {
- worker.onmessage = (e) => {
- if (e.data.cmdId === 0) resolve();
- };
- });
- worker.postMessage({ cmdId: 0, action: 2 });
- await promise;
- workers.push(worker);
- }
- console.log("Done creating workers closing workers!");
- for (const worker of workers) {
- const promise = new Promise<void>((resolve) => {
- worker.onmessage = (e) => {
- if (e.data.cmdId === 3) resolve();
- };
- });
- worker.postMessage({ action: 3 });
- await promise;
- }
- console.log("Finished!");
-}
-
-bench();
diff --git a/cli/tests/workers/bench_worker.ts b/cli/tests/workers/bench_worker.ts
deleted file mode 100644
index 1edd2750f..000000000
--- a/cli/tests/workers/bench_worker.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-onmessage = function (e) {
- const { cmdId, action, data } = e.data;
- switch (action) {
- case 0: // Static response
- postMessage({
- cmdId,
- data: "HTTP/1.1 200 OK\r\nContent-Length: 12\r\n\r\nHello World\n",
- });
- break;
- case 1: // Respond with request data
- postMessage({ cmdId, data });
- break;
- case 2: // Ping
- postMessage({ cmdId });
- break;
- case 3: // Close
- postMessage({ cmdId: 3 });
- close();
- break;
- }
-};
diff --git a/cli/tests/workers/broadcast_channel.ts b/cli/tests/workers/broadcast_channel.ts
deleted file mode 100644
index 5076e9eb7..000000000
--- a/cli/tests/workers/broadcast_channel.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-new BroadcastChannel("intercom").onmessage = function (e) {
- this.postMessage(e.data);
-};
-
-self.postMessage("go");
diff --git a/cli/tests/workers/busy_worker.js b/cli/tests/workers/busy_worker.js
deleted file mode 100644
index 7deba0321..000000000
--- a/cli/tests/workers/busy_worker.js
+++ /dev/null
@@ -1,8 +0,0 @@
-self.onmessage = function (_evt) {
- // infinite loop
- for (let i = 0; true; i++) {
- if (i % 1000 == 0) {
- postMessage(i);
- }
- }
-};
diff --git a/cli/tests/workers/close_race_worker.js b/cli/tests/workers/close_race_worker.js
deleted file mode 100644
index f582a0d99..000000000
--- a/cli/tests/workers/close_race_worker.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
-
-setTimeout(() => {
- self.postMessage("");
- self.close();
-}, 500);
diff --git a/cli/tests/workers/deno_worker.ts b/cli/tests/workers/deno_worker.ts
deleted file mode 100644
index 2a29c8c4d..000000000
--- a/cli/tests/workers/deno_worker.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-onmessage = function (e) {
- if (typeof self.Deno === "undefined") {
- throw new Error("Deno namespace not available in worker");
- }
-
- postMessage(e.data);
-};
diff --git a/cli/tests/workers/dynamic_remote.ts b/cli/tests/workers/dynamic_remote.ts
deleted file mode 100644
index 381c7f374..000000000
--- a/cli/tests/workers/dynamic_remote.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-// This file doesn't really exist, but it doesn't matter, a "PermissionsDenied" error should be thrown.
-await import("https://example.com/some/file.ts");
diff --git a/cli/tests/workers/error.ts b/cli/tests/workers/error.ts
deleted file mode 100644
index 495971090..000000000
--- a/cli/tests/workers/error.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-function foo() {
- throw new Error("foo");
-}
-
-foo();
diff --git a/cli/tests/workers/event_worker.js b/cli/tests/workers/event_worker.js
deleted file mode 100644
index 849b6026c..000000000
--- a/cli/tests/workers/event_worker.js
+++ /dev/null
@@ -1,7 +0,0 @@
-onmessage = function (e) {
- if (e.data === "boom") {
- throw new Error("boom error!");
- }
-
- postMessage(e.data);
-};
diff --git a/cli/tests/workers/event_worker_scope.js b/cli/tests/workers/event_worker_scope.js
deleted file mode 100644
index 0381801a8..000000000
--- a/cli/tests/workers/event_worker_scope.js
+++ /dev/null
@@ -1,43 +0,0 @@
-let messageHandlersCalled = 0;
-let errorHandlersCalled = 0;
-
-onmessage = function (e) {
- if (e.data === "boom") {
- throw new Error("boom error!");
- }
- messageHandlersCalled++;
-};
-
-self.addEventListener("message", (_e) => {
- messageHandlersCalled++;
-});
-
-self.addEventListener("message", (_e) => {
- messageHandlersCalled++;
-});
-
-self.addEventListener("message", (_e) => {
- messageHandlersCalled++;
-
- postMessage({
- messageHandlersCalled,
- errorHandlersCalled,
- });
-});
-
-onerror = function (_e) {
- errorHandlersCalled++;
-};
-
-self.addEventListener("error", (_e) => {
- errorHandlersCalled++;
-});
-
-self.addEventListener("error", (_e) => {
- errorHandlersCalled++;
-});
-
-self.addEventListener("error", (e) => {
- errorHandlersCalled++;
- e.preventDefault();
-});
diff --git a/cli/tests/workers/fetching_worker.js b/cli/tests/workers/fetching_worker.js
deleted file mode 100644
index e1bcdf911..000000000
--- a/cli/tests/workers/fetching_worker.js
+++ /dev/null
@@ -1,6 +0,0 @@
-const r = await fetch(
- "http://localhost:4545/cli/tests/workers/fetching_worker.js",
-);
-await r.text();
-postMessage("Done!");
-close();
diff --git a/cli/tests/workers/http_worker.js b/cli/tests/workers/http_worker.js
deleted file mode 100644
index 34603ed56..000000000
--- a/cli/tests/workers/http_worker.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
-const listener = Deno.listen({ hostname: "127.0.0.1", port: 4506 });
-postMessage("ready");
-for await (const conn of listener) {
- (async () => {
- const requests = Deno.serveHttp(conn);
- for await (const { respondWith } of requests) {
- respondWith(new Response("Hello world"));
- }
- })();
-}
diff --git a/cli/tests/workers/immediately_close_worker.js b/cli/tests/workers/immediately_close_worker.js
deleted file mode 100644
index 8fd27343a..000000000
--- a/cli/tests/workers/immediately_close_worker.js
+++ /dev/null
@@ -1 +0,0 @@
-self.close();
diff --git a/cli/tests/workers/message_port.ts b/cli/tests/workers/message_port.ts
deleted file mode 100644
index d78304a39..000000000
--- a/cli/tests/workers/message_port.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-const channel = new MessageChannel();
-
-channel.port2.onmessage = (e) => {
- channel.port2.postMessage(e.data === "2");
- channel.port2.close();
-};
-
-self.postMessage("1", [channel.port1]);
-
-self.onmessage = (e) => {
- const port1 = e.ports[0];
- port1.postMessage(e.data === "3");
- port1.close();
-};
diff --git a/cli/tests/workers/nested_worker.js b/cli/tests/workers/nested_worker.js
deleted file mode 100644
index 4b51b8763..000000000
--- a/cli/tests/workers/nested_worker.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Specifier should be resolved relative to current file
-const jsWorker = new Worker(
- new URL("sibling_worker.js", import.meta.url).href,
- { type: "module", name: "sibling" },
-);
-
-jsWorker.onerror = (_e) => {
- postMessage({ type: "error" });
-};
-
-jsWorker.onmessage = (e) => {
- postMessage({ type: "msg", text: e });
- close();
-};
-
-onmessage = function (e) {
- jsWorker.postMessage(e.data);
-};
diff --git a/cli/tests/workers/no_permissions_worker.js b/cli/tests/workers/no_permissions_worker.js
deleted file mode 100644
index db0d911ac..000000000
--- a/cli/tests/workers/no_permissions_worker.js
+++ /dev/null
@@ -1,17 +0,0 @@
-self.onmessage = async () => {
- const hrtime = await Deno.permissions.query({ name: "hrtime" });
- const net = await Deno.permissions.query({ name: "net" });
- const ffi = await Deno.permissions.query({ name: "ffi" });
- const read = await Deno.permissions.query({ name: "read" });
- const run = await Deno.permissions.query({ name: "run" });
- const write = await Deno.permissions.query({ name: "write" });
- self.postMessage(
- hrtime.state === "denied" &&
- net.state === "denied" &&
- ffi.state === "denied" &&
- read.state === "denied" &&
- run.state === "denied" &&
- write.state === "denied",
- );
- self.close();
-};
diff --git a/cli/tests/workers/non_deno_worker.js b/cli/tests/workers/non_deno_worker.js
deleted file mode 100644
index 773721560..000000000
--- a/cli/tests/workers/non_deno_worker.js
+++ /dev/null
@@ -1,7 +0,0 @@
-onmessage = function (e) {
- if (typeof self.Deno !== "undefined") {
- throw new Error("Deno namespace unexpectedly available in worker");
- }
-
- postMessage(e.data);
-};
diff --git a/cli/tests/workers/nonexistent_worker.out b/cli/tests/workers/nonexistent_worker.out
deleted file mode 100644
index 04b9f801d..000000000
--- a/cli/tests/workers/nonexistent_worker.out
+++ /dev/null
@@ -1,3 +0,0 @@
-[WILDCARD]error: Uncaught (in worker "") Cannot resolve module "file:///[WILDCARD]cli/tests/workers/doesnt_exist.js".
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
- at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/workers/nonexistent_worker.ts b/cli/tests/workers/nonexistent_worker.ts
deleted file mode 100644
index 8ebe29114..000000000
--- a/cli/tests/workers/nonexistent_worker.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-const w = new Worker(new URL("doesnt_exist.js", import.meta.url).href, {
- type: "module",
-});
-
-w.postMessage("hello");
diff --git a/cli/tests/workers/parent_read_check_granular_worker.js b/cli/tests/workers/parent_read_check_granular_worker.js
deleted file mode 100644
index 1391190cd..000000000
--- a/cli/tests/workers/parent_read_check_granular_worker.js
+++ /dev/null
@@ -1,41 +0,0 @@
-const worker = new Worker(
- new URL("./read_check_granular_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: {
- read: [],
- },
- },
- },
-);
-
-let received = 0;
-const messages = [];
-
-worker.onmessage = ({ data: childResponse }) => {
- received++;
- postMessage({
- childHasPermission: childResponse.hasPermission,
- index: childResponse.index,
- parentHasPermission: messages[childResponse.index],
- });
- if (received === messages.length) {
- worker.terminate();
- }
-};
-
-onmessage = async ({ data }) => {
- const { state } = await Deno.permissions.query({
- name: "read",
- path: data.path,
- });
-
- messages[data.index] = state === "granted";
-
- worker.postMessage({
- index: data.index,
- route: data.route,
- });
-};
diff --git a/cli/tests/workers/parent_read_check_worker.js b/cli/tests/workers/parent_read_check_worker.js
deleted file mode 100644
index ec92cca3f..000000000
--- a/cli/tests/workers/parent_read_check_worker.js
+++ /dev/null
@@ -1,27 +0,0 @@
-onmessage = async () => {
- const { state } = await Deno.permissions.query({
- name: "read",
- });
-
- const worker = new Worker(
- new URL("./read_check_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: {
- read: false,
- },
- },
- },
- );
-
- worker.onmessage = ({ data: childHasPermission }) => {
- postMessage({
- parentHasPermission: state === "granted",
- childHasPermission,
- });
- close();
- };
- worker.postMessage(null);
-};
diff --git a/cli/tests/workers/permissions_blob_local.ts b/cli/tests/workers/permissions_blob_local.ts
deleted file mode 100644
index 52f630bd8..000000000
--- a/cli/tests/workers/permissions_blob_local.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file doesn't really exist, but it doesn't matter, a "PermissionsDenied" error should be thrown.
-const code = `import "file:///${
- Deno.build.os == "windows" ? "C:/" : ""
-}local_file.ts";`;
-const blob = new Blob([code]);
-new Worker(URL.createObjectURL(blob), { type: "module" });
diff --git a/cli/tests/workers/permissions_blob_local.ts.out b/cli/tests/workers/permissions_blob_local.ts.out
deleted file mode 100644
index 0835777ec..000000000
--- a/cli/tests/workers/permissions_blob_local.ts.out
+++ /dev/null
@@ -1,4 +0,0 @@
-error: Uncaught (in worker "") Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag
- at blob:null/[WILDCARD]:1:0
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
- at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/workers/permissions_blob_remote.ts b/cli/tests/workers/permissions_blob_remote.ts
deleted file mode 100644
index 4808bc57b..000000000
--- a/cli/tests/workers/permissions_blob_remote.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file doesn't really exist, but it doesn't matter, a "PermissionsDenied" error should be thrown.
-const code = `import "https://example.com/some/file.ts";`;
-const blob = new Blob([code]);
-new Worker(URL.createObjectURL(blob), { type: "module" });
diff --git a/cli/tests/workers/permissions_blob_remote.ts.out b/cli/tests/workers/permissions_blob_remote.ts.out
deleted file mode 100644
index 2d01458ca..000000000
--- a/cli/tests/workers/permissions_blob_remote.ts.out
+++ /dev/null
@@ -1,4 +0,0 @@
-error: Uncaught (in worker "") Requires net access to "example.com", run again with the --allow-net flag
- at blob:null/[WILDCARD]:1:0
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
- at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/workers/permissions_data_local.ts b/cli/tests/workers/permissions_data_local.ts
deleted file mode 100644
index cda80bed6..000000000
--- a/cli/tests/workers/permissions_data_local.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-// This file doesn't really exist, but it doesn't matter, a "PermissionsDenied" error should be thrown.
-const code = `import "file:///${
- Deno.build.os == "windows" ? "C:/" : ""
-}local_file.ts";`;
-new Worker(`data:application/javascript;base64,${btoa(code)}`, {
- type: "module",
-});
diff --git a/cli/tests/workers/permissions_data_local.ts.out b/cli/tests/workers/permissions_data_local.ts.out
deleted file mode 100644
index 2a6be2b57..000000000
--- a/cli/tests/workers/permissions_data_local.ts.out
+++ /dev/null
@@ -1,4 +0,0 @@
-error: Uncaught (in worker "") Requires read access to "[WILDCARD]local_file.ts", run again with the --allow-read flag
- at data:application/javascript;base64,[WILDCARD]:1:0
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
- at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/workers/permissions_data_remote.ts b/cli/tests/workers/permissions_data_remote.ts
deleted file mode 100644
index b37bd661d..000000000
--- a/cli/tests/workers/permissions_data_remote.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-// This file doesn't really exist, but it doesn't matter, a "PermissionsDenied" error should be thrown.
-const code = `import "https://example.com/some/file.ts";`;
-new Worker(`data:application/javascript;base64,${btoa(code)}`, {
- type: "module",
-});
diff --git a/cli/tests/workers/permissions_data_remote.ts.out b/cli/tests/workers/permissions_data_remote.ts.out
deleted file mode 100644
index 90677892a..000000000
--- a/cli/tests/workers/permissions_data_remote.ts.out
+++ /dev/null
@@ -1,4 +0,0 @@
-error: Uncaught (in worker "") Requires net access to "example.com", run again with the --allow-net flag
- at data:application/javascript;base64,aW1wb3J0ICJodHRwczovL2V4YW1wbGUuY29tL3NvbWUvZmlsZS50cyI7:1:0
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
- at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/workers/permissions_dynamic_remote.ts b/cli/tests/workers/permissions_dynamic_remote.ts
deleted file mode 100644
index a5d293e16..000000000
--- a/cli/tests/workers/permissions_dynamic_remote.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-new Worker(
- "http://localhost:4545/cli/tests/workers/dynamic_remote.ts",
- {
- type: "module",
- deno: {
- permissions: {
- net: false,
- },
- },
- },
-);
diff --git a/cli/tests/workers/permissions_dynamic_remote.ts.out b/cli/tests/workers/permissions_dynamic_remote.ts.out
deleted file mode 100644
index e68c96df1..000000000
--- a/cli/tests/workers/permissions_dynamic_remote.ts.out
+++ /dev/null
@@ -1,6 +0,0 @@
-error: Uncaught (in worker "") (in promise) TypeError: Requires net access to "example.com", run again with the --allow-net flag
-await import("https://example.com/some/file.ts");
-^
- at async http://localhost:4545/cli/tests/workers/dynamic_remote.ts:2:1
-[WILDCARD]error: Uncaught (in promise) Error: Unhandled error event reached main worker.
- at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/workers/permissions_remote_remote.ts b/cli/tests/workers/permissions_remote_remote.ts
deleted file mode 100644
index b1f954a31..000000000
--- a/cli/tests/workers/permissions_remote_remote.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-new Worker("http://localhost:4545/cli/tests/workers/static_remote.ts", {
- type: "module",
-});
diff --git a/cli/tests/workers/permissions_remote_remote.ts.out b/cli/tests/workers/permissions_remote_remote.ts.out
deleted file mode 100644
index 5656b75a1..000000000
--- a/cli/tests/workers/permissions_remote_remote.ts.out
+++ /dev/null
@@ -1,4 +0,0 @@
-error: Uncaught (in worker "") Requires net access to "example.com", run again with the --allow-net flag
- at http://localhost:4545/cli/tests/workers/static_remote.ts:2:0
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
- at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/workers/post_undefined.ts b/cli/tests/workers/post_undefined.ts
deleted file mode 100644
index 1b9b8d6ca..000000000
--- a/cli/tests/workers/post_undefined.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-self.onmessage = (ev: MessageEvent) => {
- console.log("received in worker", ev.data);
- self.postMessage(undefined);
- console.log("posted from worker");
-};
diff --git a/cli/tests/workers/racy_worker.js b/cli/tests/workers/racy_worker.js
deleted file mode 100644
index 0f66c6278..000000000
--- a/cli/tests/workers/racy_worker.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// See issue for details
-// https://github.com/denoland/deno/issues/4080
-//
-// After first received message, this worker schedules
-// [assert(), close(), assert()] ops on the same turn of microtask queue
-// All tasks after close should not make it
-
-onmessage = async function () {
- let stage = 0;
- await new Promise((_) => {
- setTimeout(() => {
- if (stage !== 0) throw "Unexpected stage";
- stage = 1;
- }, 50);
- setTimeout(() => {
- if (stage !== 1) throw "Unexpected stage";
- stage = 2;
- postMessage("DONE");
- close();
- }, 50);
- setTimeout(() => {
- throw "This should not be run";
- }, 50);
- });
-};
diff --git a/cli/tests/workers/read_check_granular_worker.js b/cli/tests/workers/read_check_granular_worker.js
deleted file mode 100644
index 25f2058b3..000000000
--- a/cli/tests/workers/read_check_granular_worker.js
+++ /dev/null
@@ -1,11 +0,0 @@
-onmessage = async ({ data }) => {
- const { state } = await Deno.permissions.query({
- name: "read",
- path: data.path,
- });
-
- postMessage({
- hasPermission: state === "granted",
- index: data.index,
- });
-};
diff --git a/cli/tests/workers/read_check_worker.js b/cli/tests/workers/read_check_worker.js
deleted file mode 100644
index 2ad01bf5b..000000000
--- a/cli/tests/workers/read_check_worker.js
+++ /dev/null
@@ -1,7 +0,0 @@
-onmessage = async () => {
- const { state } = await Deno.permissions.query({
- name: "read",
- });
- postMessage(state === "granted");
- close();
-};
diff --git a/cli/tests/workers/shared_array_buffer.ts b/cli/tests/workers/shared_array_buffer.ts
deleted file mode 100644
index 4af95863a..000000000
--- a/cli/tests/workers/shared_array_buffer.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-self.postMessage("ready");
-
-globalThis.addEventListener("message", (e) => {
- const bytes1 = new Uint8Array(e.data[0]);
- const bytes2 = new Uint8Array(e.data[1]);
- bytes1[0] = 1;
- bytes2[0] = 2;
- self.postMessage("done");
-});
diff --git a/cli/tests/workers/sibling_worker.js b/cli/tests/workers/sibling_worker.js
deleted file mode 100644
index 99707e5d6..000000000
--- a/cli/tests/workers/sibling_worker.js
+++ /dev/null
@@ -1,4 +0,0 @@
-onmessage = (e) => {
- postMessage(e.data);
- close();
-};
diff --git a/cli/tests/workers/static_remote.ts b/cli/tests/workers/static_remote.ts
deleted file mode 100644
index 2d6e820fd..000000000
--- a/cli/tests/workers/static_remote.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-// This file doesn't really exist, but it doesn't matter, a "PermissionsDenied" error should be thrown.
-import "https://example.com/some/file.ts";
diff --git a/cli/tests/workers/test.ts b/cli/tests/workers/test.ts
deleted file mode 100644
index 44cbca0fe..000000000
--- a/cli/tests/workers/test.ts
+++ /dev/null
@@ -1,852 +0,0 @@
-// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
-
-// Requires to be run with `--allow-net` flag
-
-import {
- assert,
- assertEquals,
- assertThrows,
-} from "../../../test_util/std/testing/asserts.ts";
-import { deferred } from "../../../test_util/std/async/deferred.ts";
-import { fromFileUrl } from "../../../test_util/std/path/mod.ts";
-
-Deno.test({
- name: "worker terminate",
- fn: async function () {
- const promise = deferred();
-
- const jsWorker = new Worker(
- new URL("test_worker.js", import.meta.url).href,
- { type: "module" },
- );
- const tsWorker = new Worker(
- new URL("test_worker.ts", import.meta.url).href,
- { type: "module", name: "tsWorker" },
- );
-
- tsWorker.onmessage = (e) => {
- assertEquals(e.data, "Hello World");
- promise.resolve();
- };
-
- jsWorker.onmessage = (e) => {
- assertEquals(e.data, "Hello World");
- tsWorker.postMessage("Hello World");
- };
-
- jsWorker.onerror = (e: Event) => {
- e.preventDefault();
- jsWorker.postMessage("Hello World");
- };
-
- jsWorker.postMessage("Hello World");
- await promise;
- tsWorker.terminate();
- jsWorker.terminate();
- },
-});
-
-Deno.test({
- name: "worker from data url",
- async fn() {
- const promise = deferred();
- const tsWorker = new Worker(
- "data:application/typescript;base64,aWYgKHNlbGYubmFtZSAhPT0gInRzV29ya2VyIikgewogIHRocm93IEVycm9yKGBJbnZhbGlkIHdvcmtlciBuYW1lOiAke3NlbGYubmFtZX0sIGV4cGVjdGVkIHRzV29ya2VyYCk7Cn0KCm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKTogdm9pZCB7CiAgcG9zdE1lc3NhZ2UoZS5kYXRhKTsKICBjbG9zZSgpOwp9Owo=",
- { type: "module", name: "tsWorker" },
- );
-
- tsWorker.onmessage = (e) => {
- assertEquals(e.data, "Hello World");
- promise.resolve();
- };
-
- tsWorker.postMessage("Hello World");
-
- await promise;
- tsWorker.terminate();
- },
-});
-
-Deno.test({
- name: "worker nested",
- fn: async function () {
- const promise = deferred();
-
- const nestedWorker = new Worker(
- new URL("nested_worker.js", import.meta.url).href,
- { type: "module", name: "nested" },
- );
-
- nestedWorker.onmessage = (e) => {
- assert(e.data.type !== "error");
- promise.resolve();
- };
-
- nestedWorker.postMessage("Hello World");
- await promise;
- nestedWorker.terminate();
- },
-});
-
-Deno.test({
- name: "worker throws when executing",
- fn: async function () {
- const promise = deferred();
- const throwingWorker = new Worker(
- new URL("throwing_worker.js", import.meta.url).href,
- { type: "module" },
- );
-
- // deno-lint-ignore no-explicit-any
- throwingWorker.onerror = (e: any) => {
- e.preventDefault();
- assert(/Uncaught Error: Thrown error/.test(e.message));
- promise.resolve();
- };
-
- await promise;
- throwingWorker.terminate();
- },
-});
-
-Deno.test({
- name: "worker globals",
- fn: async function () {
- const promise = deferred();
- const workerOptions: WorkerOptions = { type: "module" };
- const w = new Worker(
- new URL("worker_globals.ts", import.meta.url).href,
- workerOptions,
- );
- w.onmessage = (e) => {
- assertEquals(e.data, "true, true, true, true");
- promise.resolve();
- };
- w.postMessage("Hello, world!");
- await promise;
- w.terminate();
- },
-});
-
-Deno.test({
- name: "worker fetch API",
- fn: async function () {
- const promise = deferred();
-
- const fetchingWorker = new Worker(
- new URL("fetching_worker.js", import.meta.url).href,
- { type: "module" },
- );
-
- // deno-lint-ignore no-explicit-any
- fetchingWorker.onerror = (e: any) => {
- e.preventDefault();
- promise.reject(e.message);
- };
-
- // Defer promise.resolve() to allow worker to shut down
- fetchingWorker.onmessage = (e) => {
- assert(e.data === "Done!");
- promise.resolve();
- };
-
- await promise;
- fetchingWorker.terminate();
- },
-});
-
-Deno.test({
- name: "worker terminate busy loop",
- fn: async function () {
- const promise = deferred();
-
- const busyWorker = new Worker(
- new URL("busy_worker.js", import.meta.url),
- { type: "module" },
- );
-
- let testResult = 0;
-
- busyWorker.onmessage = (e) => {
- testResult = e.data;
- if (testResult >= 10000) {
- busyWorker.terminate();
- busyWorker.onmessage = (_e) => {
- throw new Error("unreachable");
- };
- setTimeout(() => {
- assertEquals(testResult, 10000);
- promise.resolve();
- }, 100);
- }
- };
-
- busyWorker.postMessage("ping");
- await promise;
- },
-});
-
-Deno.test({
- name: "worker race condition",
- fn: async function () {
- // See issue for details
- // https://github.com/denoland/deno/issues/4080
- const promise = deferred();
-
- const racyWorker = new Worker(
- new URL("racy_worker.js", import.meta.url),
- { type: "module" },
- );
-
- racyWorker.onmessage = (_e) => {
- setTimeout(() => {
- promise.resolve();
- }, 100);
- };
-
- racyWorker.postMessage("START");
- await promise;
- },
-});
-
-Deno.test({
- name: "worker is event listener",
- fn: async function () {
- let messageHandlersCalled = 0;
- let errorHandlersCalled = 0;
-
- const promise1 = deferred();
- const promise2 = deferred();
-
- const worker = new Worker(
- new URL("event_worker.js", import.meta.url),
- { type: "module" },
- );
-
- worker.onmessage = (_e: Event) => {
- messageHandlersCalled++;
- };
- worker.addEventListener("message", (_e: Event) => {
- messageHandlersCalled++;
- });
- worker.addEventListener("message", (_e: Event) => {
- messageHandlersCalled++;
- promise1.resolve();
- });
-
- worker.onerror = (e) => {
- errorHandlersCalled++;
- e.preventDefault();
- };
- worker.addEventListener("error", (_e: Event) => {
- errorHandlersCalled++;
- });
- worker.addEventListener("error", (_e: Event) => {
- errorHandlersCalled++;
- promise2.resolve();
- });
-
- worker.postMessage("ping");
- await promise1;
- assertEquals(messageHandlersCalled, 3);
-
- worker.postMessage("boom");
- await promise2;
- assertEquals(errorHandlersCalled, 3);
- worker.terminate();
- },
-});
-
-Deno.test({
- name: "worker scope is event listener",
- fn: async function () {
- const promise1 = deferred();
-
- const worker = new Worker(
- new URL("event_worker_scope.js", import.meta.url),
- { type: "module" },
- );
-
- worker.onmessage = (e: MessageEvent) => {
- const { messageHandlersCalled, errorHandlersCalled } = e.data;
- assertEquals(messageHandlersCalled, 4);
- assertEquals(errorHandlersCalled, 4);
- promise1.resolve();
- };
-
- worker.onerror = (_e) => {
- throw new Error("unreachable");
- };
-
- worker.postMessage("boom");
- worker.postMessage("ping");
- await promise1;
- worker.terminate();
- },
-});
-
-Deno.test({
- name: "worker with Deno namespace",
- fn: async function () {
- const promise = deferred();
- const promise2 = deferred();
-
- const regularWorker = new Worker(
- new URL("non_deno_worker.js", import.meta.url),
- { type: "module" },
- );
- const denoWorker = new Worker(
- new URL("deno_worker.ts", import.meta.url),
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: "inherit",
- },
- },
- );
-
- regularWorker.onmessage = (e) => {
- assertEquals(e.data, "Hello World");
- regularWorker.terminate();
- promise.resolve();
- };
-
- denoWorker.onmessage = (e) => {
- assertEquals(e.data, "Hello World");
- denoWorker.terminate();
- promise2.resolve();
- };
-
- regularWorker.postMessage("Hello World");
- await promise;
- denoWorker.postMessage("Hello World");
- await promise2;
- },
-});
-
-Deno.test({
- name: "worker with crypto in scope",
- fn: async function () {
- const promise = deferred();
- const w = new Worker(
- new URL("worker_crypto.js", import.meta.url).href,
- { type: "module" },
- );
- w.onmessage = (e) => {
- assertEquals(e.data, true);
- promise.resolve();
- };
- w.postMessage(null);
- await promise;
- w.terminate();
- },
-});
-
-Deno.test({
- name: "Worker event handler order",
- fn: async function () {
- const promise = deferred();
- const w = new Worker(
- new URL("test_worker.ts", import.meta.url).href,
- { type: "module", name: "tsWorker" },
- );
- const arr: number[] = [];
- w.addEventListener("message", () => arr.push(1));
- w.onmessage = (_e) => {
- arr.push(2);
- };
- w.addEventListener("message", () => arr.push(3));
- w.addEventListener("message", () => {
- assertEquals(arr, [1, 2, 3]);
- promise.resolve();
- });
- w.postMessage("Hello World");
- await promise;
- w.terminate();
- },
-});
-
-Deno.test({
- name: "Worker immediate close",
- fn: async function () {
- const promise = deferred();
- const w = new Worker(
- new URL("./immediately_close_worker.js", import.meta.url).href,
- { type: "module" },
- );
- setTimeout(() => {
- promise.resolve();
- }, 1000);
- await promise;
- w.terminate();
- },
-});
-
-Deno.test({
- name: "Worker post undefined",
- fn: async function () {
- const promise = deferred();
- const worker = new Worker(
- new URL("./post_undefined.ts", import.meta.url).href,
- { type: "module" },
- );
-
- const handleWorkerMessage = (e: MessageEvent) => {
- console.log("main <- worker:", e.data);
- worker.terminate();
- promise.resolve();
- };
-
- worker.addEventListener("messageerror", () => console.log("message error"));
- worker.addEventListener("error", () => console.log("error"));
- worker.addEventListener("message", handleWorkerMessage);
-
- console.log("\npost from parent");
- worker.postMessage(undefined);
- await promise;
- },
-});
-
-Deno.test("Worker inherits permissions", async function () {
- const promise = deferred();
- const worker = new Worker(
- new URL("./read_check_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: "inherit",
- },
- },
- );
-
- worker.onmessage = ({ data: hasPermission }) => {
- assert(hasPermission);
- promise.resolve();
- };
-
- worker.postMessage(null);
-
- await promise;
- worker.terminate();
-});
-
-Deno.test("Worker limit children permissions", async function () {
- const promise = deferred();
- const worker = new Worker(
- new URL("./read_check_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: {
- read: false,
- },
- },
- },
- );
-
- worker.onmessage = ({ data: hasPermission }) => {
- assert(!hasPermission);
- promise.resolve();
- };
-
- worker.postMessage(null);
-
- await promise;
- worker.terminate();
-});
-
-Deno.test("Worker limit children permissions granularly", async function () {
- const promise = deferred();
- const worker = new Worker(
- new URL("./read_check_granular_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: {
- read: [
- new URL("./read_check_worker.js", import.meta.url),
- ],
- },
- },
- },
- );
-
- //Routes are relative to the spawned worker location
- const routes = [
- {
- permission: false,
- path: fromFileUrl(
- new URL("read_check_granular_worker.js", import.meta.url),
- ),
- },
- {
- permission: true,
- path: fromFileUrl(new URL("read_check_worker.js", import.meta.url)),
- },
- ];
-
- let checked = 0;
- worker.onmessage = ({ data }) => {
- checked++;
- assertEquals(data.hasPermission, routes[data.index].permission);
- routes.shift();
- if (checked === routes.length) {
- promise.resolve();
- }
- };
-
- routes.forEach(({ path }, index) =>
- worker.postMessage({
- index,
- path,
- })
- );
-
- await promise;
- worker.terminate();
-});
-
-Deno.test("Nested worker limit children permissions", async function () {
- const promise = deferred();
-
- /** This worker has read permissions but doesn't grant them to its children */
- const worker = new Worker(
- new URL("./parent_read_check_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: "inherit",
- },
- },
- );
-
- worker.onmessage = ({ data }) => {
- assert(data.parentHasPermission);
- assert(!data.childHasPermission);
- promise.resolve();
- };
-
- worker.postMessage(null);
-
- await promise;
- worker.terminate();
-});
-
-Deno.test("Nested worker limit children permissions granularly", async function () {
- const promise = deferred();
-
- /** This worker has read permissions but doesn't grant them to its children */
- const worker = new Worker(
- new URL("./parent_read_check_granular_worker.js", import.meta.url)
- .href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: {
- read: [
- new URL("./read_check_granular_worker.js", import.meta.url),
- ],
- },
- },
- },
- );
-
- //Routes are relative to the spawned worker location
- const routes = [
- {
- childHasPermission: false,
- parentHasPermission: true,
- path: fromFileUrl(
- new URL("read_check_granular_worker.js", import.meta.url),
- ),
- },
- {
- childHasPermission: false,
- parentHasPermission: false,
- path: fromFileUrl(new URL("read_check_worker.js", import.meta.url)),
- },
- ];
-
- let checked = 0;
- worker.onmessage = ({ data }) => {
- checked++;
- assertEquals(
- data.childHasPermission,
- routes[data.index].childHasPermission,
- );
- assertEquals(
- data.parentHasPermission,
- routes[data.index].parentHasPermission,
- );
- if (checked === routes.length) {
- promise.resolve();
- }
- };
-
- // Index needed cause requests will be handled asynchronously
- routes.forEach(({ path }, index) =>
- worker.postMessage({
- index,
- path,
- })
- );
-
- await promise;
- worker.terminate();
-});
-
-// This test relies on env permissions not being granted on main thread
-Deno.test("Worker initialization throws on worker permissions greater than parent thread permissions", function () {
- assertThrows(
- () => {
- const worker = new Worker(
- new URL("./deno_worker.ts", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: {
- env: true,
- },
- },
- },
- );
- worker.terminate();
- },
- Deno.errors.PermissionDenied,
- "Can't escalate parent thread permissions",
- );
-});
-
-Deno.test("Worker with disabled permissions", async function () {
- const promise = deferred();
-
- const worker = new Worker(
- new URL("./no_permissions_worker.js", import.meta.url).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: "none",
- },
- },
- );
-
- worker.onmessage = ({ data: sandboxed }) => {
- assert(sandboxed);
- promise.resolve();
- };
-
- worker.postMessage(null);
- await promise;
- worker.terminate();
-});
-
-Deno.test({
- name: "worker location",
- fn: async function () {
- const promise = deferred();
- const workerModuleHref =
- new URL("worker_location.ts", import.meta.url).href;
- const w = new Worker(workerModuleHref, { type: "module" });
- w.onmessage = (e) => {
- assertEquals(e.data, `${workerModuleHref}, true`);
- promise.resolve();
- };
- w.postMessage("Hello, world!");
- await promise;
- w.terminate();
- },
-});
-
-Deno.test({
- name: "worker with relative specifier",
- fn: async function () {
- assertEquals(location.href, "http://127.0.0.1:4545/cli/tests/");
- const promise = deferred();
- const w = new Worker(
- "./workers/test_worker.ts",
- { type: "module", name: "tsWorker" },
- );
- w.onmessage = (e) => {
- assertEquals(e.data, "Hello, world!");
- promise.resolve();
- };
- w.postMessage("Hello, world!");
- await promise;
- w.terminate();
- },
-});
-
-Deno.test({
- name: "Worker with top-level-await",
- fn: async function () {
- const result = deferred();
- const worker = new Worker(
- new URL("worker_with_top_level_await.ts", import.meta.url).href,
- { type: "module" },
- );
- worker.onmessage = (e) => {
- if (e.data == "ready") {
- worker.postMessage("trigger worker handler");
- } else if (e.data == "triggered worker handler") {
- result.resolve();
- } else {
- result.reject(new Error("Handler didn't run during top-level delay."));
- }
- };
- await result;
- worker.terminate();
- },
-});
-
-Deno.test({
- name: "Worker with native HTTP",
- fn: async function () {
- const result = deferred();
- const worker = new Worker(
- new URL(
- "./http_worker.js",
- import.meta.url,
- ).href,
- {
- type: "module",
- deno: {
- namespace: true,
- permissions: "inherit",
- },
- },
- );
- worker.onmessage = () => {
- result.resolve();
- };
- await result;
-
- assert(worker);
- const response = await fetch("http://localhost:4506");
- assert(await response.arrayBuffer());
- worker.terminate();
- },
-});
-
-Deno.test({
- name: "structured cloning postMessage",
- fn: async function () {
- const result = deferred();
- const worker = new Worker(
- new URL("worker_structured_cloning.ts", import.meta.url).href,
- { type: "module" },
- );
-
- worker.onmessage = (e) => {
- // self field should reference itself (circular ref)
- const value = e.data.self.self.self;
-
- // fields a and b refer to the same array
- assertEquals(value.a, ["a", true, 432]);
- assertEquals(value.a, ["a", true, 432]);
- value.b[0] = "b";
- value.a[2] += 5;
- assertEquals(value.a, ["b", true, 437]);
- assertEquals(value.b, ["b", true, 437]);
-
- const len = value.c.size;
- value.c.add(1); // This value is already in the set.
- value.c.add(2);
- assertEquals(len + 1, value.c.size);
-
- result.resolve();
- };
-
- worker.postMessage("START");
- await result;
- worker.terminate();
- },
-});
-
-Deno.test({
- name: "worker with relative specifier",
- fn: async function () {
- assertEquals(location.href, "http://127.0.0.1:4545/cli/tests/");
- const promise = deferred();
- const w = new Worker(
- "./workers/test_worker.ts",
- { type: "module", name: "tsWorker" },
- );
- w.onmessage = (e) => {
- assertEquals(e.data, "Hello, world!");
- promise.resolve();
- };
- w.postMessage("Hello, world!");
- await promise;
- w.terminate();
- },
-});
-
-Deno.test({
- name: "worker SharedArrayBuffer",
- fn: async function () {
- const promise = deferred();
- const workerOptions: WorkerOptions = { type: "module" };
- const w = new Worker(
- new URL("shared_array_buffer.ts", import.meta.url).href,
- workerOptions,
- );
- const sab1 = new SharedArrayBuffer(1);
- const sab2 = new SharedArrayBuffer(1);
- const bytes1 = new Uint8Array(sab1);
- const bytes2 = new Uint8Array(sab2);
- assertEquals(bytes1[0], 0);
- assertEquals(bytes2[0], 0);
- w.onmessage = () => {
- w.postMessage([sab1, sab2]);
- w.onmessage = () => {
- assertEquals(bytes1[0], 1);
- assertEquals(bytes2[0], 2);
- promise.resolve();
- };
- };
- await promise;
- w.terminate();
- },
-});
-
-Deno.test({
- name: "Send MessagePorts from / to workers",
- fn: async function () {
- const result = deferred();
- const worker = new Worker(
- new URL("message_port.ts", import.meta.url).href,
- { type: "module" },
- );
-
- const channel = new MessageChannel();
-
- worker.onmessage = (e) => {
- assertEquals(e.data, "1");
- assertEquals(e.ports.length, 1);
- const port1 = e.ports[0];
- port1.onmessage = (e) => {
- assertEquals(e.data, true);
- port1.close();
- worker.postMessage("3", [channel.port1]);
- };
- port1.postMessage("2");
- };
-
- channel.port2.onmessage = (e) => {
- assertEquals(e.data, true);
- channel.port2.close();
- result.resolve();
- };
-
- await result;
- worker.terminate();
- },
-});
diff --git a/cli/tests/workers/test.ts.out b/cli/tests/workers/test.ts.out
deleted file mode 100644
index 1b4238a9b..000000000
--- a/cli/tests/workers/test.ts.out
+++ /dev/null
@@ -1,3 +0,0 @@
-[WILDCARD]
-test result: ok. [WILDCARD] passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ([WILDCARD]ms)
-
diff --git a/cli/tests/workers/test_worker.js b/cli/tests/workers/test_worker.js
deleted file mode 100644
index 4260975a6..000000000
--- a/cli/tests/workers/test_worker.js
+++ /dev/null
@@ -1,19 +0,0 @@
-let thrown = false;
-
-if (self.name !== "") {
- throw Error(`Bad worker name: ${self.name}, expected empty string.`);
-}
-
-onmessage = function (e) {
- if (thrown === false) {
- thrown = true;
- throw new SyntaxError("[test error]");
- }
-
- postMessage(e.data);
- close();
-};
-
-onerror = function () {
- return false;
-};
diff --git a/cli/tests/workers/test_worker.ts b/cli/tests/workers/test_worker.ts
deleted file mode 100644
index 996476058..000000000
--- a/cli/tests/workers/test_worker.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-if (self.name !== "tsWorker") {
- throw Error(`Invalid worker name: ${self.name}, expected tsWorker`);
-}
-
-onmessage = function (e) {
- postMessage(e.data);
- close();
-};
diff --git a/cli/tests/workers/throwing_worker.js b/cli/tests/workers/throwing_worker.js
deleted file mode 100644
index 56ee4ff88..000000000
--- a/cli/tests/workers/throwing_worker.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// This worker just throws error when it's being executed
-throw Error("Thrown error");
diff --git a/cli/tests/workers/worker_crypto.js b/cli/tests/workers/worker_crypto.js
deleted file mode 100644
index 4398ad068..000000000
--- a/cli/tests/workers/worker_crypto.js
+++ /dev/null
@@ -1,5 +0,0 @@
-self.crypto.getRandomValues(new Uint8Array(16));
-
-onmessage = function () {
- postMessage(!!self.crypto);
-};
diff --git a/cli/tests/workers/worker_error.ts b/cli/tests/workers/worker_error.ts
deleted file mode 100644
index 696680de8..000000000
--- a/cli/tests/workers/worker_error.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-const worker = new Worker(
- new URL("error.ts", import.meta.url).href,
- { type: "module", name: "bar" },
-);
-setTimeout(() => worker.terminate(), 30000);
diff --git a/cli/tests/workers/worker_error.ts.out b/cli/tests/workers/worker_error.ts.out
deleted file mode 100644
index 4a8e92f00..000000000
--- a/cli/tests/workers/worker_error.ts.out
+++ /dev/null
@@ -1,5 +0,0 @@
-[WILDCARD]error: Uncaught (in worker "bar") Error: foo[WILDCARD]
- at foo ([WILDCARD])
- at [WILDCARD]
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
- at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/workers/worker_event_handlers.js b/cli/tests/workers/worker_event_handlers.js
deleted file mode 100644
index c8976f79e..000000000
--- a/cli/tests/workers/worker_event_handlers.js
+++ /dev/null
@@ -1,23 +0,0 @@
-self.onmessage = (evt) => {
- console.log("Target from self.onmessage:", String(evt.target));
-};
-
-self.addEventListener("message", (evt) => {
- console.log("Target from message event listener:", String(evt.target));
-
- // Throw an error here so the global's error event will fire.
- throw new Error("Some error message");
-});
-
-self.onerror = (...args) => {
- console.log("Arguments from self.onerror:", args);
- return true;
-};
-
-self.addEventListener("error", (evt) => {
- // Returning true from self.onerror means that subsequent event listeners
- // should see the event as canceled.
- console.log("Is event canceled?:", evt.defaultPrevented);
-
- self.close();
-});
diff --git a/cli/tests/workers/worker_globals.ts b/cli/tests/workers/worker_globals.ts
deleted file mode 100644
index 90e369e41..000000000
--- a/cli/tests/workers/worker_globals.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-onmessage = function () {
- postMessage(
- [
- self instanceof DedicatedWorkerGlobalScope,
- self instanceof WorkerGlobalScope,
- self instanceof EventTarget,
- // TODO(nayeemrmn): Add `WorkerNavigator` to deno_lint globals.
- // deno-lint-ignore no-undef
- navigator instanceof WorkerNavigator,
- ].join(", "),
- );
- close();
-};
diff --git a/cli/tests/workers/worker_large_message.js b/cli/tests/workers/worker_large_message.js
deleted file mode 100644
index a1ddae4f9..000000000
--- a/cli/tests/workers/worker_large_message.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2020 the Deno authors. All rights reserved. MIT license.
-
-const dataSmall = "";
-const dataLarge = "x".repeat(10 * 1024);
-
-onmessage = function (_e) {
- for (let i = 0; i <= 10; i++) {
- if (i % 2 == 0) {
- postMessage(dataLarge);
- } else {
- postMessage(dataSmall);
- }
- }
-};
diff --git a/cli/tests/workers/worker_location.ts b/cli/tests/workers/worker_location.ts
deleted file mode 100644
index c3c1bb26f..000000000
--- a/cli/tests/workers/worker_location.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-onmessage = function () {
- postMessage(
- `${location.href}, ${location instanceof WorkerLocation}`,
- );
- close();
-};
diff --git a/cli/tests/workers/worker_nested_error.ts b/cli/tests/workers/worker_nested_error.ts
deleted file mode 100644
index aba2011be..000000000
--- a/cli/tests/workers/worker_nested_error.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-const worker = new Worker(
- new URL("worker_error.ts", import.meta.url).href,
- { type: "module", name: "baz" },
-);
-setTimeout(() => worker.terminate(), 30000);
diff --git a/cli/tests/workers/worker_nested_error.ts.out b/cli/tests/workers/worker_nested_error.ts.out
deleted file mode 100644
index 4a8e92f00..000000000
--- a/cli/tests/workers/worker_nested_error.ts.out
+++ /dev/null
@@ -1,5 +0,0 @@
-[WILDCARD]error: Uncaught (in worker "bar") Error: foo[WILDCARD]
- at foo ([WILDCARD])
- at [WILDCARD]
-error: Uncaught (in promise) Error: Unhandled error event reached main worker.
- at Worker.#pollControl ([WILDCARD])
diff --git a/cli/tests/workers/worker_structured_cloning.ts b/cli/tests/workers/worker_structured_cloning.ts
deleted file mode 100644
index eb1719a9a..000000000
--- a/cli/tests/workers/worker_structured_cloning.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-// More info on structured cloning can be found here:
-// https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
-
-self.onmessage = () => {
- const arr = ["a", true, 432];
- const set = new Set([1, 3, 5, 7, 9]);
- const selfReference = {
- a: arr,
- b: arr,
- c: set,
- };
- // deno-lint-ignore no-explicit-any
- (selfReference as any).self = selfReference;
- self.postMessage(selfReference);
-};
diff --git a/cli/tests/workers/worker_types.ts b/cli/tests/workers/worker_types.ts
deleted file mode 100644
index b67a3b782..000000000
--- a/cli/tests/workers/worker_types.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-// deno-lint-ignore require-await
-self.onmessage = async (_msg: MessageEvent) => {
- self.postMessage("hello");
-};
diff --git a/cli/tests/workers/worker_unstable.ts b/cli/tests/workers/worker_unstable.ts
deleted file mode 100644
index a5b5f7ba2..000000000
--- a/cli/tests/workers/worker_unstable.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-console.log(Deno.permissions.query);
-console.log(Deno.emit);
-self.onmessage = () => {
- self.close();
-};
diff --git a/cli/tests/workers/worker_with_top_level_await.ts b/cli/tests/workers/worker_with_top_level_await.ts
deleted file mode 100644
index 1d20bb736..000000000
--- a/cli/tests/workers/worker_with_top_level_await.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-function delay(ms: number) {
- return new Promise<void>((resolve) => {
- setTimeout(() => {
- resolve();
- }, ms);
- });
-}
-
-onmessage = (_e: MessageEvent) => {
- postMessage("triggered worker handler");
- close();
-};
-postMessage("ready");
-await delay(1000);
-postMessage("never");