use procutils_testutil::LiveSession;
const SKILL: &str = env!("CARGO_BIN_EXE_skill");
#[test]
fn skill_delivers_sigusr1_by_command() {
if !procutils_testutil::pid_namespace_supported() {
eprintln!("skipping: PID namespaces unavailable");
return;
}
let session = LiveSession::new()
.helper("signal_recipient", &["--rename=worker"])
.target(SKILL, &["-USR1", "-c", "worker"])
.run()
.expect("session ran");
assert_eq!(session.target.exit_code, Some(0));
assert_eq!(
session.helpers[0].exit_code,
Some(libc::SIGUSR1),
"helper outcome: {:?}",
session.helpers[0],
);
}
#[test]
fn skill_delivers_real_time_signal_by_pid() {
if !procutils_testutil::pid_namespace_supported() {
eprintln!("skipping: PID namespaces unavailable");
return;
}
let expected = procutils_common::signal::rt_min() + 7;
let session = LiveSession::new()
.helper("signal_recipient", &[])
.target(SKILL, &["-RTMIN+7", "{helper:0}"])
.run()
.expect("session ran");
assert_eq!(session.target.exit_code, Some(0));
assert_eq!(
session.helpers[0].exit_code,
Some(expected),
"helper outcome: {:?}",
session.helpers[0],
);
}