Files
bun.sh/test/js/bun/util/inspect-error-leak.test.js
2024-09-03 21:32:52 -07:00

24 lines
655 B
JavaScript

import { expect, test } from "bun:test";
const perBatch = 2000;
const repeat = 50;
test("Printing errors does not leak", () => {
function batch() {
for (let i = 0; i < perBatch; i++) {
Bun.inspect(new Error("leak"));
}
Bun.gc(true);
}
batch();
const baseline = Math.floor(process.memoryUsage.rss() / 1024);
for (let i = 0; i < repeat; i++) {
batch();
}
const after = Math.floor(process.memoryUsage.rss() / 1024);
const diff = ((after - baseline) / 1024) | 0;
console.log(`RSS increased by ${diff} MB`);
expect(diff, `RSS grew by ${diff} MB after ${perBatch * repeat} iterations`).toBeLessThan(10);
}, 10_000);