Skip to content

Commit dee8cb5

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

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
constfs=require('fs');
55
constpath=require('path');
66
consttmpdir=require('../../test/common/tmpdir');
7-
tmpdir.refresh();
87

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

13-
functionmain({ n }){
14+
functionprepareTestDirectory(){
15+
consttestDir=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+
returntestDir;
26+
}
27+
28+
functionmain({ n, dereference, force }){
1429
tmpdir.refresh();
15-
constoptions={recursive: true};
16-
constsrc=path.join(__dirname,'../../test/fixtures/copy');
30+
31+
constsrc=prepareTestDirectory();
1732
constdest=tmpdir.resolve(`${process.pid}/subdir/cp-bench-${process.pid}`);
33+
34+
constoptions={
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(leti=0;i<n;i++){
20-
fs.cpSync(src,dest,options);
46+
if(options.force){
47+
fs.cpSync(src,dest,options);
48+
}else{
49+
constuniqueDest=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)