mirror of
https://github.com/nodejs/node.git
synced 2026-10-14 10:26:26 -04:00
test: enhance fs-watch-recursive test
This patch - issues a TAP plugin parsable message on non darwin/windows boxes - uses `const` wherever applicable - moves the test to parallel PR-URL: https://github.com/nodejs/node/pull/2599 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Johan Bergström <bugs@bergstroem.nu> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
1 parent
9aee2c0e26
commit
a28b938895
2 files changed
+43
-51
No files matched your search
@@ -0,0 +1,43 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
|
||||
if (!(process.platform === 'darwin' || common.isWindows)) {
|
||||
console.log('1..0 # Skipped: recursive option is darwin/windows specific');
|
||||
return;
|
||||
}
|
||||
|
||||
const assert = require('assert');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
const testDir = common.tmpDir;
|
||||
const filenameOne = 'watch.txt';
|
||||
const testsubdirName = 'testsubdir';
|
||||
const testsubdir = path.join(testDir, testsubdirName);
|
||||
const relativePathOne = path.join('testsubdir', filenameOne);
|
||||
const filepathOne = path.join(testsubdir, filenameOne);
|
||||
|
||||
common.refreshTmpDir();
|
||||
|
||||
fs.mkdirSync(testsubdir, 0o700);
|
||||
|
||||
const watcher = fs.watch(testDir, {recursive: true});
|
||||
|
||||
var watcherClosed = false;
|
||||
watcher.on('change', function(event, filename) {
|
||||
assert.ok('change' === event || 'rename' === event);
|
||||
|
||||
// Ignore stale events generated by mkdir and other tests
|
||||
if (filename !== relativePathOne)
|
||||
return;
|
||||
|
||||
watcher.close();
|
||||
watcherClosed = true;
|
||||
});
|
||||
|
||||
fs.writeFileSync(filepathOne, 'world');
|
||||
|
||||
process.on('exit', function() {
|
||||
assert(watcherClosed, 'watcher Object was not closed');
|
||||
});
|
||||
@@ -1,51 +0,0 @@
|
||||
'use strict';
|
||||
var common = require('../common');
|
||||
var assert = require('assert');
|
||||
var path = require('path');
|
||||
var fs = require('fs');
|
||||
|
||||
if (process.platform === 'darwin' || common.isWindows) {
|
||||
var watchSeenOne = 0;
|
||||
|
||||
var testDir = common.tmpDir;
|
||||
|
||||
var filenameOne = 'watch.txt';
|
||||
var testsubdirName = 'testsubdir';
|
||||
var testsubdir = path.join(testDir, testsubdirName);
|
||||
var relativePathOne = path.join('testsubdir', filenameOne);
|
||||
var filepathOne = path.join(testsubdir, filenameOne);
|
||||
|
||||
common.refreshTmpDir();
|
||||
|
||||
process.on('exit', function() {
|
||||
assert.ok(watchSeenOne > 0);
|
||||
});
|
||||
|
||||
function cleanup() {
|
||||
try { fs.unlinkSync(filepathOne); } catch (e) { }
|
||||
try { fs.rmdirSync(testsubdir); } catch (e) { }
|
||||
};
|
||||
|
||||
try { fs.mkdirSync(testsubdir, 0o700); } catch (e) {}
|
||||
|
||||
assert.doesNotThrow(function() {
|
||||
var watcher = fs.watch(testDir, {recursive: true});
|
||||
watcher.on('change', function(event, filename) {
|
||||
assert.ok('change' === event || 'rename' === event);
|
||||
|
||||
// Ignore stale events generated by mkdir and other tests
|
||||
if (filename !== relativePathOne)
|
||||
return;
|
||||
|
||||
watcher.close();
|
||||
cleanup();
|
||||
++watchSeenOne;
|
||||
});
|
||||
});
|
||||
|
||||
setTimeout(function() {
|
||||
fs.writeFileSync(filepathOne, 'world');
|
||||
}, 10);
|
||||
} else {
|
||||
console.log('1..0 # Skipped: recursive option is darwin/windows specific');
|
||||
}
|
||||
Reference in new issue
Block a user