From e522d3a0aa41138dc4dd7b342682676488f3e46b Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Mon, 30 Mar 2026 22:43:01 +0200 Subject: [PATCH] block: qcow: Test async write zeroes Add a QcowAsync unit test for write zeroes completion. The test verifies that a write zeroes request reports successful completion and that the zeroed range reads back as zeroes. Signed-off-by: Anatol Belski --- block/src/qcow_async.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/block/src/qcow_async.rs b/block/src/qcow_async.rs index 74cf9abef..a01acf604 100644 --- a/block/src/qcow_async.rs +++ b/block/src/qcow_async.rs @@ -656,4 +656,26 @@ mod unit_tests { "Punched hole should read as zeros" ); } + + #[test] + fn test_qcow_async_write_zeroes_completion() { + let data = vec![0xAA; 128 * 1024]; + let offset = 0u64; + let (_temp, disk) = create_disk_with_data(100 * 1024 * 1024, &data, offset, true); + + let mut async_io = disk.new_async_io(1).unwrap(); + async_io + .write_zeroes(offset, data.len() as u64, 200) + .unwrap(); + let (user_data, result) = async_io.next_completed_request().unwrap(); + assert_eq!(user_data, 200); + assert_eq!(result, 0, "write_zeroes should succeed"); + drop(async_io); + + let read_buf = async_read(&disk, offset, data.len()); + assert!( + read_buf.iter().all(|&b| b == 0), + "Write zeroes region should read as zeros" + ); + } }