summaryrefslogtreecommitdiff
path: root/test/sys/test_signal.rs
diff options
context:
space:
mode:
Diffstat (limited to 'test/sys/test_signal.rs')
-rw-r--r--test/sys/test_signal.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/test/sys/test_signal.rs b/test/sys/test_signal.rs
index ae22527f..fdb7f36d 100644
--- a/test/sys/test_signal.rs
+++ b/test/sys/test_signal.rs
@@ -108,8 +108,15 @@ fn test_signal() {
assert_eq!(unsafe { signal(Signal::SIGINT, handler) }.unwrap(), SigHandler::SigDfl);
raise(Signal::SIGINT).unwrap();
assert!(SIGNALED.load(Ordering::Relaxed));
+
+ #[cfg(not(any(target_os = "illumos", target_os = "solaris")))]
assert_eq!(unsafe { signal(Signal::SIGINT, SigHandler::SigDfl) }.unwrap(), handler);
+ // System V based OSes (e.g. illumos and Solaris) always resets the
+ // disposition to SIG_DFL prior to calling the signal handler
+ #[cfg(any(target_os = "illumos", target_os = "solaris"))]
+ assert_eq!(unsafe { signal(Signal::SIGINT, SigHandler::SigDfl) }.unwrap(), SigHandler::SigDfl);
+
// Restore default signal handler
unsafe { signal(Signal::SIGINT, SigHandler::SigDfl) }.unwrap();
}