'use strict'; const common = require('../common'); const assert = require('assert'); const { spawn } = require('child_process'); for (const args of [[], ['-']]) { const child = spawn(process.execPath, args, { env: Object.assign({}, process.env, { NODE_DEBUG: process.argv[2] }) }); const wanted = `${child.pid}\n`; let found = ''; child.stdout.setEncoding('utf8'); child.stdout.on('data', function(c) { found += c; }); child.stderr.setEncoding('utf8'); child.stderr.on('data', function(c) { console.error(`> ${c.trim().split('\n').join('\n> ')}`); }); child.on('close', common.mustCall(function(c) { assert.strictEqual(c, 0); assert.strictEqual(found, wanted); })); setTimeout(function() { child.stdin.end('console.log(process.pid)'); }, 1); }