node/test/parallel/test-process-really-exit.js
Benjamin Coe a6286e64c5
process: fix call process.reallyExit, vs., binding
Some user-land modules, e.g., nyc, mocha, currently rely on patching
process.reallyExit.

PR-URL: https://github.com/nodejs/node/pull/25655
Fixes: https://github.com/nodejs/node/issues/25650
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-01-23 10:19:17 -08:00

18 lines
544 B
JavaScript

'use strict';
require('../common');
const assert = require('assert');
// ensure that the reallyExit hook is executed.
// see: https://github.com/nodejs/node/issues/25650
if (process.argv[2] === 'subprocess') {
process.reallyExit = function() {
console.info('really exited');
};
process.exit();
} else {
const { spawnSync } = require('child_process');
const out = spawnSync(process.execPath, [__filename, 'subprocess']);
const observed = out.output[1].toString('utf8').trim();
assert.strictEqual(observed, 'really exited');
}