1// Test dropping an AioCb that hasn't yet finished. 2// This must happen in its own process, because on OSX this test seems to hose 3// the AIO subsystem and causes subsequent tests to fail 4#[test] 5#[should_panic(expected = "Dropped an in-progress AioCb")] 6#[cfg(all( 7 not(target_env = "musl"), 8 not(target_env = "uclibc"), 9 any( 10 target_os = "linux", 11 target_os = "ios", 12 target_os = "macos", 13 target_os = "freebsd", 14 target_os = "netbsd" 15 ) 16))] 17fn test_drop() { 18 use nix::sys::aio::*; 19 use nix::sys::signal::*; 20 use std::os::unix::io::AsRawFd; 21 use tempfile::tempfile; 22 23 const WBUF: &[u8] = b"CDEF"; 24 25 let f = tempfile().unwrap(); 26 f.set_len(6).unwrap(); 27 let mut aiocb = Box::pin(AioWrite::new( 28 f.as_raw_fd(), 29 2, //offset 30 WBUF, 31 0, //priority 32 SigevNotify::SigevNone, 33 )); 34 aiocb.as_mut().submit().unwrap(); 35} 36