test: fix flaky timers-block-eventloop test
Due to extensive reliance on timings and the fs module, this test is currently inherently flaky. Refactor it to simply use setImmediate and only one busy loop. PR-URL: https://github.com/nodejs/node/pull/18567 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
parent
ef78a1e584
commit
6963a93d0e
@ -1,24 +1,18 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
const fs = require('fs');
|
||||
const platformTimeout = common.platformTimeout;
|
||||
const assert = require('assert');
|
||||
|
||||
let called = false;
|
||||
const t1 = setInterval(() => {
|
||||
common.busyLoop(platformTimeout(12));
|
||||
}, platformTimeout(10));
|
||||
|
||||
const t2 = setInterval(() => {
|
||||
common.busyLoop(platformTimeout(15));
|
||||
}, platformTimeout(10));
|
||||
|
||||
const t3 =
|
||||
setTimeout(common.mustNotCall('eventloop blocked!'), platformTimeout(200));
|
||||
|
||||
setTimeout(function() {
|
||||
fs.stat('/dev/nonexistent', () => {
|
||||
assert(!called);
|
||||
called = true;
|
||||
setImmediate(common.mustCall(() => {
|
||||
clearInterval(t1);
|
||||
clearInterval(t2);
|
||||
clearTimeout(t3);
|
||||
});
|
||||
}, platformTimeout(50));
|
||||
}));
|
||||
}, 10);
|
||||
|
||||
const t2 = setInterval(() => {
|
||||
common.busyLoop(20);
|
||||
}, 10);
|
||||
|
Loading…
x
Reference in New Issue
Block a user