Skip to content

Commit a1518d3

Browse files
committed
Clean up parallel test runs in runtests-file
1 parent 87fc46c commit a1518d3

1 file changed

Lines changed: 27 additions & 8 deletions

File tree

Jakefile.js

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -766,15 +766,22 @@ function runTestsAndWriteOutput(file, defaultSubsets) {
766766

767767
var subsetRegexes;
768768
var subsets;
769-
if (defaultSubsets.length === 0) {
769+
if (tests || defaultSubsets.length === 0) {
770770
subsetRegexes = [tests];
771771
subsets = [tests];
772772
}
773773
else {
774-
subsets = tests ? tests.split("|") : defaultSubsets;
775-
subsetRegexes = subsets.map(function (sub) { return "^" + sub + ".*$"; });
776-
subsetRegexes.push("^(?!" + subsets.join("|") + ").*$");
774+
subsets = [];
775+
subsetRegexes = [];
776+
negations = [];
777+
for (const subset of defaultSubsets) {
778+
subsets.push(subset.name);
779+
subsetRegexes.push(subset.pattern);
780+
negations.push(subset.pattern);
781+
}
782+
777783
subsets.push("other");
784+
subsetRegexes.push("^(?!" + negations.join("|") + ")");
778785
}
779786

780787
var out = fs.createWriteStream(file);
@@ -1080,11 +1087,23 @@ task("runtests", ["build-rules", "tests", builtLocalDirectory], function() {
10801087
}, {async: true});
10811088

10821089
task("runtests-file", ["build-rules", "tests", builtLocalDirectory], function () {
1083-
runTestsAndWriteOutput("tests/baselines/local/testresults.tap", []);
1084-
}, { async: true });
1085-
task("runtests-file-parallel", ["build-rules", "tests", builtLocalDirectory], function () {
1086-
runTestsAndWriteOutput("tests/baselines/local/testresults.tap", ["conformance", "compiler", "Projects", "fourslash"]);
1090+
var subsets = [];
1091+
var cores = os.cpus().length;
1092+
if (cores > 1) {
1093+
subsets.push({ name: "conformance", pattern: "^conformance\\b" });
1094+
subsets.push({ name: "compiler", pattern: "^compiler\\b" });
1095+
subsets.push({ name: "projects", pattern: "^Projects\\b" });
1096+
if (cores > 4) {
1097+
subsets.push({ name: "fourslash", pattern: "^fourslash\\b" });
1098+
subsets.push({ name: "fourslash (shims, shims-pp, server)", pattern: "^fourslash-" });
1099+
}
1100+
else {
1101+
subsets.push({ name: "fourslash", pattern: "^fourslash" });
1102+
}
1103+
}
1104+
runTestsAndWriteOutput("tests/baselines/local/testresults.tap", subsets);
10871105
}, { async: true });
1106+
10881107
task("runtests-dirty", ["build-rules", "tests", builtLocalDirectory], function () {
10891108
runConsoleTests("mocha-fivemat-progress-reporter", [], /*dirty*/ true);
10901109
}, { async: true });

0 commit comments

Comments
 (0)