mirror of https://github.com/lukechilds/node.git
Browse Source
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>process-exit-stdio-flushing
Sakthipriyan Vairamani
9 years ago
committed by
James M Snell
2 changed files with 43 additions and 51 deletions
@ -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'); |
|
||||
} |
|
Loading…
Reference in new issue