mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
test: use checkIfCollectableByCounting in SourceTextModule leak test
...which may be more reliable than than checkIfCollectable(). PR-URL: https://github.com/nodejs/node/pull/51512 Refs: https://github.com/nodejs/node/pull/51362 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>
This commit is contained in:
@@ -1,21 +1,24 @@
|
||||
// Flags: --experimental-vm-modules --max-old-space-size=16 --trace-gc
|
||||
// Flags: --expose-internals --experimental-vm-modules --max-old-space-size=16 --trace-gc
|
||||
'use strict';
|
||||
|
||||
// This tests that vm.SourceTextModule() does not leak.
|
||||
// See: https://github.com/nodejs/node/issues/33439
|
||||
require('../common');
|
||||
const { checkIfCollectable } = require('../common/gc');
|
||||
const common = require('../common');
|
||||
const { checkIfCollectableByCounting } = require('../common/gc');
|
||||
const vm = require('vm');
|
||||
|
||||
async function createSourceTextModule() {
|
||||
// Try to reach the maximum old space size.
|
||||
const m = new vm.SourceTextModule(`
|
||||
const bar = new Array(512).fill("----");
|
||||
export { bar };
|
||||
`);
|
||||
await m.link(() => {});
|
||||
await m.evaluate();
|
||||
return m;
|
||||
}
|
||||
const outer = 32;
|
||||
const inner = 128;
|
||||
|
||||
checkIfCollectable(createSourceTextModule, 4096, 1024);
|
||||
checkIfCollectableByCounting(async (i) => {
|
||||
for (let j = 0; j < inner; j++) {
|
||||
// Try to reach the maximum old space size.
|
||||
const m = new vm.SourceTextModule(`
|
||||
const bar = new Array(512).fill("----");
|
||||
export { bar };
|
||||
`);
|
||||
await m.link(() => {});
|
||||
await m.evaluate();
|
||||
}
|
||||
return inner;
|
||||
}, vm.SourceTextModule, outer).then(common.mustCall());
|
||||
|
||||
Reference in New Issue
Block a user