| // Test dropping an AioCb that hasn't yet finished. |
| // This must happen in its own process, because on OSX this test seems to hose |
| // the AIO subsystem and causes subsequent tests to fail |
| #[test] |
| #[should_panic(expected = "Dropped an in-progress AioCb")] |
| #[cfg(all( |
| not(target_env = "musl"), |
| not(target_env = "uclibc"), |
| any( |
| target_os = "linux", |
| target_os = "ios", |
| target_os = "macos", |
| target_os = "freebsd", |
| target_os = "netbsd" |
| ) |
| ))] |
| fn test_drop() { |
| use nix::sys::aio::*; |
| use nix::sys::signal::*; |
| use std::os::unix::io::AsRawFd; |
| use tempfile::tempfile; |
| |
| const WBUF: &[u8] = b"CDEF"; |
| |
| let f = tempfile().unwrap(); |
| f.set_len(6).unwrap(); |
| let mut aiocb = Box::pin(AioWrite::new( |
| f.as_raw_fd(), |
| 2, //offset |
| WBUF, |
| 0, //priority |
| SigevNotify::SigevNone, |
| )); |
| aiocb.as_mut().submit().unwrap(); |
| } |