#![cfg(unix)]
use podman_lens::{
ReadOnlyUnixTransport, ReadOnlyUnixTransportTimeouts, TransportLimits, UnixConnection, probe_libpod_service,
};
#[tokio::test]
#[ignore = "requires an explicit local Podman Unix socket and reviewed exact expected version"]
async fn current_reviewed_patch_probes_read_only_service() -> Result<(), Box<dyn std::error::Error>> {
let socket = std::env::var("PODMAN_LENS_CONFORMANCE_UNIX_SOCKET").map_err(|_| {
std::io::Error::new(
std::io::ErrorKind::InvalidInput,
"PODMAN_LENS_CONFORMANCE_UNIX_SOCKET must name an explicit absolute Unix socket",
)
})?;
let expected = std::env::var("PODMAN_LENS_CONFORMANCE_EXPECTED_VERSION").map_err(|_| {
std::io::Error::new(
std::io::ErrorKind::InvalidInput,
"PODMAN_LENS_CONFORMANCE_EXPECTED_VERSION must be exactly 5.8.6 or 6.1.0",
)
})?;
if !matches!(expected.as_str(), "5.8.6" | "6.1.0") {
return Err(std::io::Error::new(
std::io::ErrorKind::InvalidInput,
"PODMAN_LENS_CONFORMANCE_EXPECTED_VERSION must be exactly 5.8.6 or 6.1.0",
)
.into());
}
let transport = ReadOnlyUnixTransport::new(
UnixConnection::new(socket)?,
TransportLimits::default(),
ReadOnlyUnixTransportTimeouts::default(),
)?;
let observation = probe_libpod_service(&transport).await?;
assert_eq!(observation.engine_version().original(), expected);
Ok(())
}