]> git.proxmox.com Git - qemu-server.git/blob - test/run_ovf_tests.pl
test: print more info when OVF parsing fails
[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
32 print "testing disks\n";
33
34 is($win2008->{disks}->[0]->{disk_address}, 'scsi0', 'multidisk vm has the correct first disk controller');
35 is($win2008->{disks}->[0]->{backing_file}, "$test_manifests/disk1.vmdk", 'multidisk vm has the correct first disk backing device');
36 is($win2008->{disks}->[0]->{virtual_size}, 2048, 'multidisk vm has the correct first disk size');
37
38 is($win2008->{disks}->[1]->{disk_address}, 'scsi1', 'multidisk vm has the correct second disk controller');
39 is($win2008->{disks}->[1]->{backing_file}, "$test_manifests/disk2.vmdk", 'multidisk vm has the correct second disk backing device');
40 is($win2008->{disks}->[1]->{virtual_size}, 2048, 'multidisk vm has the correct second disk size');
41
42 is($win10->{disks}->[0]->{disk_address}, 'scsi0', 'single disk vm has the correct disk controller');
43 is($win10->{disks}->[0]->{backing_file}, "$test_manifests/Win10-Liz-disk1.vmdk", 'single disk vm has the correct disk backing device');
44 is($win10->{disks}->[0]->{virtual_size}, 2048, 'single disk vm has the correct size');
45
46 print "\ntesting vm.conf extraction\n";
47
48 is($win2008->{qm}->{name}, 'Win2008-R2x64', 'win2008 VM name is correct');
49 is($win2008->{qm}->{memory}, '2048', 'win2008 VM memory is correct');
50 is($win2008->{qm}->{cores}, '1', 'win2008 VM cores are correct');
51
52 is($win10->{qm}->{name}, 'Win10-Liz', 'win10 VM name is correct');
53 is($win10->{qm}->{memory}, '6144', 'win10 VM memory is correct');
54 is($win10->{qm}->{cores}, '4', 'win10 VM cores are correct');
55
56 done_testing();