0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-30 07:27:22 +01:00
nodejs/test/parallel/test-timers-immediate-queue.js
Rich Trott 082cc8d6d8 test: remove unnecessary assignments
common.js needs to be loaded in all tests so that there is checking
for variable leaks and possibly other things. However, it does not
need to be assigned to a variable if nothing in common.js is referred
to elsewhere in the test.

PR-URL: https://github.com/nodejs/node/pull/4408
Reviewed-By: James M Snell <jasnell@gmail.com>
2015-12-26 18:00:02 -08:00

36 lines
872 B
JavaScript

'use strict';
require('../common');
var assert = require('assert');
// setImmediate should run clear its queued cbs once per event loop turn
// but immediates queued while processing the current queue should happen
// on the next turn of the event loop.
// in v0.10 hit should be 1, because we only process one cb per turn
// in v0.11 and beyond it should be the exact same size of QUEUE
// if we're letting things recursively add to the immediate QUEUE hit will be
// > QUEUE
var ticked = false;
var hit = 0;
var QUEUE = 1000;
function run() {
if (hit === 0)
process.nextTick(function() { ticked = true; });
if (ticked) return;
hit += 1;
setImmediate(run);
}
for (var i = 0; i < QUEUE; i++)
setImmediate(run);
process.on('exit', function() {
console.log('hit', hit);
assert.strictEqual(hit, QUEUE, 'We ticked between the immediate queue');
});