aboutsummaryrefslogtreecommitdiff
path: root/test/harness.ts
diff options
context:
space:
mode:
authorGravatar Ashcon Partovi <ashcon@partovi.net> 2023-03-07 12:22:34 -0800
committerGravatar GitHub <noreply@github.com> 2023-03-07 12:22:34 -0800
commitf7e4eb83694aa007a492ef66c28ffbe6a2dae791 (patch)
tree7af25aa5c42a2e1b2b47ba1df35f8caa9054cbeb /test/harness.ts
parent36275a44ce7a33587bd26aad120042ab95470ff3 (diff)
downloadbun-f7e4eb83694aa007a492ef66c28ffbe6a2dae791.tar.gz
bun-f7e4eb83694aa007a492ef66c28ffbe6a2dae791.tar.zst
bun-f7e4eb83694aa007a492ef66c28ffbe6a2dae791.zip
Reorganize tests (#2332)
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);
+ }
+}