Browse Source

test: fix flaky test-vm-sigint-existing-handler

Set the `SIGUSR2` handler before spawning the child process to make sure
the signal is always handled.

Ref: https://github.com/nodejs/node/pull/7854
Fixes: https://github.com/nodejs/node/issues/7981
PR-URL: https://github.com/nodejs/node/pull/7982
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
v7.x
Anna Henningsen 9 years ago
parent
commit
be73480eec
No known key found for this signature in database GPG Key ID: D8B9F5AEAE84E4CF
  1. 9
      test/parallel/test-vm-sigint-existing-handler.js
  2. 3
      test/parallel/test-vm-sigint.js

9
test/parallel/test-vm-sigint-existing-handler.js

@ -61,16 +61,19 @@ if (process.argv[2] === 'child') {
}
process.env.REPL_TEST_PPID = process.pid;
const child = spawn(process.execPath, [ __filename, 'child' ], {
stdio: [null, 'inherit', 'inherit']
});
// Set the `SIGUSR2` handler before spawning the child process to make sure
// the signal is always handled.
process.on('SIGUSR2', common.mustCall(() => {
// First kill() breaks the while(true) loop, second one invokes the real
// signal handlers.
process.kill(child.pid, 'SIGINT');
}, 3));
const child = spawn(process.execPath, [__filename, 'child'], {
stdio: [null, 'inherit', 'inherit']
});
child.on('close', function(code, signal) {
assert.strictEqual(signal, null);
assert.strictEqual(code, 0);

3
test/parallel/test-vm-sigint.js

@ -25,6 +25,9 @@ if (process.argv[2] === 'child') {
}
process.env.REPL_TEST_PPID = process.pid;
// Set the `SIGUSR2` handler before spawning the child process to make sure
// the signal is always handled.
process.on('SIGUSR2', common.mustCall(() => {
process.kill(child.pid, 'SIGINT');
}));

Loading…
Cancel
Save