in spec/TestingHelper.js [486:529]
static async _startNode(needLogging, idx = 1) {
TestingHelper.clearLogs(idx);
const runner = TestingHelper.getNodeRunner();
let nodeEnv = {};
for (const ev in process.env)
nodeEnv[ev] = process.env[ev];
if (config.debug) {
nodeEnv['JVM_OPTS'] = '-Djava.net.preferIPv4Stack=true -Xdebug -Xnoagent -Djava.compiler=NONE \
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=' + (5005 + idx);
}
const nodeCfg = TestingHelper.getConfigPath(needLogging, idx);
TestingHelper.logDebug('Trying to start node using following command: ' + runner + ' ' + nodeCfg);
const srv = child_process.spawn(runner, [nodeCfg], {env: nodeEnv});
srv.on('error', (error) => {
jasmine.fail('Failed to start node: ' + error);
throw 'Failed to start node: ' + error;
});
srv.stdout.on('data', (data) => {
if (config.nodeDebug)
console.log(data.toString());
});
srv.stderr.on('data', (data) => {
if (config.nodeDebug)
console.error(data.toString());
});
const started = await TestingHelper.waitForCondition(async () =>
TestingHelper.tryConnectClient(idx), 30000);
if (!started) {
await TestingHelper.killNodeAndWait(srv);
throw 'Failed to start Node: timeout while trying to connect';
}
return srv;
}