diff options
Diffstat (limited to 'test/harness.ts')
-rw-r--r-- | test/harness.ts | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/harness.ts b/test/harness.ts new file mode 100644 index 000000000..486381cf2 --- /dev/null +++ b/test/harness.ts @@ -0,0 +1,37 @@ +export const bunEnv: any = { + ...process.env, + BUN_DEBUG_QUIET_LOGS: "1", + NO_COLOR: "1", + FORCE_COLOR: undefined, +}; + +export function bunExe() { + return process.execPath; +} + +export function gc(force: boolean = true) { + Bun.gc(force); +} + +// we must ensure that finalizers are run +// so that the reference-counting logic is exercised +export function gcTick(trace = false) { + trace && console.trace(""); + // console.trace("hello"); + gc(); + return new Promise(resolve => { + setTimeout(resolve, 0); + }); +} + +export function withoutAggressiveGC(block: () => unknown) { + if (!Bun.unsafe.gcAggressionLevel) return block(); + + const origGC = Bun.unsafe.gcAggressionLevel(); + Bun.unsafe.gcAggressionLevel(0); + try { + return block(); + } finally { + Bun.unsafe.gcAggressionLevel(origGC); + } +} |