use super::*;
#[cfg(unix)]
fn signal_status(signal: i32) -> ExitStatus {
use std::os::unix::process::ExitStatusExt;
ExitStatus::from_raw(signal)
}
#[test]
fn status_code_preserves_plain_exit_code() {
let status = Command::new("sh")
.args(["-c", "exit 7"])
.status()
.expect("status");
assert_eq!(status_code(status, None), 7);
}
#[cfg(unix)]
#[test]
fn status_code_preserves_child_signal_code() {
assert_eq!(status_code(signal_status(15), None), 143);
}
#[cfg(unix)]
#[test]
fn status_code_reports_parent_signal_after_successful_child_exit() {
let status = Command::new("sh")
.args(["-c", "exit 0"])
.status()
.expect("status");
assert_eq!(status_code(status, Some(SIGINT)), 130);
}