Skip to content

Commit dc8fff9

Browse files
joyeecheungUlisesGascon
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 <yagiz@nizipli.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
1 parent f37444e commit dc8fff9

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

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

+15-11
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
const v8 = require('v8');
11-
const assert = require('assert');
1211

1312
const before = process.memoryUsage.rss();
1413

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

19-
global.gc();
20-
21-
const after = process.memoryUsage.rss();
22-
23-
if (process.config.variables.asan) {
24-
assert(after < before * 10, `asan: before=${before} after=${after}`);
25-
} else if (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+
async function main() {
19+
await common.gcUntil('RSS should go down', () => {
20+
const after = process.memoryUsage.rss();
21+
if (process.config.variables.asan) {
22+
console.log(`asan: before=${before} after=${after}`);
23+
return after < before * 10;
24+
} else if (process.config.variables.node_builtin_modules_path) {
25+
console.log(`node_builtin_modules_path: before=${before} after=${after}`);
26+
return after < before * 10;
27+
}
28+
console.log(`before=${before} after=${after}`);
29+
return after < before * 10;
30+
});
2931
}
32+
33+
main();

0 commit comments

Comments
 (0)