block: factory: Add test for QCOW2 image detection

Create a minimal QCOW2 temp file via QcowFile::new() and verify
that open_disk() detects it as ImageType::Qcow2.

Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
This commit is contained in:
Anatol Belski
2026-04-21 21:34:12 +02:00
committed by Rob Bradford
parent 01c4e0512f
commit 78784c2a3f

View File

@@ -198,11 +198,13 @@ fn open_qcow2(
#[cfg(test)]
mod unit_tests {
use std::io::Write;
use std::path::Path;
use vmm_sys_util::tempfile::TempFile;
use super::*;
use crate::qcow::{QcowFile, RawFile};
fn default_options(path: &Path) -> DiskOpenOptions<'_> {
DiskOpenOptions {
@@ -235,4 +237,18 @@ mod unit_tests {
let opened = open_disk(&options).unwrap();
assert_eq!(opened.image_type, ImageType::Raw);
}
#[test]
fn detect_qcow2_image() {
let tmp = TempFile::new().unwrap();
{
let raw = RawFile::new(tmp.as_file().try_clone().unwrap(), false);
let mut qcow = QcowFile::new(raw, 3, 100 * 1024 * 1024, true).unwrap();
qcow.flush().unwrap();
}
let path = tmp.as_path().to_owned();
let options = default_options(&path);
let opened = open_disk(&options).unwrap();
assert_eq!(opened.image_type, ImageType::Qcow2);
}
}