test: enhance fs-watch-recursive test
authorSakthipriyan Vairamani <thechargingvolcano@gmail.com>
Fri, 28 Aug 2015 14:38:39 +0000 (20:08 +0530)
committerJames M Snell <jasnell@gmail.com>
Wed, 23 Dec 2015 16:38:33 +0000 (08:38 -0800)
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>
test/parallel/test-fs-watch-recursive.js [new file with mode: 0644]
test/sequential/test-fs-watch-recursive.js [deleted file]

diff --git a/test/parallel/test-fs-watch-recursive.js b/test/parallel/test-fs-watch-recursive.js
new file mode 100644 (file)
index 0000000..9c68b5e
--- /dev/null
@@ -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');
+});
diff --git a/test/sequential/test-fs-watch-recursive.js b/test/sequential/test-fs-watch-recursive.js
deleted file mode 100644 (file)
index 3e6e4b4..0000000
+++ /dev/null
@@ -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');
-}