static async _startNode()

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;
    }