]> git.proxmox.com Git - qemu-server.git/blob - test/run_ovf_tests.pl
bump version to 8.2.1
[qemu-server.git] / test / run_ovf_tests.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5 use lib qw(..); # prepend .. to @INC so we use the local version of PVE packages
6
7 use FindBin '$Bin';
8 use PVE::QemuServer::OVF;
9 use Test::More;
10
11 use Data::Dumper;
12
13 my $test_manifests = join ('/', $Bin, 'ovf_manifests');
14
15 print "parsing ovfs\n";
16
17 my $win2008 = eval { PVE::QemuServer::OVF::parse_ovf("$test_manifests/Win_2008_R2_two-disks.ovf") };
18 if (my $err = $@) {
19 fail('parse win2008');
20 warn("error: $err\n");
21 } else {
22 ok('parse win2008');
23 }
24 my $win10 = eval { PVE::QemuServer::OVF::parse_ovf("$test_manifests/Win10-Liz.ovf") };
25 if (my $err = $@) {
26 fail('parse win10');
27 warn("error: $err\n");
28 } else {
29 ok('parse win10');
30 }
31 my $win10noNs = eval { PVE::QemuServer::OVF::parse_ovf("$test_manifests/Win10-Liz_no_default_ns.ovf") };
32 if (my $err = $@) {
33 fail("parse win10 no default rasd NS");
34 warn("error: $err\n");
35 } else {
36 ok('parse win10 no default rasd NS');
37 }
38
39 print "testing disks\n";
40
41 is($win2008->{disks}->[0]->{disk_address}, 'scsi0', 'multidisk vm has the correct first disk controller');
42 is($win2008->{disks}->[0]->{backing_file}, "$test_manifests/disk1.vmdk", 'multidisk vm has the correct first disk backing device');
43 is($win2008->{disks}->[0]->{virtual_size}, 2048, 'multidisk vm has the correct first disk size');
44
45 is($win2008->{disks}->[1]->{disk_address}, 'scsi1', 'multidisk vm has the correct second disk controller');
46 is($win2008->{disks}->[1]->{backing_file}, "$test_manifests/disk2.vmdk", 'multidisk vm has the correct second disk backing device');
47 is($win2008->{disks}->[1]->{virtual_size}, 2048, 'multidisk vm has the correct second disk size');
48
49 is($win10->{disks}->[0]->{disk_address}, 'scsi0', 'single disk vm has the correct disk controller');
50 is($win10->{disks}->[0]->{backing_file}, "$test_manifests/Win10-Liz-disk1.vmdk", 'single disk vm has the correct disk backing device');
51 is($win10->{disks}->[0]->{virtual_size}, 2048, 'single disk vm has the correct size');
52
53 is($win10noNs->{disks}->[0]->{disk_address}, 'scsi0', 'single disk vm (no default rasd NS) has the correct disk controller');
54 is($win10noNs->{disks}->[0]->{backing_file}, "$test_manifests/Win10-Liz-disk1.vmdk", 'single disk vm (no default rasd NS) has the correct disk backing device');
55 is($win10noNs->{disks}->[0]->{virtual_size}, 2048, 'single disk vm (no default rasd NS) has the correct size');
56
57 print "\ntesting vm.conf extraction\n";
58
59 is($win2008->{qm}->{name}, 'Win2008-R2x64', 'win2008 VM name is correct');
60 is($win2008->{qm}->{memory}, '2048', 'win2008 VM memory is correct');
61 is($win2008->{qm}->{cores}, '1', 'win2008 VM cores are correct');
62
63 is($win10->{qm}->{name}, 'Win10-Liz', 'win10 VM name is correct');
64 is($win10->{qm}->{memory}, '6144', 'win10 VM memory is correct');
65 is($win10->{qm}->{cores}, '4', 'win10 VM cores are correct');
66
67 is($win10noNs->{qm}->{name}, 'Win10-Liz', 'win10 VM (no default rasd NS) name is correct');
68 is($win10noNs->{qm}->{memory}, '6144', 'win10 VM (no default rasd NS) memory is correct');
69 is($win10noNs->{qm}->{cores}, '4', 'win10 VM (no default rasd NS) cores are correct');
70
71 done_testing();