diff --git a/package.json b/package.json index 4ac978a..01d35f1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "qmd": "./qmd" }, "scripts": { - "test": "bun test", + "test": "bun test --preload ./src/test-preload.ts", "qmd": "bun src/qmd.ts", "index": "bun src/qmd.ts index", "vector": "bun src/qmd.ts vector", diff --git a/src/test-preload.ts b/src/test-preload.ts new file mode 100644 index 0000000..afbd81f --- /dev/null +++ b/src/test-preload.ts @@ -0,0 +1,13 @@ +/** + * Test preload file to ensure proper cleanup of native resources. + * + * Uses bun:test afterAll to properly dispose of llama.cpp Metal + * resources before the process exits, avoiding GGML_ASSERT failures. + */ +import { afterAll } from "bun:test"; +import { disposeDefaultLlamaCpp } from "./llm"; + +// Global afterAll runs after all test files complete +afterAll(async () => { + await disposeDefaultLlamaCpp(); +});