diff options
Diffstat (limited to 'test/bun.js/some-fs.js')
-rw-r--r-- | test/bun.js/some-fs.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/test/bun.js/some-fs.js b/test/bun.js/some-fs.js new file mode 100644 index 000000000..e6b31f162 --- /dev/null +++ b/test/bun.js/some-fs.js @@ -0,0 +1,51 @@ +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" + ); +} |