#![allow(clippy::unwrap_used, clippy::doc_markdown)]
#[test]
fn kernel_pnp_evtx_decodes_the_sandisk_usb_device() {
let Ok(path) = std::env::var("USB_TEST_KERNELPNP_EVTX") else {
eprintln!(
"SKIP: set USB_TEST_KERNELPNP_EVTX to the Szechuan Kernel-PnP Configuration .evtx"
);
return;
};
let out = std::process::Command::new(env!("CARGO_BIN_EXE_usb4n6"))
.arg(&path)
.output()
.expect("run usb4n6");
let stdout = String::from_utf8_lossy(&out.stdout);
assert!(
stdout.contains("\"device\":\"4C530000261130109435\""),
"must decode the SanDisk USB device keyed by serial; got: {stdout}"
);
assert!(
stdout.contains("\"Timestamp\":1600490202") && stdout.contains("\"source\":\"KernelPnp\""),
"must record the connection time as a Kernel-PnP LastConnected witness; got: {stdout}"
);
assert!(
!stdout.contains("ROOT_HUB"),
"USB root-hub controllers must be excluded; got: {stdout}"
);
}