Files
MapLibreParticleLab/test/storage/with-server.js
Wei Chen 42aea6f198 Enable C++ unit test on macOS CI (#674)
Co-authored-by: wei chen <wei.chen@grabtaxi.com>
Co-authored-by: Ovidiu Voda <ovi.voda@gmail.com>
Co-authored-by: Bart Louwers <bart@emeel.net>
2023-02-08 12:16:57 +01:00

35 lines
862 B
JavaScript

// This script runs a Node.js server passed to it while running aother program.
const { spawn } = require('child_process')
if (process.argv.length < 4) {
console.error("Usage: node with-server.js <path-to-server-js> <command-to-run> [arg]...");
process.exit(1);
}
const serverScript = process.argv[2];
const prog = process.argv[3];
const args = process.argv.slice(4);
const sameStdio = { stdio: [process.stdin, process.stdout, process.stderr] };
const server = spawn('node', [serverScript]);
server.stdout.on('data', (data) => {
const dataAsStr = data.toString();
if (dataAsStr === "OK") {
const test = spawn(prog, args, sameStdio);
test.on('close', (code) => {
console.error(`Sub process exited with code '${code}', killing server`);
server.kill();
process.exit(code);
});
return;
}
console.error(`[server] ${dataAsStr}`);
});