From ceb20abeba574323a554fd57629844664a19e01d Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Tue, 19 May 2026 10:13:28 -0300 Subject: [PATCH] test(lesavka): cover client decoder policy flags --- .../client_video_support_include_contract.rs | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/tests/compatibility/client/video_support/client_video_support_include_contract.rs b/tests/compatibility/client/video_support/client_video_support_include_contract.rs index e867c22..4ce5f25 100644 --- a/tests/compatibility/client/video_support/client_video_support_include_contract.rs +++ b/tests/compatibility/client/video_support/client_video_support_include_contract.rs @@ -135,6 +135,57 @@ fn vulkan_decoder_fragment_downloads_gpu_memory_before_cpu_sinks() { let named = video_support::h264_decoder_launch_fragment_named("vulkanh264dec", "decoder1"); assert!(named.contains("vulkanh264dec name=decoder1")); assert!(named.contains("vulkandownload")); + + assert_eq!( + video_support::h264_decoder_launch_fragment_named("nvh264dec", "left_decoder"), + "nvh264dec name=left_decoder" + ); +} + +#[test] +#[serial] +fn video_fallback_flags_require_clear_opt_in_values() { + for disabled in [ + None, + Some(""), + Some("0"), + Some("false"), + Some("no"), + Some("off"), + ] { + with_var("LESAVKA_ALLOW_SOFTWARE_VIDEO", disabled, || { + assert!(!video_support::software_video_fallback_allowed()); + }); + with_var("LESAVKA_ALLOW_VULKAN_H264_DECODER", disabled, || { + assert!(!video_support::h264_decoder_preference_order().contains(&"vulkanh264dec")); + }); + } + + for enabled in ["1", "true", "yes", "on", "lab"] { + with_var("LESAVKA_ALLOW_SOFTWARE_VIDEO", Some(enabled), || { + assert!(video_support::software_video_fallback_allowed()); + }); + with_var("LESAVKA_ALLOW_VULKAN_H264_DECODER", Some(enabled), || { + assert!(video_support::h264_decoder_preference_order().contains(&"vulkanh264dec")); + }); + } +} + +#[test] +fn hardware_decoder_classifier_names_each_supported_route() { + for name in [ + "nvh264dec", + "nvh264sldec", + "vulkanh264dec", + "vah264dec", + "vaapih264dec", + "v4l2h264dec", + "v4l2slh264dec", + ] { + assert!(video_support::is_hardware_h264_decoder(name)); + } + assert!(!video_support::is_hardware_h264_decoder("decodebin")); + assert!(!video_support::is_hardware_h264_decoder("avdec_h264")); } #[test]