race.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. var mkdirp = require('../').mkdirp;
  2. var path = require('path');
  3. var fs = require('fs');
  4. var exists = fs.exists || path.exists;
  5. var test = require('tap').test;
  6. test('race', function (t) {
  7. t.plan(6);
  8. var ps = [ '', 'tmp' ];
  9. for (var i = 0; i < 25; i++) {
  10. var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
  11. ps.push(dir);
  12. }
  13. var file = ps.join('/');
  14. var res = 2;
  15. mk(file, function () {
  16. if (--res === 0) t.end();
  17. });
  18. mk(file, function () {
  19. if (--res === 0) t.end();
  20. });
  21. function mk (file, cb) {
  22. mkdirp(file, 0755, function (err) {
  23. t.ifError(err);
  24. exists(file, function (ex) {
  25. t.ok(ex, 'file created');
  26. fs.stat(file, function (err, stat) {
  27. t.ifError(err);
  28. t.equal(stat.mode & 0777, 0755);
  29. t.ok(stat.isDirectory(), 'target not a directory');
  30. if (cb) cb();
  31. });
  32. })
  33. });
  34. }
  35. });