diff options
author | Yoshiya Hinosawa <stibium121@gmail.com> | 2023-03-30 23:35:45 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-30 16:35:45 +0200 |
commit | 3deade4b14de809f67ed0471f8e91c91b25fedcc (patch) | |
tree | ced6ca8274b9ef181daf5e097ef6044b84b2a8ab /cli | |
parent | d418f792a97e66fb7a0b5c652869478c22e6cc12 (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.ts | 14 |
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[]>) { |