35 lines
971 B
JavaScript
35 lines
971 B
JavaScript
'use strict';
|
|
|
|
const { readdirSync } = require('fs');
|
|
const { spawnSync } = require('child_process');
|
|
const path = require('path');
|
|
|
|
let benchmarks = [];
|
|
|
|
if (!!process.env.npm_config_benchmarks) {
|
|
benchmarks = process.env.npm_config_benchmarks
|
|
.split(';')
|
|
.map((item) => (item + '.js'));
|
|
}
|
|
|
|
// Run each file in this directory or the list given on the command line except
|
|
// index.js as a Node.js process.
|
|
(benchmarks.length > 0 ? benchmarks : readdirSync(__dirname))
|
|
.filter((item) => (item !== 'index.js' && item.match(/\.js$/)))
|
|
.map((item) => path.join(__dirname, item))
|
|
.forEach((item) => {
|
|
const child = spawnSync(process.execPath, [
|
|
'--expose-gc',
|
|
item
|
|
], { stdio: 'inherit' });
|
|
if (child.signal) {
|
|
console.error(`Tests aborted with ${child.signal}`);
|
|
process.exitCode = 1;
|
|
} else {
|
|
process.exitCode = child.status;
|
|
}
|
|
if (child.status !== 0) {
|
|
process.exit(process.exitCode);
|
|
}
|
|
});
|