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();
 | |
| }
 |