36 lines
926 B
Rust
36 lines
926 B
Rust
|
|
// 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();
|
||
|
|
}
|