GeezerVison is showing github.com — src: throw when -c and -e are used simultaneously · nodejs/node@a5f91ab
File treeExpand file treeCollapse file tree Open diff view settings Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: src/node.cc +6Lines changed: 6 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -3816,6 +3816,12 @@ static void ParseArgs(int* argc, | 3816 | 3816 | } | 3817 | 3817 | #endif | 3818 | 3818 |
| | 3819 | + if (eval_string != nullptr && syntax_check_only) { | | 3820 | + fprintf(stderr, | | 3821 | + "%s: either --check or --eval can be used, not both\n", argv[0]); | | 3822 | + exit(9); | | 3823 | + } | | 3824 | + | 3819 | 3825 | // Copy remaining arguments. | 3820 | 3826 | const unsigned int args_left = nargs - index; | 3821 | 3827 | memcpy(new_argv + new_argc, argv + index, args_left * sizeof(*argv)); | |
Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-cli-syntax.js +16-1Lines changed: 16 additions & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
@@ -99,7 +99,7 @@ syntaxArgs.forEach(function(args) { | 99 | 99 | assert.strictEqual(c.status, 0, 'code === ' + c.status); | 100 | 100 | }); | 101 | 101 |
| 102 | | -// should should throw if code piped from stdin with --check has bad syntax | | 102 | +// should throw if code piped from stdin with --check has bad syntax | 103 | 103 | // loop each possible option, `-c` or `--check` | 104 | 104 | syntaxArgs.forEach(function(args) { | 105 | 105 | const stdin = 'var foo bar;'; | @@ -117,3 +117,18 @@ syntaxArgs.forEach(function(args) { | 117 | 117 |
| 118 | 118 | assert.strictEqual(c.status, 1, 'code === ' + c.status); | 119 | 119 | }); | | 120 | + | | 121 | +// should throw if -c and -e flags are both passed | | 122 | +['-c', '--check'].forEach(function(checkFlag) { | | 123 | + ['-e', '--eval'].forEach(function(evalFlag) { | | 124 | + const args = [checkFlag, evalFlag, 'foo']; | | 125 | + const c = spawnSync(node, args, {encoding: 'utf8'}); | | 126 | + | | 127 | + assert.strictEqual( | | 128 | + c.stderr, | | 129 | + `${node}: either --check or --eval can be used, not both\n` | | 130 | + ); | | 131 | + | | 132 | + assert.strictEqual(c.status, 9, 'code === ' + c.status); | | 133 | + }); | | 134 | +}); |
|