0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
nodejs/test/parallel/test-timers-unref-active-unenrolled-disposed.js
Jeremiah Senkpiel 65cd2a0f96 test: increase timeouts on some unref timers tests
Fix: https://github.com/nodejs/node/issues/5351
Refs: https://github.com/nodejs/node/pull/4561
PR-URL: https://github.com/nodejs/node/pull/5352

Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
2016-02-22 12:14:58 -05:00

47 lines
1.2 KiB
JavaScript

'use strict';
// https://github.com/nodejs/node/pull/2540/files#r38231197
const common = require('../common');
const timers = require('timers');
const assert = require('assert');
const domain = require('domain');
// Crazy stuff to keep the process open,
// then close it when we are actually done.
const TEST_DURATION = common.platformTimeout(1000);
const keepOpen = setTimeout(function() {
throw new Error('Test timed out. keepOpen was not canceled.');
}, TEST_DURATION);
const endTest = makeTimer(2);
const someTimer = makeTimer(1);
someTimer.domain = domain.create();
someTimer.domain.dispose();
someTimer._onTimeout = function() {
throw new Error('someTimer was not supposed to fire!');
};
endTest._onTimeout = common.mustCall(function() {
assert.strictEqual(someTimer._idlePrev, null);
assert.strictEqual(someTimer._idleNext, null);
clearTimeout(keepOpen);
});
const cancelsTimer = makeTimer(1);
cancelsTimer._onTimeout = common.mustCall(function() {
someTimer._idleTimeout = 0;
});
timers._unrefActive(cancelsTimer);
timers._unrefActive(someTimer);
timers._unrefActive(endTest);
function makeTimer(msecs) {
const timer = {};
timers.unenroll(timer);
timers.enroll(timer, msecs);
return timer;
}