use std::process::Command;
fn uniffi_bindgen_bin() -> std::path::PathBuf {
let mut path = std::env::current_exe()
.unwrap()
.parent()
.unwrap()
.to_path_buf();
if path.ends_with("deps") {
path.pop();
}
path.join("uniffi-bindgen")
}
#[test]
fn test_uniffi_bindgen_help_exits_cleanly() {
let bin = uniffi_bindgen_bin();
if !bin.exists() {
eprintln!("uniffi-bindgen binary not found at {:?}, skipping", bin);
return;
}
let output = Command::new(bin)
.arg("--help")
.output()
.expect("failed to spawn uniffi-bindgen");
let stdout = String::from_utf8_lossy(&output.stdout);
let stderr = String::from_utf8_lossy(&output.stderr);
let combined = format!("{}{}", stdout, stderr);
assert!(
combined.to_lowercase().contains("usage") || combined.to_lowercase().contains("generate"),
"expected help output, got: {}",
combined
);
}