multi-tape 1.11.1 → 1.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/build/index.js +28 -20
- package/build/lib/run-test.d.ts +1 -0
- package/build/lib/run-test.js +5 -9
- package/build/test-fail/test-30s.d.ts +1 -0
- package/build/test-fail/test-30s.js +18 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.11.2] 2025-12-10
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- Run tests in the order specified by arguments
|
|
15
|
+
- Abort tests properly on SIGTERM/SIGINT
|
|
16
|
+
|
|
10
17
|
## [1.11.1] 2025-11-23
|
|
11
18
|
|
|
12
19
|
### Fixes
|
package/build/index.js
CHANGED
|
@@ -86,24 +86,20 @@ Examples:
|
|
|
86
86
|
For more information, visit: https://github.com/mattiash/node-multi-tape
|
|
87
87
|
`);
|
|
88
88
|
}
|
|
89
|
-
const files = (0, glob_1.globArgs)(argv._)
|
|
89
|
+
const files = (0, glob_1.globArgs)(argv._);
|
|
90
90
|
if (files.length === 0) {
|
|
91
91
|
printHelp();
|
|
92
92
|
process.exit(0);
|
|
93
93
|
}
|
|
94
94
|
const inProgress = new Set();
|
|
95
|
+
const okPrefix = process.env.MT_NO_EMOJI ? '' : '✅ ';
|
|
96
|
+
const failPrefix = process.env.MT_NO_EMOJI ? '' : '❌ ';
|
|
97
|
+
const emptyPrefix = process.env.MT_NO_EMOJI ? '' : ' ';
|
|
95
98
|
const aborted = new Set();
|
|
96
|
-
|
|
97
|
-
inProgress.forEach((file) => {
|
|
98
|
-
aborted.add(file);
|
|
99
|
-
});
|
|
100
|
-
}
|
|
99
|
+
let abortInProgress = false;
|
|
101
100
|
function printTestResult(file, res) {
|
|
102
|
-
const { exitCode, result: r, executionTime } = res;
|
|
101
|
+
const { exitCode, result: r, executionTime, signal } = res;
|
|
103
102
|
const timeStr = `${(executionTime / 1000).toFixed(1)}s`;
|
|
104
|
-
const okPrefix = process.env.MT_NO_EMOJI ? '' : '✅ ';
|
|
105
|
-
const failPrefix = process.env.MT_NO_EMOJI ? '' : '❌ ';
|
|
106
|
-
const emptyPrefix = process.env.MT_NO_EMOJI ? '' : ' ';
|
|
107
103
|
if (exitCode === 0 && r.ok) {
|
|
108
104
|
console.log(`${okPrefix}OK ${file} (${timeStr}) ${r.pass}/${r.count}`);
|
|
109
105
|
}
|
|
@@ -111,6 +107,9 @@ function printTestResult(file, res) {
|
|
|
111
107
|
if (!r.ok) {
|
|
112
108
|
console.log(`${failPrefix}FAIL ${file} (${timeStr}) ${r.pass || 0}/${r.count || 0}`);
|
|
113
109
|
}
|
|
110
|
+
else if (signal) {
|
|
111
|
+
console.log(`${failPrefix}FAIL ${file} exited with signal ${signal}`);
|
|
112
|
+
}
|
|
114
113
|
else {
|
|
115
114
|
console.log(`${failPrefix}FAIL ${file} exited with error ${exitCode}`);
|
|
116
115
|
}
|
|
@@ -124,12 +123,14 @@ function thread() {
|
|
|
124
123
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
124
|
let file;
|
|
126
125
|
while ((file = files.shift())) {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
126
|
+
if (!abortInProgress) {
|
|
127
|
+
inProgress.add(file);
|
|
128
|
+
const result = yield (0, run_test_1.runTest)(file, nodeArgs, parallelism === 1, argv.o || !!argv.O, argv.j, argv.t, argv.q, argv.e, argv.O);
|
|
129
|
+
inProgress.delete(file);
|
|
130
|
+
results.set(file, result);
|
|
131
|
+
if (argv.q) {
|
|
132
|
+
printTestResult(file, result);
|
|
133
|
+
}
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
});
|
|
@@ -198,7 +199,7 @@ function printSummary() {
|
|
|
198
199
|
}
|
|
199
200
|
}
|
|
200
201
|
if (aborted.size > 0) {
|
|
201
|
-
console.log(
|
|
202
|
+
console.log(`\n${failPrefix}multi-tape aborted. Tests in progress: `);
|
|
202
203
|
aborted.forEach((file) => console.log(` ${file}`));
|
|
203
204
|
success = false;
|
|
204
205
|
}
|
|
@@ -206,8 +207,15 @@ function printSummary() {
|
|
|
206
207
|
process.exit(1);
|
|
207
208
|
}
|
|
208
209
|
}
|
|
209
|
-
|
|
210
|
-
|
|
210
|
+
function abort() {
|
|
211
|
+
abortInProgress = true;
|
|
212
|
+
inProgress.forEach((p) => {
|
|
213
|
+
aborted.add(p);
|
|
214
|
+
});
|
|
215
|
+
setTimeout(printSummary, 5000).unref();
|
|
216
|
+
}
|
|
217
|
+
process.on('SIGTERM', abort);
|
|
218
|
+
process.on('SIGINT', abort);
|
|
211
219
|
if (process.env.MT_DEBUG_INTERVAL) {
|
|
212
220
|
setInterval(() => {
|
|
213
221
|
console.log(`## Queued: ${files.length}`);
|
|
@@ -215,4 +223,4 @@ if (process.env.MT_DEBUG_INTERVAL) {
|
|
|
215
223
|
}, parseInt(process.env.MT_DEBUG_INTERVAL)).unref();
|
|
216
224
|
}
|
|
217
225
|
void run();
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFQSxpREFBcUM7QUFDckMsMkJBQXlDO0FBQ3pDLHFDQUFxQztBQUNyQyw2Q0FBZ0Q7QUFDaEQsd0RBQWdDO0FBRWhDLE1BQU0sSUFBSSxHQUFHLElBQUEsa0JBQVMsRUFTbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDdEIsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQzdCLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNiLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtDQUMxQixDQUFDLENBQUE7QUFFRixTQUFTLFdBQVc7SUFDaEIsSUFBSSxDQUFDO1FBQ0QsT0FBTyxJQUFBLHlCQUFvQixHQUFFLENBQUE7SUFDakMsQ0FBQztJQUFDLFdBQU0sQ0FBQztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDVixPQUFPLENBQUMsSUFBSSxDQUFDLHFEQUFxRCxDQUFDLENBQUE7UUFDdkUsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFBO0lBQ1osQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUN6QixNQUEwQixFQUMxQixNQUEwQjtJQUcxQixJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtRQUM1RCxPQUFPLENBQUMsS0FBSyxDQUNULGlFQUFpRSxDQUNwRSxDQUFBO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNuQixDQUFDO0lBR0QsSUFBSSxNQUFNLEtB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
|
package/build/lib/run-test.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ export interface Result {
|
|
|
3
3
|
exitCode: number;
|
|
4
4
|
executionTime: number;
|
|
5
5
|
result: FinalResults;
|
|
6
|
+
signal: string;
|
|
6
7
|
}
|
|
7
8
|
export declare function runTest(filename: string, nodeArgs: string[], logConsole: boolean, outputToFile: boolean, junitOutput: boolean, timeout: number, quiet?: boolean, errorsOnly?: boolean, outputDir?: string): Promise<Result>;
|
package/build/lib/run-test.js
CHANGED
|
@@ -50,6 +50,7 @@ const child_process_1 = require("child_process");
|
|
|
50
50
|
const fs_1 = require("fs");
|
|
51
51
|
const promises_1 = require("node:fs/promises");
|
|
52
52
|
const path_1 = require("path");
|
|
53
|
+
const failPrefix = process.env.MT_NO_EMOJI ? '' : '❌ ';
|
|
53
54
|
function runTest(filename_1, nodeArgs_1, logConsole_1, outputToFile_1, junitOutput_1, timeout_1) {
|
|
54
55
|
return __awaiter(this, arguments, void 0, function* (filename, nodeArgs, logConsole, outputToFile, junitOutput, timeout, quiet = false, errorsOnly = false, outputDir) {
|
|
55
56
|
const extraEnv = {};
|
|
@@ -65,11 +66,11 @@ function runTest(filename_1, nodeArgs_1, logConsole_1, outputToFile_1, junitOutp
|
|
|
65
66
|
const exited = new Promise((resolve) => {
|
|
66
67
|
let timer = timeout > 0
|
|
67
68
|
? setTimeout(() => {
|
|
68
|
-
console.log(
|
|
69
|
+
console.log(`multi-tape: ${failPrefix}Timeout for ${(0, path_1.basename)(filename)}. Sending SIGTERM`);
|
|
69
70
|
proc.kill('SIGTERM');
|
|
70
71
|
aborted = true;
|
|
71
72
|
timer = setTimeout(() => {
|
|
72
|
-
console.log(
|
|
73
|
+
console.log(`multi-tape: ${failPrefix}Second timeout for ${(0, path_1.basename)(filename)}. Sending SIGKILL`);
|
|
73
74
|
proc.kill('SIGKILL');
|
|
74
75
|
}, 10000);
|
|
75
76
|
}, timeout)
|
|
@@ -130,17 +131,12 @@ function runTest(filename_1, nodeArgs_1, logConsole_1, outputToFile_1, junitOutp
|
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
}
|
|
133
|
-
if (signal && !quiet && !errorsOnly) {
|
|
134
|
-
console.log(`${filename} exited with signal ${signal}`);
|
|
135
|
-
}
|
|
136
|
-
else if (signal && errorsOnly && (exitCode !== 0 || !result.ok)) {
|
|
137
|
-
console.log(`${filename} exited with signal ${signal}`);
|
|
138
|
-
}
|
|
139
134
|
return {
|
|
140
135
|
exitCode,
|
|
141
136
|
executionTime: endTime - startTime,
|
|
142
137
|
result,
|
|
138
|
+
signal,
|
|
143
139
|
};
|
|
144
140
|
});
|
|
145
141
|
}
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcnVuLXRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQkEsMEJBNkhDO0FBbEpELDJDQUFpRDtBQUVqRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDMUIsd0RBQXlDO0FBQ3pDLGlEQUFxQztBQUNyQywyQkFBc0M7QUFDdEMsK0NBQXdDO0FBQ3hDLCtCQUF3QztBQUd4QyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFXdEQsU0FBc0IsT0FBTzt5REFDekIsUUFBZ0IsRUFDaEIsUUFBa0IsRUFDbEIsVUFBbUIsRUFDbkIsWUFBcUIsRUFDckIsV0FBb0IsRUFDcEIsT0FBZSxFQUNmLFFBQWlCLEtBQUssRUFDdEIsYUFBc0IsS0FBSyxFQUMzQixTQUFrQjtRQUVsQixNQUFNLFFBQVEsR0FBRyxFQUE0QixDQUFBO1FBQzdDLElBQUksV0FBVyxFQUFFLENBQUM7WUFDZCxRQUFRLENBQUMsYUFBYSxHQUFHLFFBQVEsR0FBRyxNQUFNLENBQUE7WUFDMUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFBLGVBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQTtRQUMvQyxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBRTVCLE1BQU0sSUFBSSxHQUFHLElBQUEscUJBQUssRUFBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsRCxHQUFHLGtDQUNJLE9BQU8sQ0FBQyxHQUFHLEdBQ1gsUUFBUSxDQUNkO1NBQ0osQ0FBQyxDQUFBO1FBRUYsSUFBSSxPQUFPLEdBQUcsS0FBSyxD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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const purple_tape_1 = require("purple-tape");
|
|
13
|
+
const sleep = (ms) => new Promise((res) => setTimeout(res, ms));
|
|
14
|
+
(0, purple_tape_1.test)('succeeds after 30s', (t) => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
yield sleep(30000);
|
|
16
|
+
t.pass();
|
|
17
|
+
}));
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC0zMHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0LWZhaWwvdGVzdC0zMHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBa0M7QUFFbEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFdkUsSUFBQSxrQkFBSSxFQUFDLG9CQUFvQixFQUFFLENBQU8sQ0FBQyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxLQUFLLENBQUMsS0FBTSxDQUFDLENBQUE7SUFDbkIsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0FBQ1osQ0FBQyxDQUFBLENBQUMsQ0FBQSJ9
|