• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 ))]
test_drop()17 fn 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