diff options
author | Forrest L Norvell <forrest@npmjs.com> | 2014-10-15 08:50:01 +0400 |
---|---|---|
committer | Forrest L Norvell <forrest@npmjs.com> | 2014-10-15 08:50:01 +0400 |
commit | f096c250441b031d758f03afbe8d2321f94c7703 (patch) | |
tree | 02ca397998afab33ec8f47f47a47f699b638020c /node_modules | |
parent | 2620216da485e7c6740c74611f2491f728816517 (diff) |
graceful-fs@3.0.4
Add a bunch of additional tests, skip the unfortunate complications of
graceful-fs@3.0.3.
Diffstat (limited to 'node_modules')
-rw-r--r-- | node_modules/graceful-fs/package.json | 24 | ||||
-rw-r--r-- | node_modules/graceful-fs/test/max-open.js | 69 | ||||
-rw-r--r-- | node_modules/graceful-fs/test/readdir-sort.js | 1 | ||||
-rw-r--r-- | node_modules/graceful-fs/test/write-then-read.js | 45 |
4 files changed, 129 insertions, 10 deletions
diff --git a/node_modules/graceful-fs/package.json b/node_modules/graceful-fs/package.json index a77f90c7d..57ce64885 100644 --- a/node_modules/graceful-fs/package.json +++ b/node_modules/graceful-fs/package.json @@ -6,7 +6,7 @@ }, "name": "graceful-fs", "description": "A drop-in replacement for fs, making various improvements.", - "version": "3.0.2", + "version": "3.0.4", "repository": { "type": "git", "url": "git://github.com/isaacs/node-graceful-fs.git" @@ -38,15 +38,20 @@ "EACCESS" ], "license": "BSD", - "gitHead": "0caa11544c0c9001db78bf593cf0c5805d149a41", + "devDependencies": { + "mkdirp": "^0.5.0", + "rimraf": "^2.2.8", + "tap": "^0.4.13" + }, + "gitHead": "d3fd03247ccc4fa8a3eee399307fd266c70efb06", "bugs": { "url": "https://github.com/isaacs/node-graceful-fs/issues" }, "homepage": "https://github.com/isaacs/node-graceful-fs", - "_id": "graceful-fs@3.0.2", - "_shasum": "2cb5bf7f742bea8ad47c754caeee032b7e71a577", - "_from": "graceful-fs@~3.0.0", - "_npmVersion": "1.4.14", + "_id": "graceful-fs@3.0.4", + "_shasum": "a0306d9b0940e0fc512d33b5df1014e88e0637a3", + "_from": "graceful-fs@>=3.0.4 <4.0.0", + "_npmVersion": "1.4.28", "_npmUser": { "name": "isaacs", "email": "i@izs.me" @@ -58,8 +63,9 @@ } ], "dist": { - "shasum": "2cb5bf7f742bea8ad47c754caeee032b7e71a577", - "tarball": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" + "shasum": "a0306d9b0940e0fc512d33b5df1014e88e0637a3", + "tarball": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.4.tgz" }, - "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" + "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.4.tgz", + "readme": "ERROR: No README data found!" } diff --git a/node_modules/graceful-fs/test/max-open.js b/node_modules/graceful-fs/test/max-open.js new file mode 100644 index 000000000..44d52679b --- /dev/null +++ b/node_modules/graceful-fs/test/max-open.js @@ -0,0 +1,69 @@ +var test = require('tap').test +var fs = require('../') + +test('open lots of stuff', function (t) { + // Get around EBADF from libuv by making sure that stderr is opened + // Otherwise Darwin will refuse to give us a FD for stderr! + process.stderr.write('') + + // How many parallel open()'s to do + var n = 1024 + var opens = 0 + var fds = [] + var going = true + var closing = false + var doneCalled = 0 + + for (var i = 0; i < n; i++) { + go() + } + + function go() { + opens++ + fs.open(__filename, 'r', function (er, fd) { + if (er) throw er + fds.push(fd) + if (going) go() + }) + } + + // should hit ulimit pretty fast + setTimeout(function () { + going = false + t.equal(opens - fds.length, n) + done() + }, 100) + + + function done () { + if (closing) return + doneCalled++ + + if (fds.length === 0) { + //console.error('done called %d times', doneCalled) + // First because of the timeout + // Then to close the fd's opened afterwards + // Then this time, to complete. + // Might take multiple passes, depending on CPU speed + // and ulimit, but at least 3 in every case. + t.ok(doneCalled >= 3) + return t.end() + } + + closing = true + setTimeout(function () { + // console.error('do closing again') + closing = false + done() + }, 100) + + // console.error('closing time') + var closes = fds.slice(0) + fds.length = 0 + closes.forEach(function (fd) { + fs.close(fd, function (er) { + if (er) throw er + }) + }) + } +}) diff --git a/node_modules/graceful-fs/test/readdir-sort.js b/node_modules/graceful-fs/test/readdir-sort.js index fe005aa7a..cb63a6846 100644 --- a/node_modules/graceful-fs/test/readdir-sort.js +++ b/node_modules/graceful-fs/test/readdir-sort.js @@ -14,7 +14,6 @@ test("readdir reorder", function (t) { g.readdir("whatevers", function (er, files) { if (er) throw er - console.error(files) t.same(files, [ "a", "b", "z" ]) t.end() }) diff --git a/node_modules/graceful-fs/test/write-then-read.js b/node_modules/graceful-fs/test/write-then-read.js new file mode 100644 index 000000000..3a3db54b0 --- /dev/null +++ b/node_modules/graceful-fs/test/write-then-read.js @@ -0,0 +1,45 @@ +var fs = require('../'); +var rimraf = require('rimraf'); +var mkdirp = require('mkdirp'); +var test = require('tap').test; +var p = require('path').resolve(__dirname, 'files'); + +// Make sure to reserve the stderr fd +process.stderr.write(''); + +var num = 4097; +var paths = new Array(num); + +test('make files', function (t) { + rimraf.sync(p); + mkdirp.sync(p); + + for (var i = 0; i < num; ++i) { + paths[i] = 'files/file-' + i; + fs.writeFileSync(paths[i], 'content'); + } + + t.end(); +}) + +test('read files', function (t) { + // now read them + var done = 0; + for (var i = 0; i < num; ++i) { + fs.readFile(paths[i], function(err, data) { + if (err) + throw err; + + ++done; + if (done === num) { + t.pass('success'); + t.end() + } + }); + } +}); + +test('cleanup', function (t) { + rimraf.sync(p); + t.end(); +}); |