1'use strict'; 2const common = require('../common'); 3const fixtures = require('../common/fixtures'); 4const assert = require('assert'); 5const child_process = require('child_process'); 6const path = require('path'); 7 8common.allowGlobals(global.require); 9common.allowGlobals(global.embedVars); 10let binary = `out/${common.buildType}/embedtest`; 11if (common.isWindows) { 12 binary += '.exe'; 13} 14binary = path.resolve(__dirname, '..', '..', binary); 15 16assert.strictEqual( 17 child_process.spawnSync(binary, ['console.log(42)']) 18 .stdout.toString().trim(), 19 '42'); 20 21assert.strictEqual( 22 child_process.spawnSync(binary, ['console.log(embedVars.nön_ascıı)']) 23 .stdout.toString().trim(), 24 '��️��'); 25 26assert.strictEqual( 27 child_process.spawnSync(binary, ['console.log(42)']) 28 .stdout.toString().trim(), 29 '42'); 30 31assert.strictEqual( 32 child_process.spawnSync(binary, ['throw new Error()']).status, 33 1); 34 35assert.strictEqual( 36 child_process.spawnSync(binary, ['process.exitCode = 8']).status, 37 8); 38 39 40const fixturePath = JSON.stringify(fixtures.path('exit.js')); 41assert.strictEqual( 42 child_process.spawnSync(binary, [`require(${fixturePath})`, 92]).status, 43 92); 44