Skip to content

Commit f476ece

Browse files
author
Kanchalai Tanglertsampan
committed
Wip-report error when sof happen while running in parallel
1 parent 0f489b8 commit f476ece

File tree

1 file changed

+36
-4
lines changed

1 file changed

+36
-4
lines changed

scripts/mocha-parallel.js

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ function runTests(taskConfigsFolder, run, options, cb) {
7272
current: undefined,
7373
start: undefined,
7474
end: undefined,
75+
catastrophicError: "",
7576
failures: []
7677
};
7778
partitions[index] = partition;
@@ -86,9 +87,20 @@ function runTests(taskConfigsFolder, run, options, cb) {
8687
input: p.stdout,
8788
terminal: false
8889
});
90+
91+
var rlError = readline.createInterface({
92+
input: p.stderr,
93+
terminal: false
94+
})
95+
8996
rl.on("line", onmessage);
97+
rlError.on("line", onErrorMessage);
9098
p.on("exit", onexit)
9199

100+
function onErrorMessage(line) {
101+
partition.catastrophicError += line + os.EOL;
102+
}
103+
92104
function onmessage(line) {
93105
if (partition.start === undefined) {
94106
partition.start = Date.now();
@@ -153,15 +165,19 @@ function runTests(taskConfigsFolder, run, options, cb) {
153165
}
154166
}
155167

156-
function onexit() {
168+
function onexit(code) {
157169
if (partition.end === undefined) {
158170
partition.end = Date.now();
159171
}
160172

161173
partition.duration = partition.end - partition.start;
162-
var summaryColor = partition.failed ? "fail" : "green";
163-
var summarySymbol = partition.failed ? Base.symbols.err : Base.symbols.ok;
164-
var summaryTests = (partition.passed === partition.tests ? partition.passed : partition.passed + "/" + partition.tests) + " passing";
174+
var isPartitionFail = partition.failed || code !== 0;
175+
var summaryColor = isPartitionFail ? "fail" : "green";
176+
var summarySymbol = isPartitionFail ? Base.symbols.err : Base.symbols.ok;
177+
if (partition.passed === 54107) {
178+
console.log(partition);
179+
}
180+
var summaryTests = (isPartitionFail ? partition.passed + "/" + partition.tests : partition.passed) + " passssssing";
165181
var summaryDuration = "(" + ms(partition.duration) + ")";
166182
var savedUseColors = Base.useColors;
167183
Base.useColors = !options.noColors;
@@ -198,12 +214,25 @@ function runTests(taskConfigsFolder, run, options, cb) {
198214
failures = reporter.failures;
199215

200216
var duration = 0;
217+
var catastrophicError = "";
201218
for (var i = 0; i < numPartitions; i++) {
202219
var partition = partitions[i];
203220
stats.passes += partition.passed;
204221
stats.failures += partition.failed;
205222
stats.tests += partition.tests;
206223
duration += partition.duration;
224+
if (partition.catastrophicError !== "") {
225+
//{"light":false,
226+
// "tasks":[{"runner":"compiler","files":["tests/cases/compiler/es6ImportNamedImportParsingError.ts"]}],
227+
// "runUnitTests":false}
228+
var jsonText = fs.readFileSync(partition.file);
229+
var configObj = JSON.parse(jsonText);
230+
if (configObj.tasks && configObj.tasks[0]) {
231+
catastrophicError += "Error from one or more of these files: " + configObj.tasks[0].files + os.EOL;
232+
catastrophicError += partition.catastrophicError;
233+
catastrophicError += os.EOL;
234+
}
235+
}
207236
for (var j = 0; j < partition.failures.length; j++) {
208237
var failure = partition.failures[j];
209238
failures.push(makeMochaTest(failure));
@@ -223,6 +252,9 @@ function runTests(taskConfigsFolder, run, options, cb) {
223252
reporter.epilogue();
224253
}
225254

255+
if (catastrophicError !== "") {
256+
return cb(new Error(catastrophicError));
257+
}
226258
if (stats.failures) {
227259
return cb(new Error("Test failures reported: " + stats.failures));
228260
}

0 commit comments

Comments
 (0)