aboutsummaryrefslogtreecommitdiff
path: root/test/parallel/test-fs-watch-recursive.js
diff options
context:
space:
mode:
authorSakthipriyan Vairamani <thechargingvolcano@gmail.com>2015-08-28 20:08:39 +0530
committerJames M Snell <jasnell@gmail.com>2015-11-10 08:07:41 -0800
commita28b938895ed0c623e27fe6917dac61123a5f016 (patch)
tree3ed0b5c2648b8a467dac22f4b2d06aca6ad4ac49 /test/parallel/test-fs-watch-recursive.js
parent9aee2c0e26a493337ddccb94a2ce891e58c3547b (diff)
downloadandroid-node-v8-a28b938895ed0c623e27fe6917dac61123a5f016.tar.gz
android-node-v8-a28b938895ed0c623e27fe6917dac61123a5f016.tar.bz2
android-node-v8-a28b938895ed0c623e27fe6917dac61123a5f016.zip
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>
Diffstat (limited to 'test/parallel/test-fs-watch-recursive.js')
-rw-r--r--test/parallel/test-fs-watch-recursive.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/parallel/test-fs-watch-recursive.js b/test/parallel/test-fs-watch-recursive.js
new file mode 100644
index 0000000000..9c68b5e355
--- /dev/null
+++ b/test/parallel/test-fs-watch-recursive.js
@@ -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');
+});