lesavka/testing/tests/client_microphone_startup_contract.rs

38 lines
1.1 KiB
Rust
Raw Normal View History

//! Include-based coverage for microphone startup cleanup paths.
//!
//! Scope: include `client/src/input/microphone.rs` and exercise startup
//! failures without requiring a live microphone.
//! Targets: `client/src/input/microphone.rs`.
//! Why: startup failures should move the pipeline back to NULL before the
//! capture object returns an error.
#[allow(warnings)]
mod live_capture_clock {
include!("support/live_capture_clock_shim.rs");
}
#[allow(warnings)]
mod microphone_startup_contract {
include!(env!("LESAVKA_CLIENT_MICROPHONE_SRC"));
use serial_test::serial;
use temp_env::with_var;
#[test]
#[cfg(coverage)]
#[serial]
fn startup_failure_cleans_up_pipeline_state() {
gst::init().ok();
with_var("LESAVKA_MIC_SOURCE", None::<&str>, || {
with_var(
"LESAVKA_MIC_TEST_SOURCE_DESC",
Some("filesrc location=/definitely-missing-lesavka-mic.raw"),
|| {
let result = MicrophoneCapture::new();
assert!(result.is_err(), "missing filesrc should fail startup");
},
);
});
}
}