mirror of
https://github.com/oven-sh/bun
synced 2026-02-14 04:49:06 +00:00
Add hi test
This commit is contained in:
@@ -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 {
|
||||
|
||||
17
test/js/bun/shell/echo-hi-leak-test.test.ts
Normal file
17
test/js/bun/shell/echo-hi-leak-test.test.ts
Normal 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 },
|
||||
);
|
||||
@@ -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();
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user