1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-28 16:20:57 -05:00

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.
42c4a35952/Makefile (L356)
This commit is contained in:
Yoshiya Hinosawa 2023-03-30 23:35:45 +09:00 committed by GitHub
parent d418f792a9
commit 3deade4b14
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,5 +1,6 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
import { magenta } from "std/fmt/colors.ts"; import { magenta } from "std/fmt/colors.ts";
import { pooledMap } from "std/async/pool.ts";
import { dirname, fromFileUrl, join } from "std/path/mod.ts"; import { dirname, fromFileUrl, join } from "std/path/mod.ts";
import { fail } from "std/testing/asserts.ts"; import { fail } from "std/testing/asserts.ts";
import { import {
@ -115,11 +116,16 @@ Deno.test("Node.js compatibility", async (t) => {
for (const path of testPaths.sequential) { for (const path of testPaths.sequential) {
await runTest(t, path); await runTest(t, path);
} }
const pending = []; const testPool = pooledMap(
for (const path of testPaths.parallel) { navigator.hardwareConcurrency,
pending.push(runTest(t, path)); 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[]>) { function checkConfigTestFilesOrder(testFileLists: Array<string[]>) {