Skip to content

Commit e18de80

Browse files
joyeecheungtargos
authored andcommitted
test: use gcUntil() in test-v8-serialize-leak
Previously this can be flaky because the there could be a delay of the deallocation after gc() is invoked. Use gcUntil() to run the GC multiple times to make the test more robust. PR-URL: #49168 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
1 parent bd17f0b commit e18de80

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

‎test/parallel/test-v8-serialize-leak.js‎

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,26 @@ if (common.isIBMi)
88
common.skip('On IBMi, the rss memory always returns zero');
99

1010
constv8=require('v8');
11-
constassert=require('assert');
1211

1312
constbefore=process.memoryUsage.rss();
1413

1514
for(leti=0;i<1000000;i++){
1615
v8.serialize('');
1716
}
1817

19-
global.gc();
20-
21-
constafter=process.memoryUsage.rss();
22-
23-
if(process.config.variables.asan){
24-
assert(after<before*10,`asan: before=${before} after=${after}`);
25-
}elseif(process.config.variables.node_builtin_modules_path){
26-
assert(after<before*4,`node_builtin_modules_path: before=${before} after=${after}`);
27-
}else{
28-
assert(after<before*2,`before=${before} after=${after}`);
18+
asyncfunctionmain(){
19+
awaitcommon.gcUntil('RSS should go down',()=>{
20+
constafter=process.memoryUsage.rss();
21+
if(process.config.variables.asan){
22+
console.log(`asan: before=${before} after=${after}`);
23+
returnafter<before*10;
24+
}elseif(process.config.variables.node_builtin_modules_path){
25+
console.log(`node_builtin_modules_path: before=${before} after=${after}`);
26+
returnafter<before*10;
27+
}
28+
console.log(`before=${before} after=${after}`);
29+
returnafter<before*10;
30+
});
2931
}
32+
33+
main();

0 commit comments

Comments
(0)