[pve-devel] [PATCH qemu-server 22/31] test: migration: factor out common mocking for mirror

Fiona Ebner f.ebner at proxmox.com
Wed Jun 25 17:56:45 CEST 2025


To be re-used for mocking blockdev_mirror.

Signed-off-by: Fiona Ebner <f.ebner at proxmox.com>
---
 src/test/MigrationTest/QemuMigrateMock.pm | 24 ++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/src/test/MigrationTest/QemuMigrateMock.pm b/src/test/MigrationTest/QemuMigrateMock.pm
index bdc574c1..25a4f9b2 100644
--- a/src/test/MigrationTest/QemuMigrateMock.pm
+++ b/src/test/MigrationTest/QemuMigrateMock.pm
@@ -132,6 +132,20 @@ $MigrationTest::Shared::qemu_server_module->mock(
     },
 );
 
+my sub common_mirror_mock {
+    my ($vmid, $drive_id) = @_;
+
+    die "drive_mirror with wrong vmid: '$vmid'\n" if $vmid ne $test_vmid;
+    die "qemu_drive_mirror '$drive_id' error\n"
+        if $fail_config->{qemu_drive_mirror} && $fail_config->{qemu_drive_mirror} eq $drive_id;
+
+    my $nbd_info = decode_json(file_get_contents("${RUN_DIR_PATH}/nbd_info"));
+    die "target does not expect drive mirror for '$drive_id'\n"
+        if !defined($nbd_info->{$drive_id});
+    delete $nbd_info->{$drive_id};
+    file_set_contents("${RUN_DIR_PATH}/nbd_info", to_json($nbd_info));
+}
+
 my $qemu_server_blockjob_module = Test::MockModule->new("PVE::QemuServer::BlockJob");
 $qemu_server_blockjob_module->mock(
     qemu_blockjobs_cancel => sub {
@@ -151,15 +165,7 @@ $qemu_server_blockjob_module->mock(
             $src_bitmap,
         ) = @_;
 
-        die "drive_mirror with wrong vmid: '$vmid'\n" if $vmid ne $test_vmid;
-        die "qemu_drive_mirror '$drive_id' error\n"
-            if $fail_config->{qemu_drive_mirror} && $fail_config->{qemu_drive_mirror} eq $drive_id;
-
-        my $nbd_info = decode_json(file_get_contents("${RUN_DIR_PATH}/nbd_info"));
-        die "target does not expect drive mirror for '$drive_id'\n"
-            if !defined($nbd_info->{$drive_id});
-        delete $nbd_info->{$drive_id};
-        file_set_contents("${RUN_DIR_PATH}/nbd_info", to_json($nbd_info));
+        common_mirror_mock($vmid, $drive_id);
     },
     qemu_drive_mirror_monitor => sub {
         my ($vmid, $vmiddst, $jobs, $completion, $qga) = @_;
-- 
2.47.2





More information about the pve-devel mailing list