'use strict'; const common = require('../common'); const fs = require('fs'); const assert = require('assert'); const tmpdir = require('../../test/common/tmpdir'); const bench = common.createBenchmark(main, { type: ['valid-string', 'valid-buffer', 'invalid'], n: [1e4], }); function main({ n, type }) { tmpdir.refresh(); const options = { encoding: 'utf8' }; let prefix; let out = true; switch (type) { case 'valid-string': prefix = tmpdir.resolve(`${Date.now()}`); break; case 'valid-buffer': prefix = Buffer.from(tmpdir.resolve(`${Date.now()}`)); break; case 'invalid': prefix = tmpdir.resolve('non-existent', 'foo', 'bar'); break; default: new Error('Invalid type'); } bench.start(); for (let i = 0; i < n; i++) { try { out = fs.mkdtempSync(prefix, options); } catch { // do nothing } } bench.end(n); assert.ok(out); }