fix: proper cleanup of Metal GPU resources in tests

Add test-preload.ts with global afterAll hook that ensures llama.cpp
Metal resources are properly disposed before process exit, avoiding
GGML_ASSERT failures.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Tobi Lutke 2026-01-31 15:13:33 -05:00
parent 2d2f53034d
commit 537d15a9e6
No known key found for this signature in database
2 changed files with 14 additions and 1 deletions

View File

@ -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",

13
src/test-preload.ts Normal file
View File

@ -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();
});