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(not(target_env = "musl"), 7 any(target_os = "linux", 8 target_os = "ios", 9 target_os = "macos", 10 target_os = "freebsd", 11 target_os = "netbsd")))] 12 #[cfg_attr(target_env = "gnu", ignore = "Occasionally fails in Travis; glibc bug suspected")] 13 fn test_drop() { 14 use nix::sys::aio::*; 15 use nix::sys::signal::*; 16 use std::os::unix::io::AsRawFd; 17 use tempfile::tempfile; 18 19 const WBUF: &[u8] = b"CDEF"; 20 21 let f = tempfile().unwrap(); 22 f.set_len(6).unwrap(); 23 let mut aiocb = AioCb::from_slice( f.as_raw_fd(), 24 2, //offset 25 WBUF, 26 0, //priority 27 SigevNotify::SigevNone, 28 LioOpcode::LIO_NOP); 29 aiocb.write().unwrap(); 30 } 31