mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
80ebb4282d
Raising SIGABRT is handled in the CRT in windows, calling _exit() with ambiguous code "3" by default. This adjustment to the abort behavior gives a more sane exit code on abort, by calling _exit directly with code 134. PR-URL: https://github.com/nodejs/node/pull/13947 Fixes: https://github.com/nodejs/node/issues/12271 Refs: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/abort Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Timothy Gu <timothygu99@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
23 lines
631 B
JavaScript
23 lines
631 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
if (!common.isWindows)
|
|
common.skip('test is windows specific');
|
|
|
|
const assert = require('assert');
|
|
const spawn = require('child_process').spawn;
|
|
|
|
// This test makes sure that an aborted node process
|
|
// exits with code 3 on Windows.
|
|
// Spawn a child, force an abort, and then check the
|
|
// exit code in the parent.
|
|
|
|
if (process.argv[2] === 'child') {
|
|
process.abort();
|
|
} else {
|
|
const child = spawn(process.execPath, [__filename, 'child']);
|
|
child.on('exit', common.mustCall((code, signal) => {
|
|
assert.strictEqual(code, 134);
|
|
assert.strictEqual(signal, null);
|
|
}));
|
|
}
|