• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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