summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorYoshiya Hinosawa <stibium121@gmail.com>2023-03-30 23:35:45 +0900
committerGitHub <noreply@github.com>2023-03-30 16:35:45 +0200
commit3deade4b14de809f67ed0471f8e91c91b25fedcc (patch)
treeced6ca8274b9ef181daf5e097ef6044b84b2a8ab /cli
parentd418f792a97e66fb7a0b5c652869478c22e6cc12 (diff)
chore(ext/node): run node compat parallel tests in core number concurrency (#18505)
We currently run the all test cases in `parallel` category at the same time, which invokes hundreds process at the same time, and that seems causing some flakiness in CI. (maybe related to #18487) This PR limits the concurrency to the number of cpu cores. This is more aligned to how Node.js run their `parallel` test in their repository. https://github.com/nodejs/node/blob/42c4a359525f70c322c0df0eac188fa2b05c3f53/Makefile#L356
Diffstat (limited to 'cli')
-rw-r--r--cli/tests/node_compat/test.ts14
1 files changed, 10 insertions, 4 deletions
diff --git a/cli/tests/node_compat/test.ts b/cli/tests/node_compat/test.ts
index ad2847f08..4ab703576 100644
--- a/cli/tests/node_compat/test.ts
+++ b/cli/tests/node_compat/test.ts
@@ -1,5 +1,6 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
import { magenta } from "std/fmt/colors.ts";
+import { pooledMap } from "std/async/pool.ts";
import { dirname, fromFileUrl, join } from "std/path/mod.ts";
import { fail } from "std/testing/asserts.ts";
import {
@@ -115,11 +116,16 @@ Deno.test("Node.js compatibility", async (t) => {
for (const path of testPaths.sequential) {
await runTest(t, path);
}
- const pending = [];
- for (const path of testPaths.parallel) {
- pending.push(runTest(t, path));
+ const testPool = pooledMap(
+ navigator.hardwareConcurrency,
+ testPaths.parallel,
+ (path) => runTest(t, path),
+ );
+ const testCases = [];
+ for await (const testCase of testPool) {
+ testCases.push(testCase);
}
- await Promise.all(pending);
+ await Promise.all(testCases);
});
function checkConfigTestFilesOrder(testFileLists: Array<string[]>) {