Add hi test

This commit is contained in:
Jarred Sumner
2024-07-06 01:34:25 -07:00
parent 6ca649a88d
commit 1d1edf7cfc
3 changed files with 29 additions and 45 deletions

View File

@@ -1180,6 +1180,8 @@ if (secretTestFn) {
if (!options) {
options = {};
}
// Default delta is 20 MB.
const delta = options?.delta ?? 20;
options.label ??= label;
@@ -1200,6 +1202,10 @@ declare module "bun:test" {
minimumMilliseocnds?: number;
verbose?: boolean;
maxWarmup?: number;
/**
* Default delta is 20 MB.
*/
delta?: number;
}
interface Test {

View File

@@ -0,0 +1,17 @@
import { test, expect } from "bun:test";
test.leak(
"echo hi",
async () => {
await Bun.$`echo hi`.quiet();
},
{ delta: 5, repeatCount: 500 },
);
test.leak(
"echo hi text",
async () => {
await Bun.$`echo hi`.text();
},
{ delta: 5, repeatCount: 500 },
);

View File

@@ -50,54 +50,15 @@ const constructorArgs = [
},
},
],
];
] as const;
for (let i = 0; i < constructorArgs.length; i++) {
const args = constructorArgs[i];
test("new Request(test #" + i + ")", () => {
Bun.gc(true);
for (let i = 0; i < 1000; i++) {
new Request(...args);
}
Bun.gc(true);
const baseline = (process.memoryUsage.rss() / 1024 / 1024) | 0;
for (let i = 0; i < 2000; i++) {
for (let j = 0; j < 500; j++) {
new Request(...args);
}
Bun.gc();
}
Bun.gc(true);
const memory = (process.memoryUsage.rss() / 1024 / 1024) | 0;
const delta = Math.max(memory, baseline) - Math.min(baseline, memory);
console.log("RSS delta: ", delta, "MB");
expect(delta).toBeLessThan(30);
test.leak("new Request(test #" + i + ")", async () => {
new Request(...args);
});
test("request.clone(test #" + i + ")", () => {
Bun.gc(true);
for (let i = 0; i < 1000; i++) {
const request = new Request(...args);
request.clone();
}
Bun.gc(true);
const baseline = (process.memoryUsage.rss() / 1024 / 1024) | 0;
for (let i = 0; i < 2000; i++) {
for (let j = 0; j < 500; j++) {
const request = new Request(...args);
request.clone();
}
Bun.gc();
}
Bun.gc(true);
const memory = (process.memoryUsage.rss() / 1024 / 1024) | 0;
const delta = Math.max(memory, baseline) - Math.min(baseline, memory);
console.log("RSS delta: ", delta, "MB");
expect(delta).toBeLessThan(30);
test.leak("request.clone(test #" + i + ")", async () => {
const request = new Request(...args);
request.clone();
});
}