30 lines
1001 B
Rust
30 lines
1001 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"),
|
|
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 = AioCb::from_slice( f.as_raw_fd(),
|
|
2, //offset
|
|
WBUF,
|
|
0, //priority
|
|
SigevNotify::SigevNone,
|
|
LioOpcode::LIO_NOP);
|
|
aiocb.write().unwrap();
|
|
}
|