Files
bun.sh/test/js/node/vm/sourcetextmodule-leak.test.ts
Kai Tamkun 579f2ecd51 Add node:vm leak tests (#19947)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-05-28 22:23:30 -07:00

31 lines
878 B
TypeScript

const vm = require("vm");
const { describe, it, expect } = require("bun:test");
describe("vm.SourceTextModule", () => {
it("shouldn't leak memory", async () => {
const initialUsage = process.memoryUsage.rss();
{
const source = `/*\n${Buffer.alloc(50_000, " * aaaaa\n").toString("utf8")}\n*/ Buffer.alloc(10, 'hello');`;
async function go(i) {
const mod = new vm.SourceTextModule(source + "//" + i, {
identifier: Buffer.alloc(64, i.toString()).toString("utf8"),
});
await mod.link(() => {});
await mod.evaluate();
}
for (let i = 0; i < 50_000; ++i) {
await go(i);
}
}
Bun.gc(true);
const finalUsage = process.memoryUsage.rss();
const megabytes = Math.round(((finalUsage - initialUsage) / 1024 / 1024) * 100) / 100;
expect(megabytes).toBeLessThan(3000);
});
});