0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
nodejs/test/parallel/test-timers-non-integer-delay.js

31 lines
955 B
JavaScript
Raw Normal View History

'use strict';
require('../common');
/*
* This test makes sure that non-integer timer delays do not make the process
* hang. See https://github.com/joyent/node/issues/8065 and
* https://github.com/joyent/node/issues/8068 which have been fixed by
* https://github.com/joyent/node/pull/8073.
*
* If the process hangs, this test will make the tests suite timeout,
* otherwise it will exit very quickly (after 50 timers with a short delay
* fire).
*
* We have to set at least several timers with a non-integer delay to
* reproduce the issue. Sometimes, a timer with a non-integer delay will
* expire correctly. 50 timers has always been more than enough to reproduce
* it 100%.
*/
const TIMEOUT_DELAY = 1.1;
const NB_TIMEOUTS_FIRED = 50;
let nbTimeoutFired = 0;
const interval = setInterval(function() {
++nbTimeoutFired;
if (nbTimeoutFired === NB_TIMEOUTS_FIRED) {
clearInterval(interval);
process.exit(0);
}
}, TIMEOUT_DELAY);