aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/some-fs.js
blob: c162ed45a5b10c0f961d01f5f72e9c90e50f2aea (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
const { mkdirSync, existsSync } = require("fs");

var performance = globalThis.performance;
if (!performance) {
  try {
    performance = require("perf_hooks").performance;
  } catch (e) {}
}

const count = parseInt(process.env.ITERATIONS || "1", 10) || 1;
var tempdir = `/tmp/some-fs-test/dir/${Date.now()}/hi`;

for (let i = 0; i < count; i++) {
  tempdir += `/${i.toString(36)}`;
}

if (existsSync(tempdir)) {
  throw new Error(`existsSync reports ${tempdir} exists, but it probably does not`);
}

var origTempDir = tempdir;
var iterations = new Array(count * count).fill("");
var total = 0;
for (let i = 0; i < count; i++) {
  for (let j = 0; j < count; j++) {
    iterations[total++] = `${origTempDir}/${j.toString(36)}-${i.toString(36)}`;
  }
}
tempdir = origTempDir;
mkdirSync(origTempDir, { recursive: true });
const recurse = { recursive: false };
const start = performance.now();
for (let i = 0; i < total; i++) {
  mkdirSync(iterations[i], recurse);
}

console.log("MKDIR " + total + " depth took:", performance.now() - start, "ms");

if (!existsSync(tempdir)) {
  throw new Error("Expected directory to exist after mkdirSync, but it doesn't");
}

if (mkdirSync(tempdir, { recursive: true })) {
  throw new Error("mkdirSync shouldn't return directory name on existing directories");
}