Skip to content

Commit 54286db

Browse files
refackMylesBorins
authored andcommitted
test,process: run 'abort' suite on Windows
Backport-PR-URL: #16442 PR-URL: #15056 Fixes: #14012 Refs: #14013 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
1 parent 3293a0c commit 54286db

File tree

3 files changed

+25
-20
lines changed

3 files changed

+25
-20
lines changed

test/abort/test-abort-uncaught-exception.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ function run(flags, signals) {
2121
child.on('exit', common.mustCall(function(code, sig) {
2222
if (common.isWindows) {
2323
if (signals)
24-
assert.strictEqual(code, 3);
24+
assert.strictEqual(code, 0xC0000005);
2525
else
2626
assert.strictEqual(code, 1);
2727
} else {
+22-17
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,33 @@
11
'use strict';
22
const common = require('../common');
33
const assert = require('assert');
4-
const http = require('http');
5-
const spawn = require('child_process').spawn;
4+
const { createServer, get } = require('http');
5+
const { spawn } = require('child_process');
66

77
if (process.argv[2] === 'child') {
8-
const server = http.createServer(common.mustCall((req, res) => {
9-
res.end('hello');
10-
}));
11-
8+
// sub-process
9+
const server = createServer(common.mustCall((_, res) => res.end('h')));
1210
server.listen(0, common.mustCall((s) => {
13-
const rr = http.get(
14-
{ port: server.address().port },
15-
common.mustCall((d) => {
16-
// This bad input (0) should abort the parser and the process
17-
rr.parser.consume(0);
18-
server.close();
19-
}));
11+
const rr = get({ port: server.address().port }, common.mustCall(() => {
12+
// This bad input (0) should abort the parser and the process
13+
rr.parser.consume(0);
14+
// This line should be unreachanble.
15+
assert.fail('this should be unreachable');
16+
}));
2017
}));
2118
} else {
22-
const child = spawn(process.execPath, [__filename, 'child'],
23-
{ stdio: 'inherit' });
19+
// super-proces
20+
const child = spawn(process.execPath, [__filename, 'child']);
21+
child.stdout.on('data', common.mustNotCall());
22+
23+
let stderr = '';
24+
child.stderr.on('data', common.mustCallAtLeast((data) => {
25+
assert(Buffer.isBuffer(data));
26+
stderr += data.toString('utf8');
27+
}, 1));
2428
child.on('exit', common.mustCall((code, signal) => {
25-
assert(common.nodeProcessAborted(code, signal),
26-
'process should have aborted, but did not');
29+
assert(stderr.includes('failed'), `stderr: ${stderr}`);
30+
const didAbort = common.nodeProcessAborted(code, signal);
31+
assert(didAbort, `process did not abort, code:${code} signal:${signal}`);
2732
}));
2833
}

vcbuild.bat

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ if /i "%1"=="nosnapshot" set nosnapshot=1&goto arg-ok
5858
if /i "%1"=="noetw" set noetw=1&goto arg-ok
5959
if /i "%1"=="noperfctr" set noperfctr=1&goto arg-ok
6060
if /i "%1"=="licensertf" set licensertf=1&goto arg-ok
61-
if /i "%1"=="test" set test_args=%test_args% doctool known_issues message parallel sequential addons -J&set lint_cpp=1&set lint_js=1&set build_addons=1&goto arg-ok
62-
if /i "%1"=="test-ci" set test_args=%test_args% %test_ci_args% -p tap --logfile test.tap doctool inspector known_issues message sequential parallel addons&set cctest_args=%cctest_args% --gtest_output=tap:cctest.tap&set build_addons=1&goto arg-ok
61+
if /i "%1"=="test" set test_args=%test_args% abort doctool known_issues message parallel sequential addons -J&set lint_cpp=1&set lint_js=1&set build_addons=1&goto arg-ok
62+
if /i "%1"=="test-ci" set test_args=%test_args% %test_ci_args% -p tap --logfile test.tap abort doctool inspector known_issues message sequential parallel addons&set cctest_args=%cctest_args% --gtest_output=tap:cctest.tap&set build_addons=1&goto arg-ok
6363
if /i "%1"=="test-addons" set test_args=%test_args% addons&set build_addons=1&goto arg-ok
6464
if /i "%1"=="test-simple" set test_args=%test_args% sequential parallel -J&goto arg-ok
6565
if /i "%1"=="test-message" set test_args=%test_args% message&goto arg-ok

0 commit comments

Comments
 (0)