diff --git a/test/pummel/test-watch-file.js b/test/pummel/test-watch-file.js index 9bac9004835c59..bbbbf396d72227 100644 --- a/test/pummel/test-watch-file.js +++ b/test/pummel/test-watch-file.js @@ -34,8 +34,11 @@ fs.closeSync(fs.openSync(f, 'w')); let changes = 0; function watchFile() { fs.watchFile(f, (curr, prev) => { + // Make sure there is at least one watch event that shows a changed mtime. + if (curr.mtime <= prev.mtime) { + return; + } changes++; - assert.notDeepStrictEqual(curr.mtime, prev.mtime); fs.unwatchFile(f); watchFile(); fs.unwatchFile(f); @@ -44,10 +47,17 @@ function watchFile() { watchFile(); +function changeFile() { + const fd = fs.openSync(f, 'w+'); + fs.writeSync(fd, 'xyz\n'); + fs.closeSync(fd); +} -const fd = fs.openSync(f, 'w+'); -fs.writeSync(fd, 'xyz\n'); -fs.closeSync(fd); +changeFile(); +const interval = setInterval(changeFile, 1000); +// Use unref() here so fs.watchFile() watcher is the only thing keeping the +// event loop open. +interval.unref(); process.on('exit', function() { assert.ok(changes > 0);