diff options
Diffstat (limited to 'third_party/rust/tokio/tests/signal_panic.rs')
-rw-r--r-- | third_party/rust/tokio/tests/signal_panic.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/third_party/rust/tokio/tests/signal_panic.rs b/third_party/rust/tokio/tests/signal_panic.rs new file mode 100644 index 0000000000..ce1ec3e4a7 --- /dev/null +++ b/third_party/rust/tokio/tests/signal_panic.rs @@ -0,0 +1,29 @@ +#![warn(rust_2018_idioms)] +#![cfg(feature = "full")] +#![cfg(unix)] + +use std::error::Error; +use tokio::runtime::Builder; +use tokio::signal::unix::{signal, SignalKind}; + +mod support { + pub mod panic; +} +use support::panic::test_panic; + +#[test] +fn signal_panic_caller() -> Result<(), Box<dyn Error>> { + let panic_location_file = test_panic(|| { + let rt = Builder::new_current_thread().build().unwrap(); + + rt.block_on(async { + let kind = SignalKind::from_raw(-1); + let _ = signal(kind); + }); + }); + + // The panic location should be in this file + assert_eq!(&panic_location_file.unwrap(), file!()); + + Ok(()) +} |