| 366 | } |
| 367 | |
| 368 | fn async_write(disk: &QcowDisk, offset: u64, data: &[u8]) { |
| 369 | let mut async_io = disk.create_async_io(1).unwrap(); |
| 370 | let iovec = libc::iovec { |
| 371 | iov_base: data.as_ptr().cast::<libc::c_void>().cast_mut(), |
| 372 | iov_len: data.len(), |
| 373 | }; |
| 374 | async_io |
| 375 | .write_vectored(offset as libc::off_t, &[iovec], 1) |
| 376 | .unwrap(); |
| 377 | let (user_data, result) = async_io.next_completed_request().unwrap(); |
| 378 | assert_eq!(user_data, 1); |
| 379 | assert_eq!(result as usize, data.len()); |
| 380 | } |
| 381 | |
| 382 | #[test] |
| 383 | fn test_qcow_async_punch_hole_completion() { |