mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-01-17 02:10:07 +00:00
27 lines
770 B
Rust
27 lines
770 B
Rust
#![warn(rust_2018_idioms)]
|
|
#![cfg(feature = "full")]
|
|
#![cfg(unix)]
|
|
|
|
mod support {
|
|
pub mod signal;
|
|
}
|
|
use support::signal::send_signal;
|
|
|
|
use tokio::signal::unix::{signal, SignalKind};
|
|
|
|
#[tokio::test]
|
|
async fn dropping_signal_does_not_deregister_any_other_instances() {
|
|
let kind = SignalKind::user_defined1();
|
|
|
|
// Signals should not starve based on ordering
|
|
let first_duplicate_signal = signal(kind).expect("failed to register first duplicate signal");
|
|
let mut sig = signal(kind).expect("failed to register signal");
|
|
let second_duplicate_signal = signal(kind).expect("failed to register second duplicate signal");
|
|
|
|
drop(first_duplicate_signal);
|
|
drop(second_duplicate_signal);
|
|
|
|
send_signal(libc::SIGUSR1);
|
|
let _ = sig.recv().await;
|
|
}
|