| 'use strict'; |
| |
| require('../common'); |
| const assert = require('assert'); |
| const { spawnSync } = require('child_process'); |
| |
| const node = process.execPath; |
| |
| // Test both sets of arguments that check syntax |
| const syntaxArgs = [ |
| '-c', |
| '--check' |
| ]; |
| |
| // Should not execute code piped from stdin with --check. |
| // Loop each possible option, `-c` or `--check`. |
| syntaxArgs.forEach(function(arg) { |
| const stdin = 'throw new Error("should not get run");'; |
| const c = spawnSync(node, [arg], { encoding: 'utf8', input: stdin }); |
| |
| // No stdout or stderr should be produced |
| assert.strictEqual(c.stdout, ''); |
| assert.strictEqual(c.stderr, ''); |
| |
| assert.strictEqual(c.status, 0); |
| }); |
| |
| // Check --input-type=module |
| syntaxArgs.forEach(function(arg) { |
| const stdin = 'export var p = 5; throw new Error("should not get run");'; |
| const c = spawnSync( |
| node, |
| ['--no-warnings', '--input-type=module', arg], |
| { encoding: 'utf8', input: stdin } |
| ); |
| |
| // No stdout or stderr should be produced |
| assert.strictEqual(c.stdout, ''); |
| assert.strictEqual(c.stderr, ''); |
| |
| assert.strictEqual(c.status, 0); |
| }); |