aboutsummaryrefslogtreecommitdiff
path: root/node_modules/mkdirp/test/race.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2016-10-10 03:43:44 +0200
committerFlorian Dold <florian.dold@gmail.com>2016-10-10 03:43:44 +0200
commitabd94a7f5a50f43c797a11b53549ae48fff667c3 (patch)
treeab8ed457f65cdd72e13e0571d2975729428f1551 /node_modules/mkdirp/test/race.js
parenta0247c6a3fd6a09a41a7e35a3441324c4dcb58be (diff)
add node_modules to address #4364
Diffstat (limited to 'node_modules/mkdirp/test/race.js')
-rw-r--r--node_modules/mkdirp/test/race.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/node_modules/mkdirp/test/race.js b/node_modules/mkdirp/test/race.js
new file mode 100644
index 000000000..b0b9e183c
--- /dev/null
+++ b/node_modules/mkdirp/test/race.js
@@ -0,0 +1,37 @@
+var mkdirp = require('../').mkdirp;
+var path = require('path');
+var fs = require('fs');
+var exists = fs.exists || path.exists;
+var test = require('tap').test;
+var _0777 = parseInt('0777', 8);
+var _0755 = parseInt('0755', 8);
+
+test('race', function (t) {
+ t.plan(10);
+ var ps = [ '', 'tmp' ];
+
+ for (var i = 0; i < 25; i++) {
+ var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
+ ps.push(dir);
+ }
+ var file = ps.join('/');
+
+ var res = 2;
+ mk(file);
+
+ mk(file);
+
+ function mk (file, cb) {
+ mkdirp(file, _0755, function (err) {
+ t.ifError(err);
+ exists(file, function (ex) {
+ t.ok(ex, 'file created');
+ fs.stat(file, function (err, stat) {
+ t.ifError(err);
+ t.equal(stat.mode & _0777, _0755);
+ t.ok(stat.isDirectory(), 'target not a directory');
+ });
+ })
+ });
+ }
+});