mirror of
https://github.com/rust-vmm/vhost-device.git
synced 2025-12-26 22:48:17 +00:00
sound: add unit tests to audio_backends.rs
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
This commit is contained in:
parent
30fb9b7766
commit
d523e85efa
@ -41,6 +41,9 @@ pub trait AudioBackend {
|
||||
fn stop(&self, _stream_id: u32) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
fn as_any(&self) -> &dyn std::any::Any;
|
||||
}
|
||||
|
||||
pub fn alloc_audio_backend(
|
||||
@ -56,3 +59,35 @@ pub fn alloc_audio_backend(
|
||||
BackendType::Alsa => Ok(Box::new(AlsaBackend::new(streams))),
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use std::any::TypeId;
|
||||
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_alloc_audio_backend() {
|
||||
crate::init_logger();
|
||||
{
|
||||
let v = BackendType::Null;
|
||||
let value = alloc_audio_backend(v, Default::default()).unwrap();
|
||||
assert_eq!(TypeId::of::<NullBackend>(), value.as_any().type_id());
|
||||
}
|
||||
#[cfg(feature = "pw-backend")]
|
||||
{
|
||||
use pipewire::{test_utils::PipewireTestHarness, *};
|
||||
|
||||
let _test_harness = PipewireTestHarness::new();
|
||||
let v = BackendType::Pipewire;
|
||||
let value = alloc_audio_backend(v, Default::default()).unwrap();
|
||||
assert_eq!(TypeId::of::<PwBackend>(), value.as_any().type_id());
|
||||
}
|
||||
#[cfg(feature = "alsa-backend")]
|
||||
{
|
||||
let v = BackendType::Alsa;
|
||||
let value = alloc_audio_backend(v, Default::default()).unwrap();
|
||||
assert_eq!(TypeId::of::<AlsaBackend>(), value.as_any().type_id());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -718,4 +718,9 @@ impl AudioBackend for AlsaBackend {
|
||||
std::mem::take(&mut streams[stream_id as usize].buffers);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
fn as_any(&self) -> &dyn std::any::Any {
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,6 +26,11 @@ impl AudioBackend for NullBackend {
|
||||
log::trace!("NullBackend read stream_id {}", _id);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
fn as_any(&self) -> &dyn std::any::Any {
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
@ -562,12 +562,17 @@ impl AudioBackend for PwBackend {
|
||||
lock_guard.unlock();
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
fn as_any(&self) -> &dyn std::any::Any {
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
/// Utilities for building a temporary Dbus session and a pipewire instance for
|
||||
/// testing.
|
||||
mod test_utils;
|
||||
pub mod test_utils;
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user