From 4ec2ff10802f70e1c1129b5b3a42df4c344eafc5 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Thu, 23 Apr 2026 21:07:33 +0200 Subject: [PATCH] block: qcow: Add test for correct logical size Verify that QcowDisk reports the expected virtual size. Assisted-by: Claude:Opus-4.6 Signed-off-by: Anatol Belski --- block/src/qcow_disk.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/block/src/qcow_disk.rs b/block/src/qcow_disk.rs index effea82af..eb9dff600 100644 --- a/block/src/qcow_disk.rs +++ b/block/src/qcow_disk.rs @@ -186,3 +186,30 @@ impl disk_file::AsyncDiskFile for QcowDisk { ))) } } + +#[cfg(test)] +mod unit_tests { + use vmm_sys_util::tempfile::TempFile; + + use super::*; + use crate::disk_file::DiskSize; + use crate::qcow::{QcowFile, RawFile}; + + const TEST_SIZE: u64 = 0x5566_7788; + + fn make_qcow_file() -> File { + let temp_file = TempFile::new().unwrap(); + { + let raw = RawFile::new(temp_file.as_file().try_clone().unwrap(), false); + QcowFile::new(raw, 3, TEST_SIZE, true).unwrap(); + } + temp_file.into_file() + } + + #[test] + fn new_sync_returns_correct_size() { + let file = make_qcow_file(); + let disk = QcowDisk::new(file, false, false, true, false).unwrap(); + assert_eq!(disk.logical_size().unwrap(), TEST_SIZE); + } +}