summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/tests/immediately_close_worker.js1
-rw-r--r--cli/tests/integration_tests.rs5
-rw-r--r--cli/tests/no_mem_cache.js33
-rw-r--r--cli/tests/no_mem_cache.js.out2
-rw-r--r--cli/tests/workers_test.ts16
5 files changed, 57 insertions, 0 deletions
diff --git a/cli/tests/immediately_close_worker.js b/cli/tests/immediately_close_worker.js
new file mode 100644
index 000000000..8fd27343a
--- /dev/null
+++ b/cli/tests/immediately_close_worker.js
@@ -0,0 +1 @@
+self.close();
diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs
index afe030a03..a7e901d83 100644
--- a/cli/tests/integration_tests.rs
+++ b/cli/tests/integration_tests.rs
@@ -3273,6 +3273,11 @@ itest!(ignore_require {
exit_code: 0,
});
+itest!(local_sources_not_cached_in_memory {
+ args: "run --allow-read --allow-write no_mem_cache.js",
+ output: "no_mem_cache.js.out",
+});
+
#[test]
fn cafile_env_fetch() {
use deno_core::url::Url;
diff --git a/cli/tests/no_mem_cache.js b/cli/tests/no_mem_cache.js
new file mode 100644
index 000000000..a486732b6
--- /dev/null
+++ b/cli/tests/no_mem_cache.js
@@ -0,0 +1,33 @@
+const fixtureFile = await Deno.makeTempFile();
+let prefix = "file://";
+if (Deno.build.os == "windows") {
+ prefix += "/";
+}
+const fixtureUrl = new URL(`${prefix}${fixtureFile}`);
+let resolve;
+
+let p = new Promise((res) => resolve = res);
+
+await Deno.writeTextFile(fixtureUrl, `self.postMessage("hello");\n`);
+
+const workerA = new Worker(fixtureUrl.href, { type: "module" });
+workerA.onmessage = (msg) => {
+ console.log(msg.data);
+ resolve();
+};
+
+await p;
+workerA.terminate();
+
+p = new Promise((res) => resolve = res);
+
+await Deno.writeTextFile(fixtureUrl, `self.postMessage("goodbye");\n`);
+
+const workerB = new Worker(fixtureUrl.href, { type: "module" });
+workerB.onmessage = (msg) => {
+ console.log(msg.data);
+ resolve();
+};
+
+await p;
+workerB.terminate();
diff --git a/cli/tests/no_mem_cache.js.out b/cli/tests/no_mem_cache.js.out
new file mode 100644
index 000000000..a32119c8a
--- /dev/null
+++ b/cli/tests/no_mem_cache.js.out
@@ -0,0 +1,2 @@
+hello
+goodbye
diff --git a/cli/tests/workers_test.ts b/cli/tests/workers_test.ts
index e5b0eaa74..d907c97a9 100644
--- a/cli/tests/workers_test.ts
+++ b/cli/tests/workers_test.ts
@@ -341,3 +341,19 @@ Deno.test({
w.terminate();
},
});
+
+Deno.test({
+ name: "Worker immediate close",
+ fn: async function (): Promise<void> {
+ 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();
+ },
+});