]>
git.proxmox.com Git - qemu-server.git/blob - test/run_qemu_img_convert_tests.pl
14 my $storage_config = {
20 path
=> "/var/lib/vz",
25 monhost
=> "127.0.0.42,127.0.0.21,::1",
36 bwlimit
=> "restore=1024",
45 iscsiprovider
=> "LIO",
47 portal
=> "127.0.0.1",
48 target
=> "iqn.2019-10.org.test:foobar",
57 parameters
=> [ "local:$vmid/vm-$vmid-disk-0.qcow2", "local:$vmid/vm-$vmid-disk-0.raw", 1024*10, undef, 0 ],
59 "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "qcow2", "-O", "raw",
60 "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.qcow2", "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw"
65 parameters
=> [ "local:$vmid/vm-$vmid-disk-0.raw", "local:$vmid/vm-$vmid-disk-0.qcow2", 1024*10, undef, 0 ],
67 "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "raw", "-O", "qcow2",
68 "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw", "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.qcow2"
73 parameters
=> [ "local:$vmid/vm-$vmid-disk-0.raw", "rbd-store:vm-$vmid-disk-0", 1024*10, undef, 0 ],
75 "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "raw", "-O", "raw",
76 "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw", "rbd:cpool/vm-$vmid-disk-0:mon_host=127.0.0.42;127.0.0.21;[\\:\\:1]:auth_supported=none"
81 parameters
=> [ "rbd-store:vm-$vmid-disk-0", "local:$vmid/vm-$vmid-disk-0.raw", 1024*10, undef, 0 ],
83 "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "raw", "-O", "raw",
84 "rbd:cpool/vm-$vmid-disk-0:mon_host=127.0.0.42;127.0.0.21;[\\:\\:1]:auth_supported=none", "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw"
89 parameters
=> [ "local:$vmid/vm-$vmid-disk-0.raw", "zfs-over-iscsi:vm-$vmid-disk-0", 1024*10, undef, 0 ],
91 "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "raw", "--target-image-opts",
92 "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw",
93 "file.driver=iscsi,file.transport=tcp,file.initiator-name=foobar,file.portal=127.0.0.1,file.target=iqn.2019-10.org.test:foobar,file.lun=1,driver=raw"
98 parameters
=> [ "zfs-over-iscsi:vm-$vmid-disk-0", "local:$vmid/vm-$vmid-disk-0.raw", 1024*10, undef, 0 ],
100 "/usr/bin/qemu-img", "convert", "-p", "-n", "--image-opts", "-O", "raw",
101 "file.driver=iscsi,file.transport=tcp,file.initiator-name=foobar,file.portal=127.0.0.1,file.target=iqn.2019-10.org.test:foobar,file.lun=1,driver=raw",
102 "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw",
107 parameters
=> [ "zfs-over-iscsi:vm-$vmid-disk-0", "rbd-store:vm-$vmid-disk-0", 1024*10, undef, 0 ],
109 "/usr/bin/qemu-img", "convert", "-p", "-n", "--image-opts", "-O", "raw",
110 "file.driver=iscsi,file.transport=tcp,file.initiator-name=foobar,file.portal=127.0.0.1,file.target=iqn.2019-10.org.test:foobar,file.lun=1,driver=raw",
111 "rbd:cpool/vm-$vmid-disk-0:mon_host=127.0.0.42;127.0.0.21;[\\:\\:1]:auth_supported=none"
116 parameters
=> [ "rbd-store:vm-$vmid-disk-0", "zfs-over-iscsi:vm-$vmid-disk-0", 1024*10, undef, 0 ],
118 "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "raw", "--target-image-opts",
119 "rbd:cpool/vm-$vmid-disk-0:mon_host=127.0.0.42;127.0.0.21;[\\:\\:1]:auth_supported=none",
120 "file.driver=iscsi,file.transport=tcp,file.initiator-name=foobar,file.portal=127.0.0.1,file.target=iqn.2019-10.org.test:foobar,file.lun=1,driver=raw",
124 name
=> "local2lvmthin",
125 parameters
=> [ "local:$vmid/vm-$vmid-disk-0.raw", "local-lvm:vm-$vmid-disk-0", 1024*10, undef, 0 ],
127 "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "raw", "-O", "raw",
128 "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw",
129 "/dev/pve/vm-$vmid-disk-0",
133 name
=> "lvmthin2local",
134 parameters
=> [ "local-lvm:vm-$vmid-disk-0", "local:$vmid/vm-$vmid-disk-0.raw", 1024*10, undef, 0 ],
136 "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "raw", "-O", "raw",
137 "/dev/pve/vm-$vmid-disk-0",
138 "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw",
143 parameters
=> [ "local-lvm:vm-$vmid-disk-0", "local:$vmid/vm-$vmid-disk-0.raw", 1024*10, undef, 1 ],
145 "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "raw", "-O", "raw",
146 "/dev/pve/vm-$vmid-disk-0",
147 "zeroinit:/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw",
151 name
=> "notexistingstorage",
152 parameters
=> [ "local-lvm:vm-$vmid-disk-0", "not-existing:$vmid/vm-$vmid-disk-0.raw", 1024*10, undef, 1 ],
153 expected
=> "storage 'not-existing' does not exist\n",
157 parameters
=> [ "./test.vmdk", "local:$vmid/vm-$vmid-disk-0.raw", 1024*10, undef, 0 ],
159 "/usr/bin/qemu-img", "convert", "-p", "-n", "-f", "vmdk", "-O", "raw",
161 "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw",
165 name
=> "notexistingfile",
166 parameters
=> [ "/foo/bar", "local:$vmid/vm-$vmid-disk-0.raw", 1024*10, undef, 0 ],
167 expected
=> "source '/foo/bar' is not a valid volid nor path for qemu-img convert\n",
171 parameters
=> [ "/usr/share/kvm/OVMF_VARS-pure-efi.fd", "local:$vmid/vm-$vmid-disk-0.raw", 1024*10, undef, 0 ],
173 "/usr/bin/qemu-img", "convert", "-p", "-n", "-O", "raw",
174 "/usr/share/kvm/OVMF_VARS-pure-efi.fd",
175 "/var/lib/vz/images/$vmid/vm-$vmid-disk-0.raw",
180 parameters
=> [ "/usr/share/kvm/OVMF_VARS-pure-efi.fd", "zfs-over-iscsi:vm-$vmid-disk-0", 1024*10, undef, 0 ],
182 "/usr/bin/qemu-img", "convert", "-p", "-n", "--target-image-opts",
183 "/usr/share/kvm/OVMF_VARS-pure-efi.fd",
184 "file.driver=iscsi,file.transport=tcp,file.initiator-name=foobar,file.portal=127.0.0.1,file.target=iqn.2019-10.org.test:foobar,file.lun=1,driver=raw",
191 my $storage_module = Test
::MockModule-
>new("PVE::Storage");
192 $storage_module->mock(
194 return $storage_config;
196 activate_volumes
=> sub {
201 my $lio_module = Test
::MockModule-
>new("PVE::Storage::LunCmd::LIO");
203 run_lun_command
=> sub {
208 # we use the exported run_command so we have to mock it there
209 my $zfsplugin_module = Test
::MockModule-
>new("PVE::Storage::ZFSPlugin");
210 $zfsplugin_module->mock(
216 # we use the exported run_command so we have to mock it there
217 my $qemu_server_module = Test
::MockModule-
>new("PVE::QemuServer");
218 $qemu_server_module->mock(
222 get_initiator_name
=> sub {
227 foreach my $test (@$tests) {
228 my $name = $test->{name
};
229 my $expected = $test->{expected
};
230 eval { PVE
::QemuServer
::qemu_img_convert
(@{$test->{parameters
}}) };
232 is ($err, $expected, $name);
233 } elsif (defined($command)) {
234 is_deeply
($command, $expected, $name);