use transcribe_cpp::{
backend_available, device_count, devices, init_backends, init_backends_default, Backend,
};
#[test]
fn cpu_is_the_floor() {
init_backends_default().expect("init_backends_default");
assert!(device_count() >= 1, "no compute devices registered");
assert!(backend_available(Backend::Cpu), "CPU backend unavailable");
assert!(
devices().iter().any(|d| d.kind == "cpu"),
"no cpu-kind device in {:?}",
devices()
);
}
#[test]
fn unavailable_backend_probes_cleanly() {
init_backends_default().expect("init_backends_default");
let _vulkan = backend_available(Backend::Vulkan);
let _cuda = backend_available(Backend::Cuda);
let _rocm = backend_available(Backend::Rocm);
assert!(backend_available(Backend::Cpu));
}
#[test]
fn init_backends_keeps_the_cpu_floor() {
init_backends_default().expect("init_backends_default");
let dir = std::env::temp_dir().join("transcribe-rs-empty-modules");
std::fs::create_dir_all(&dir).ok();
let before = device_count();
let _ = init_backends(&dir); assert!(
device_count() >= before.max(1),
"device count regressed after init_backends ({before} -> {})",
device_count()
);
assert!(backend_available(Backend::Cpu), "CPU floor lost");
}
#[cfg(feature = "dynamic-backends")]
#[test]
fn dynamic_backends_register_a_cpu_module() {
init_backends_default().expect("dynamic-backends provider load");
assert!(
devices().iter().any(|d| d.kind == "cpu"),
"dynamic-backends build registered no cpu module: {:?}",
devices()
);
}