use super::decode_samples;
fn load_demo_trace() -> Vec<u8> {
let data = std::fs::read(concat!(
env!("CARGO_MANIFEST_DIR"),
"/ui/public/demo-trace.bin"
))
.unwrap();
let mut dec = flate2::read::GzDecoder::new(data.as_slice());
let mut buf = Vec::new();
std::io::Read::read_to_end(&mut dec, &mut buf).unwrap();
buf
}
#[test]
fn output_timestamps_are_wall_clock() {
let data = load_demo_trace();
let (samples, _, _, _) = decode_samples(&data, "test").unwrap();
assert!(!samples.is_empty());
let min_ts = samples.iter().map(|s| s.timestamp_ns).min().unwrap();
let max_ts = samples.iter().map(|s| s.timestamp_ns).max().unwrap();
assert!(
min_ts > 1_500_000_000_000_000_000,
"min timestamp {min_ts} does not look like wall-clock epoch ns"
);
assert!(
max_ts - min_ts < 5 * 60 * 1_000_000_000,
"timestamp span too large: {} ns",
max_ts - min_ts
);
}