test: fix unreliable async-hooks/test-signalwrap
Use an interval to keep the event loop open so the test does not exit before receiving all signals fom asynchronous `exec()` calls. PR-URL: https://github.com/nodejs/node/pull/17827 Fixes: https://github.com/nodejs/node/issues/14070 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
This commit is contained in:
parent
81c2b59609
commit
457ceebabf
@ -1,7 +1,8 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
|
||||
if (common.isWindows) return common.skip('no signals in Windows');
|
||||
if (common.isWindows)
|
||||
common.skip('no signals in Windows');
|
||||
|
||||
const assert = require('assert');
|
||||
const initHooks = require('./init-hooks');
|
||||
@ -11,6 +12,10 @@ const exec = require('child_process').exec;
|
||||
const hooks = initHooks();
|
||||
|
||||
hooks.enable();
|
||||
|
||||
// Keep the event loop open so process doesn't exit before receiving signals.
|
||||
const interval = setInterval(() => {}, 9999);
|
||||
|
||||
process.on('SIGUSR2', common.mustCall(onsigusr2, 2));
|
||||
|
||||
const as = hooks.activitiesOfTypes('SIGNALWRAP');
|
||||
@ -66,6 +71,7 @@ function onsigusr2() {
|
||||
}
|
||||
|
||||
function onsigusr2Again() {
|
||||
clearInterval(interval);
|
||||
setImmediate(() => {
|
||||
checkInvocations(
|
||||
signal1, { init: 1, before: 2, after: 2, destroy: 1 },
|
||||
|
Loading…
x
Reference in New Issue
Block a user