Don't unnecessarily change SIGPIPE
disposition in unix_sigpipe tests
In `auxiliary/sigpipe-utils.rs`, all we want to know is the current `SIGPIPE` disposition. We should not change it. So use `libc::sigaction` instead of `libc::signal`. That way we can also remove the code that restores it.
This commit is contained in:
parent
21033f637e
commit
f5b9eaf18f
1 changed files with 6 additions and 6 deletions
|
@ -17,17 +17,17 @@ pub fn assert_sigpipe_handler(expected_handler: SignalHandler) {
|
||||||
target_os = "android",
|
target_os = "android",
|
||||||
)))]
|
)))]
|
||||||
{
|
{
|
||||||
let prev = unsafe { libc::signal(libc::SIGPIPE, libc::SIG_IGN) };
|
let actual = unsafe {
|
||||||
|
let mut actual: libc::sigaction = std::mem::zeroed();
|
||||||
|
libc::sigaction(libc::SIGPIPE, std::ptr::null(), &mut actual);
|
||||||
|
actual.sa_sigaction
|
||||||
|
};
|
||||||
|
|
||||||
let expected = match expected_handler {
|
let expected = match expected_handler {
|
||||||
SignalHandler::Ignore => libc::SIG_IGN,
|
SignalHandler::Ignore => libc::SIG_IGN,
|
||||||
SignalHandler::Default => libc::SIG_DFL,
|
SignalHandler::Default => libc::SIG_DFL,
|
||||||
};
|
};
|
||||||
assert_eq!(prev, expected, "expected sigpipe value matches actual value");
|
|
||||||
|
|
||||||
// Unlikely to matter, but restore the old value anyway
|
assert_eq!(actual, expected, "actual and expected SIGPIPE disposition differs");
|
||||||
unsafe {
|
|
||||||
libc::signal(libc::SIGPIPE, prev);
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue