aboutsummaryrefslogtreecommitdiff
path: root/test/harness.ts
diff options
context:
space:
mode:
Diffstat (limited to 'test/harness.ts')
-rw-r--r--test/harness.ts37
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);
+ }
+}