mirror of
https://github.com/nodejs/node.git
synced 2024-11-30 23:43:09 +01:00
f29762f4dd
Enable linting for the test directory. A number of changes was made so all tests conform the current rules used by lib and src directories. The only exception for tests is that unreachable (dead) code is allowed. test-fs-non-number-arguments-throw had to be excluded from the changes because of a weird issue on Windows CI. PR-URL: https://github.com/nodejs/io.js/pull/1721 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
45 lines
935 B
JavaScript
45 lines
935 B
JavaScript
'use strict';
|
|
var common = require('../common');
|
|
var assert = require('assert');
|
|
|
|
// this is the inverse of test-next-tick-starvation.
|
|
// it verifies that process.nextTick will *always* come before other
|
|
// events, up to the limit of the process.maxTickDepth value.
|
|
|
|
// WARNING: unsafe!
|
|
process.maxTickDepth = Infinity;
|
|
|
|
var ran = false;
|
|
var starved = false;
|
|
var start = +new Date();
|
|
var timerRan = false;
|
|
|
|
function spin() {
|
|
ran = true;
|
|
var now = +new Date();
|
|
if (now - start > 100) {
|
|
console.log('The timer is starving, just as we planned.');
|
|
starved = true;
|
|
|
|
// now let it out.
|
|
return;
|
|
}
|
|
|
|
process.nextTick(spin);
|
|
}
|
|
|
|
function onTimeout() {
|
|
if (!starved) throw new Error('The timer escaped!');
|
|
console.log('The timer ran once the ban was lifted');
|
|
timerRan = true;
|
|
}
|
|
|
|
spin();
|
|
setTimeout(onTimeout, 50);
|
|
|
|
process.on('exit', function() {
|
|
assert.ok(ran);
|
|
assert.ok(starved);
|
|
assert.ok(timerRan);
|
|
});
|