mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 21:19:50 +01:00
7430638df8
Signed-off-by: Matteo Collina <hello@matteocollina.com> PR-URL: https://github.com/nodejs/node/pull/53452 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
34 lines
980 B
JavaScript
34 lines
980 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
|
|
if (!common.isLinux)
|
|
common.skip('This test can run only on Linux');
|
|
|
|
// Test that the watcher do not crash if the file "disappears" while
|
|
// watch is being set up.
|
|
|
|
const path = require('node:path');
|
|
const fs = require('node:fs');
|
|
const { spawn } = require('node:child_process');
|
|
|
|
const tmpdir = require('../common/tmpdir');
|
|
const testDir = tmpdir.path;
|
|
tmpdir.refresh();
|
|
|
|
const watcher = fs.watch(testDir, { recursive: true });
|
|
watcher.on('change', function(event, filename) {
|
|
// This console.log makes the error happen
|
|
// do not remove
|
|
console.log(filename, event);
|
|
});
|
|
|
|
const testFile = path.join(testDir, 'a');
|
|
const child = spawn(process.argv[0], ['-e', `const fs = require('node:fs'); for (let i = 0; i < 10000; i++) { const fd = fs.openSync('${testFile}', 'w'); fs.writeSync(fd, Buffer.from('hello')); fs.rmSync('${testFile}') }`], {
|
|
stdio: 'inherit'
|
|
});
|
|
|
|
child.on('exit', function() {
|
|
watcher.close();
|
|
});
|