Files
bun.sh/test/js/bun/spawn/spawn-noread-leak.test.ts

25 lines
688 B
TypeScript

import { expect, test } from "bun:test";
async function spawn() {
const proc = Bun.spawn(["cat", import.meta.path], {
stdio: ["ignore", "ignore", "pipe"],
});
await proc.exited;
}
async function spawn100() {
return Promise.all(new Array(100).fill(0).map(v => spawn()));
}
test("does not leak", async () => {
const before = process.memoryUsage().rss;
console.log("before", (before / 1024 / 1024).toFixed(3), "MB");
for (let index = 0; index < 200; index++) {
await spawn100();
Bun.gc(true);
}
const after = process.memoryUsage().rss;
console.log("after", (after / 1024 / 1024).toFixed(3), "MB");
expect(before + after).toBeLessThan(before * 3);
}, 0);