summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/workers/large_message_worker.js14
-rw-r--r--cli/tests/workers_large_message_bench.ts35
2 files changed, 49 insertions, 0 deletions
diff --git a/cli/tests/workers/large_message_worker.js b/cli/tests/workers/large_message_worker.js
new file mode 100644
index 000000000..f7b7da8a0
--- /dev/null
+++ b/cli/tests/workers/large_message_worker.js
@@ -0,0 +1,14 @@
+// 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_large_message_bench.ts b/cli/tests/workers_large_message_bench.ts
new file mode 100644
index 000000000..9cda5a40d
--- /dev/null
+++ b/cli/tests/workers_large_message_bench.ts
@@ -0,0 +1,35 @@
+// Copyright 2020 the Deno authors. All rights reserved. MIT license.
+
+// deno-lint-ignore-file
+
+import { deferred } from "../../test_util/std/async/deferred.ts";
+
+function oneWorker(i: any): Promise<void> {
+ return new Promise<void>((resolve) => {
+ let countDown = 10;
+ const worker = new Worker(
+ new URL("workers/large_message_worker.js", import.meta.url).href,
+ { type: "module" },
+ );
+ worker.onmessage = (e): void => {
+ if (countDown > 0) {
+ countDown--;
+ return;
+ }
+ worker.terminate();
+ resolve();
+ };
+ worker.postMessage("hi " + i);
+ });
+}
+
+function bench(): Promise<any> {
+ let promises = [];
+ for (let i = 0; i < 50; i++) {
+ promises.push(oneWorker(i));
+ }
+
+ return Promise.all(promises);
+}
+
+bench();