#[must_use]
pub fn is_gpu_unavailable_error(error_message: &str) -> bool {
const PATTERNS: &[&str] = &["adapter", "Adapter", "GPU", "no suitable", "wgpu"];
PATTERNS.iter().any(|p| error_message.contains(p))
}
pub fn print_gpu_skip(test_name: &str, error_message: &str) {
println!("[GPU-UNAVAILABLE-SKIP] {test_name}: {error_message}");
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn recognizes_adapter_unavailable_messages() {
assert!(is_gpu_unavailable_error(
"wgpu: no suitable Adapter found for this backend"
));
assert!(is_gpu_unavailable_error("failed to request GPU adapter"));
assert!(is_gpu_unavailable_error("no wgpu adapter available"));
}
#[test]
fn does_not_misclassify_unrelated_errors() {
assert!(!is_gpu_unavailable_error("shape mismatch: expected [3, 3]"));
assert!(!is_gpu_unavailable_error("division by zero"));
}
}