#![cfg(unix)]
use std::process::Command;
fn run_piped_to_head(args: &str, lines: u32) -> String {
let script = format!("\"$MNEMO_BIN\" {args} | head -n{lines}");
let output = Command::new("sh")
.env("MNEMO_BIN", env!("CARGO_BIN_EXE_mnemo"))
.args(["-c", &script])
.output()
.expect("exécution de sh");
String::from_utf8_lossy(&output.stderr).into_owned()
}
#[test]
fn completions_pipe_vers_head_ne_panique_pas() {
let stderr = run_piped_to_head("completions bash", 1);
assert!(
!stderr.contains("panicked"),
"mnemo a paniqué sur un tube fermé : {stderr}"
);
assert!(
!stderr.contains("Broken pipe"),
"fuite d'un message BrokenPipe : {stderr}"
);
}
#[test]
fn version_pipe_vers_head_ne_panique_pas() {
let stderr = run_piped_to_head("version", 1);
assert!(
!stderr.contains("panicked"),
"mnemo a paniqué sur un tube fermé : {stderr}"
);
assert!(
!stderr.contains("Broken pipe"),
"fuite d'un message BrokenPipe : {stderr}"
);
}