Skip to content

Commit 6027371

Browse files
authored
benchmark: add more options to cp-sync
PR-URL: nodejs#58278 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]>
1 parent cd68e35 commit 6027371

File tree

1 file changed

+38
-5
lines changed

1 file changed

+38
-5
lines changed

benchmark/fs/bench-cpSync.js

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,53 @@ const common = require('../common');
44
const fs = require('fs');
55
const path = require('path');
66
const tmpdir = require('../../test/common/tmpdir');
7-
tmpdir.refresh();
87

98
const bench = common.createBenchmark(main, {
109
n: [1, 100, 10_000],
10+
dereference: ['true', 'false'],
11+
force: ['true', 'false'],
1112
});
1213

13-
function main({ n }) {
14+
function prepareTestDirectory() {
15+
const testDir = tmpdir.resolve(`test-cp-${process.pid}`);
16+
fs.mkdirSync(testDir, { recursive: true });
17+
18+
fs.writeFileSync(path.join(testDir, 'source.txt'), 'test content');
19+
20+
fs.symlinkSync(
21+
path.join(testDir, 'source.txt'),
22+
path.join(testDir, 'link.txt'),
23+
);
24+
25+
return testDir;
26+
}
27+
28+
function main({ n, dereference, force }) {
1429
tmpdir.refresh();
15-
const options = { recursive: true };
16-
const src = path.join(__dirname, '../../test/fixtures/copy');
30+
31+
const src = prepareTestDirectory();
1732
const dest = tmpdir.resolve(`${process.pid}/subdir/cp-bench-${process.pid}`);
33+
34+
const options = {
35+
recursive: true,
36+
dereference: dereference === 'true',
37+
force: force === 'true',
38+
};
39+
40+
if (options.force) {
41+
fs.cpSync(src, dest, { recursive: true });
42+
}
43+
1844
bench.start();
1945
for (let i = 0; i < n; i++) {
20-
fs.cpSync(src, dest, options);
46+
if (options.force) {
47+
fs.cpSync(src, dest, options);
48+
} else {
49+
const uniqueDest = tmpdir.resolve(
50+
`${process.pid}/subdir/cp-bench-${process.pid}-${i}`,
51+
);
52+
fs.cpSync(src, uniqueDest, options);
53+
}
2154
}
2255
bench.end(n);
2356
}

0 commit comments

Comments
 (0)