use std::process::Command;
use std::time::{Duration, Instant};
const CEILING: Duration = if cfg!(debug_assertions) {
Duration::from_millis(1500)
} else {
Duration::from_millis(500)
};
#[test]
fn vortix_version_cold_start_under_ceiling() {
let bin = env!("CARGO_BIN_EXE_vortix");
let start = Instant::now();
let output = Command::new(bin)
.arg("--version")
.output()
.expect("failed to spawn vortix binary");
let elapsed = start.elapsed();
assert!(
output.status.success(),
"vortix --version exited non-zero: stderr={}",
String::from_utf8_lossy(&output.stderr)
);
let stdout = String::from_utf8_lossy(&output.stdout);
assert!(
stdout.contains("vortix"),
"vortix --version stdout missing 'vortix': {stdout}"
);
assert!(
elapsed < CEILING,
"vortix --version cold start was {}ms, exceeds ceiling of {}ms (mode: {})",
elapsed.as_millis(),
CEILING.as_millis(),
if cfg!(debug_assertions) {
"debug"
} else {
"release"
},
);
}