tests : load backends before init when built with GGML_BACKEND_DL (#4031)

With GGML_BACKEND_DL=ON no backend is registered until something calls
ggml_backend_load_all(). Every example does; the tests never did, so
whisper_init_* and parakeet_init_* ran with devices = 0 and aborted on
GGML_ASSERT(device) in ggml_backend_dev_backend_reg.

Three tests aborted on such a build - test-whisper-zero-samples,
test-vad and test-parakeet - taking ctest -L gh to 2 of 4.
test-vad-full has the same fault and reaches it only once a real
base.en model is present.

No workflow caught this because none pairs the two: build-clang,
build-gcc and build-sanitize run ctest -L gh but never set
GGML_BACKEND_DL, while release.yml sets it and runs no tests.

ggml_backend_load_all() is already reachable through whisper.h and
parakeet.h via ggml-cpu.h, so no new include is needed.

Resolves: https://github.com/ggml-org/whisper.cpp/issues/4030
This commit is contained in:
Abir Deol
2026-09-08 07:14:42 +02:00
committed by GitHub
parent 61e6ccade0
commit 79f2d92112
4 changed files with 8 additions and 0 deletions
+2
View File
@@ -48,6 +48,8 @@ struct whisper_vad_segments * test_detect_timestamps(
}
int main() {
ggml_backend_load_all();
std::string vad_model_path = VAD_MODEL_PATH;
std::string sample_path = SAMPLE_PATH;