wepoll/tools/run-tests.js
2018-01-05 18:03:39 +01:00

42 lines
1.0 KiB
JavaScript

const spawn = require('child_process').spawn;
const basename = require('path').basename;
const test_exes = process.argv.slice(2);
run_tests(test_exes);
function run_tests(test_exes, num = 0, fail_count = 0) {
if (test_exes.length <= num)
return done(test_exes, fail_count);
const test_exe = test_exes[num];
const test_name = basename(test_exe, '.exe');
console.log('(%d/%d) %s...', (num + 1), test_exes.length, test_name);
const child = spawn(test_exe, [], { encoding: 'utf8' });
let out = '';
child.stdout.on('data', (data) => out += data);
child.stderr.on('data', (data) => out += data);
child.on('exit', (code) => {
if (code === 0) {
console.log(' PASS');
} else {
console.log(' FAIL\n' + out);
fail_count++;
}
run_tests(test_exes, num + 1, fail_count);
});
}
function done(test_exes, fail_count) {
const pass_count = test_exes.length - fail_count;
console.log(' DONE - %d PASSED, %d FAILED', pass_count, fail_count);
process.exit(fail_count == 0 ? 0 : 1);
}