[pve-devel] [PATCH qemu-server v4 4/5] Add tests for ovfimport function

Wolfgang Bumiller w.bumiller at proxmox.com
Thu Apr 27 12:21:15 CEST 2017


On Thu, Mar 30, 2017 at 04:51:24PM +0200, Emmanuel Kasper wrote:
> This includes:
>  * a test script
> 
>  * the manifests generated by exports from a VmWare Workstation
> 
>  *  disk images are generated from qemu-img, with a 2KB size
> (it is possible to inspect the disk images with od -bc
> they contain a VMDK header and the rest are null characters)
> ---
>  test/Makefile                                |   3 +
>  test/ovf_manifests/Win10-Liz-disk1.vmdk      | Bin 0 -> 65536 bytes
>  test/ovf_manifests/Win10-Liz.ovf             | 142 ++++++++++++++++++++++++++
>  test/ovf_manifests/Win_2008_R2_two-disks.ovf | 145 +++++++++++++++++++++++++++
>  test/ovf_manifests/disk1.vmdk                | Bin 0 -> 65536 bytes
>  test/ovf_manifests/disk2.vmdk                | Bin 0 -> 65536 bytes
>  test/run_ovf_tests.pl                        |  41 ++++++++
>  7 files changed, 331 insertions(+)
>  create mode 100644 test/ovf_manifests/Win10-Liz-disk1.vmdk
>  create mode 100755 test/ovf_manifests/Win10-Liz.ovf
>  create mode 100755 test/ovf_manifests/Win_2008_R2_two-disks.ovf
>  create mode 100644 test/ovf_manifests/disk1.vmdk
>  create mode 100644 test/ovf_manifests/disk2.vmdk
>  create mode 100755 test/run_ovf_tests.pl
> 
> diff --git a/test/Makefile b/test/Makefile
> index b44d1d7..b7dc89b 100644
> --- a/test/Makefile
> +++ b/test/Makefile
> @@ -4,3 +4,6 @@ test: test_snapshot
>  
>  test_snapshot: run_snapshot_tests.pl
>  	./run_snapshot_tests.pl
> +
> +test_ovf: run_ovf_tests.pl
> +	./run_ovf_tests.pl
> \ No newline at end of file
> diff --git a/test/ovf_manifests/Win10-Liz-disk1.vmdk b/test/ovf_manifests/Win10-Liz-disk1.vmdk
> new file mode 100644
> index 0000000000000000000000000000000000000000..662354a3d1333a2f6c4364005e53bfe7cd8b9044
> GIT binary patch
> literal 65536
> zcmeIvy>HV%7zbeUF`dK)46s<q+^B&Pi6H|eMIb;zP1VdMK8V$P$u?2T)IS|NNta69
> zSXw<No$qu%-}$}AUq|21A0<ihr0Gwa-nQ%QGfCR at wmshsN%A;JUhL<u_T%+U7Sd<o
> zW^TMU0^M{}R2S(eR at 1Ur*Q at eVF^^#r%c at u{hyC#J%V?Nq?*?z)=UG^1Wn9+n(yx6B
> z(=ujtJiA)QVP~;guI5EOE2iV-%_??6=%y!^b+aeU_aA6Z4X2azC>{U!a5_FoJCkDB
> zKRozW{5{B<Li)YUBEQ&fJe$RRZCRbA$5|CacQiT<A<uvIHbq(g$>yIY=etVNVcI$B
> zY@^?CwTN|j)tg?;i)G&AZFqPqoW(5P2K~XUq>9sqVVe!!?y at Y;)^#k~TefEvd2_XU
> z^M at 5mfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk4^iOdL%ftb
> z5g<T-009C72;3>~`p!f^fB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
> zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
> zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7
> z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N
> p0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK;Zui`~%h>XmtPp
> 
> literal 0
> HcmV?d00001
> 
> diff --git a/test/ovf_manifests/Win10-Liz.ovf b/test/ovf_manifests/Win10-Liz.ovf
> new file mode 100755
> index 0000000..46642c0
> --- /dev/null
> +++ b/test/ovf_manifests/Win10-Liz.ovf
> @@ -0,0 +1,142 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!--Generated by VMware ovftool 4.1.0 (build-2982904), UTC time: 2017-02-07T13:50:15.265014Z-->
> +<Envelope vmw:buildId="build-2982904" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> +  <References>
> +    <File ovf:href="Win10-Liz-disk1.vmdk" ovf:id="file1" ovf:size="9155243008"/>
> +  </References>
> +  <DiskSection>
> +    <Info>Virtual disk information</Info>
> +    <Disk ovf:capacity="128" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="16798056448"/>
> +  </DiskSection>
> +  <NetworkSection>
> +    <Info>The list of logical networks</Info>
> +    <Network ovf:name="bridged">
> +      <Description>The bridged network</Description>
> +    </Network>
> +  </NetworkSection>
> +  <VirtualSystem ovf:id="vm">
> +    <Info>A virtual machine</Info>
> +    <Name>Win10-Liz</Name>
> +    <OperatingSystemSection ovf:id="1" vmw:osType="windows9_64Guest">
> +      <Info>The kind of installed guest operating system</Info>
> +    </OperatingSystemSection>
> +    <VirtualHardwareSection>
> +      <Info>Virtual hardware requirements</Info>
> +      <System>
> +        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
> +        <vssd:InstanceID>0</vssd:InstanceID>
> +        <vssd:VirtualSystemIdentifier>Win10-Liz</vssd:VirtualSystemIdentifier>
> +        <vssd:VirtualSystemType>vmx-11</vssd:VirtualSystemType>
> +      </System>
> +      <Item>
> +        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
> +        <rasd:Description>Number of Virtual CPUs</rasd:Description>
> +        <rasd:ElementName>4 virtual CPU(s)</rasd:ElementName>
> +        <rasd:InstanceID>1</rasd:InstanceID>
> +        <rasd:ResourceType>3</rasd:ResourceType>
> +        <rasd:VirtualQuantity>4</rasd:VirtualQuantity>
> +      </Item>
> +      <Item>
> +        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
> +        <rasd:Description>Memory Size</rasd:Description>
> +        <rasd:ElementName>6144MB of memory</rasd:ElementName>
> +        <rasd:InstanceID>2</rasd:InstanceID>
> +        <rasd:ResourceType>4</rasd:ResourceType>
> +        <rasd:VirtualQuantity>6144</rasd:VirtualQuantity>
> +      </Item>
> +      <Item>
> +        <rasd:Address>0</rasd:Address>
> +        <rasd:Description>SATA Controller</rasd:Description>
> +        <rasd:ElementName>sataController0</rasd:ElementName>
> +        <rasd:InstanceID>3</rasd:InstanceID>
> +        <rasd:ResourceSubType>vmware.sata.ahci</rasd:ResourceSubType>
> +        <rasd:ResourceType>20</rasd:ResourceType>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:Address>0</rasd:Address>
> +        <rasd:Description>USB Controller (XHCI)</rasd:Description>
> +        <rasd:ElementName>usb3</rasd:ElementName>
> +        <rasd:InstanceID>4</rasd:InstanceID>
> +        <rasd:ResourceSubType>vmware.usb.xhci</rasd:ResourceSubType>
> +        <rasd:ResourceType>23</rasd:ResourceType>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:Address>0</rasd:Address>
> +        <rasd:Description>USB Controller (EHCI)</rasd:Description>
> +        <rasd:ElementName>usb</rasd:ElementName>
> +        <rasd:InstanceID>5</rasd:InstanceID>
> +        <rasd:ResourceSubType>vmware.usb.ehci</rasd:ResourceSubType>
> +        <rasd:ResourceType>23</rasd:ResourceType>
> +        <vmw:Config ovf:required="false" vmw:key="ehciEnabled" vmw:value="true"/>
> +      </Item>
> +      <Item>
> +        <rasd:Address>0</rasd:Address>
> +        <rasd:Description>SCSI Controller</rasd:Description>
> +        <rasd:ElementName>scsiController0</rasd:ElementName>
> +        <rasd:InstanceID>6</rasd:InstanceID>
> +        <rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>
> +        <rasd:ResourceType>6</rasd:ResourceType>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
> +        <rasd:ElementName>serial0</rasd:ElementName>
> +        <rasd:InstanceID>7</rasd:InstanceID>
> +        <rasd:ResourceType>21</rasd:ResourceType>
> +        <vmw:Config ovf:required="false" vmw:key="yieldOnPoll" vmw:value="false"/>
> +      </Item>
> +      <Item>
> +        <rasd:AddressOnParent>0</rasd:AddressOnParent>
> +        <rasd:ElementName>disk0</rasd:ElementName>
> +        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>
> +        <rasd:InstanceID>8</rasd:InstanceID>
> +        <rasd:Parent>6</rasd:Parent>
> +        <rasd:ResourceType>17</rasd:ResourceType>
> +      </Item>
> +      <Item>
> +        <rasd:AddressOnParent>2</rasd:AddressOnParent>
> +        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
> +        <rasd:Connection>bridged</rasd:Connection>
> +        <rasd:Description>E1000e ethernet adapter on "bridged"</rasd:Description>
> +        <rasd:ElementName>ethernet0</rasd:ElementName>
> +        <rasd:InstanceID>9</rasd:InstanceID>
> +        <rasd:ResourceSubType>E1000e</rasd:ResourceSubType>
> +        <rasd:ResourceType>10</rasd:ResourceType>
> +        <vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="false"/>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> +        <rasd:ElementName>sound</rasd:ElementName>
> +        <rasd:InstanceID>10</rasd:InstanceID>
> +        <rasd:ResourceSubType>vmware.soundcard.hdaudio</rasd:ResourceSubType>
> +        <rasd:ResourceType>1</rasd:ResourceType>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> +        <rasd:ElementName>video</rasd:ElementName>
> +        <rasd:InstanceID>11</rasd:InstanceID>
> +        <rasd:ResourceType>24</rasd:ResourceType>
> +        <vmw:Config ovf:required="false" vmw:key="enable3DSupport" vmw:value="true"/>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> +        <rasd:ElementName>vmci</rasd:ElementName>
> +        <rasd:InstanceID>12</rasd:InstanceID>
> +        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>
> +        <rasd:ResourceType>1</rasd:ResourceType>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:AddressOnParent>1</rasd:AddressOnParent>
> +        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> +        <rasd:ElementName>cdrom0</rasd:ElementName>
> +        <rasd:InstanceID>13</rasd:InstanceID>
> +        <rasd:Parent>3</rasd:Parent>
> +        <rasd:ResourceType>15</rasd:ResourceType>
> +      </Item>
> +      <vmw:Config ovf:required="false" vmw:key="memoryHotAddEnabled" vmw:value="true"/>
> +      <vmw:Config ovf:required="false" vmw:key="powerOpInfo.powerOffType" vmw:value="soft"/>
> +      <vmw:Config ovf:required="false" vmw:key="powerOpInfo.resetType" vmw:value="soft"/>
> +      <vmw:Config ovf:required="false" vmw:key="powerOpInfo.suspendType" vmw:value="soft"/>
> +      <vmw:Config ovf:required="false" vmw:key="tools.syncTimeWithHost" vmw:value="false"/>
> +    </VirtualHardwareSection>
> +  </VirtualSystem>
> +</Envelope>
> \ No newline at end of file
> diff --git a/test/ovf_manifests/Win_2008_R2_two-disks.ovf b/test/ovf_manifests/Win_2008_R2_two-disks.ovf
> new file mode 100755
> index 0000000..a563aab
> --- /dev/null
> +++ b/test/ovf_manifests/Win_2008_R2_two-disks.ovf
> @@ -0,0 +1,145 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<!--Generated by VMware ovftool 4.1.0 (build-2982904), UTC time: 2017-02-27T15:09:29.768974Z-->
> +<Envelope vmw:buildId="build-2982904" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> +  <References>
> +    <File ovf:href="disk1.vmdk" ovf:id="file1" ovf:size="3481968640"/>
> +    <File ovf:href="disk2.vmdk" ovf:id="file2" ovf:size="68096"/>
> +  </References>
> +  <DiskSection>
> +    <Info>Virtual disk information</Info>
> +    <Disk ovf:capacity="40" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="7684882432"/>
> +    <Disk ovf:capacity="1" ovf:capacityAllocationUnits="byte * 2^30" ovf:diskId="vmdisk2" ovf:fileRef="file2" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" ovf:populatedSize="0"/>
> +  </DiskSection>
> +  <NetworkSection>
> +    <Info>The list of logical networks</Info>
> +    <Network ovf:name="bridged">
> +      <Description>The bridged network</Description>
> +    </Network>
> +  </NetworkSection>
> +  <VirtualSystem ovf:id="vm">
> +    <Info>A virtual machine</Info>
> +    <Name>Win_2008-R2x64</Name>
> +    <OperatingSystemSection ovf:id="103" vmw:osType="windows7Server64Guest">
> +      <Info>The kind of installed guest operating system</Info>
> +    </OperatingSystemSection>
> +    <VirtualHardwareSection>
> +      <Info>Virtual hardware requirements</Info>
> +      <System>
> +        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
> +        <vssd:InstanceID>0</vssd:InstanceID>
> +        <vssd:VirtualSystemIdentifier>Win_2008-R2x64</vssd:VirtualSystemIdentifier>
> +        <vssd:VirtualSystemType>vmx-11</vssd:VirtualSystemType>
> +      </System>
> +      <Item>
> +        <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
> +        <rasd:Description>Number of Virtual CPUs</rasd:Description>
> +        <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>
> +        <rasd:InstanceID>1</rasd:InstanceID>
> +        <rasd:ResourceType>3</rasd:ResourceType>
> +        <rasd:VirtualQuantity>1</rasd:VirtualQuantity>
> +      </Item>
> +      <Item>
> +        <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
> +        <rasd:Description>Memory Size</rasd:Description>
> +        <rasd:ElementName>2048MB of memory</rasd:ElementName>
> +        <rasd:InstanceID>2</rasd:InstanceID>
> +        <rasd:ResourceType>4</rasd:ResourceType>
> +        <rasd:VirtualQuantity>2048</rasd:VirtualQuantity>
> +      </Item>
> +      <Item>
> +        <rasd:Address>0</rasd:Address>
> +        <rasd:Description>SATA Controller</rasd:Description>
> +        <rasd:ElementName>sataController0</rasd:ElementName>
> +        <rasd:InstanceID>3</rasd:InstanceID>
> +        <rasd:ResourceSubType>vmware.sata.ahci</rasd:ResourceSubType>
> +        <rasd:ResourceType>20</rasd:ResourceType>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:Address>0</rasd:Address>
> +        <rasd:Description>USB Controller (EHCI)</rasd:Description>
> +        <rasd:ElementName>usb</rasd:ElementName>
> +        <rasd:InstanceID>4</rasd:InstanceID>
> +        <rasd:ResourceSubType>vmware.usb.ehci</rasd:ResourceSubType>
> +        <rasd:ResourceType>23</rasd:ResourceType>
> +        <vmw:Config ovf:required="false" vmw:key="ehciEnabled" vmw:value="true"/>
> +      </Item>
> +      <Item>
> +        <rasd:Address>0</rasd:Address>
> +        <rasd:Description>SCSI Controller</rasd:Description>
> +        <rasd:ElementName>scsiController0</rasd:ElementName>
> +        <rasd:InstanceID>5</rasd:InstanceID>
> +        <rasd:ResourceSubType>lsilogicsas</rasd:ResourceSubType>
> +        <rasd:ResourceType>6</rasd:ResourceType>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
> +        <rasd:ElementName>serial0</rasd:ElementName>
> +        <rasd:InstanceID>6</rasd:InstanceID>
> +        <rasd:ResourceType>21</rasd:ResourceType>
> +        <vmw:Config ovf:required="false" vmw:key="yieldOnPoll" vmw:value="false"/>
> +      </Item>
> +      <Item>
> +        <rasd:AddressOnParent>0</rasd:AddressOnParent>
> +        <rasd:ElementName>disk0</rasd:ElementName>
> +        <rasd:HostResource>ovf:/disk/vmdisk1</rasd:HostResource>
> +        <rasd:InstanceID>7</rasd:InstanceID>
> +        <rasd:Parent>5</rasd:Parent>
> +        <rasd:ResourceType>17</rasd:ResourceType>
> +      </Item>
> +      <Item>
> +        <rasd:AddressOnParent>1</rasd:AddressOnParent>
> +        <rasd:ElementName>disk1</rasd:ElementName>
> +        <rasd:HostResource>ovf:/disk/vmdisk2</rasd:HostResource>
> +        <rasd:InstanceID>8</rasd:InstanceID>
> +        <rasd:Parent>5</rasd:Parent>
> +        <rasd:ResourceType>17</rasd:ResourceType>
> +      </Item>
> +      <Item>
> +        <rasd:AddressOnParent>2</rasd:AddressOnParent>
> +        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
> +        <rasd:Connection>bridged</rasd:Connection>
> +        <rasd:Description>E1000 ethernet adapter on "bridged"</rasd:Description>
> +        <rasd:ElementName>ethernet0</rasd:ElementName>
> +        <rasd:InstanceID>9</rasd:InstanceID>
> +        <rasd:ResourceSubType>E1000</rasd:ResourceSubType>
> +        <rasd:ResourceType>10</rasd:ResourceType>
> +        <vmw:Config ovf:required="false" vmw:key="wakeOnLanEnabled" vmw:value="false"/>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> +        <rasd:ElementName>sound</rasd:ElementName>
> +        <rasd:InstanceID>10</rasd:InstanceID>
> +        <rasd:ResourceSubType>vmware.soundcard.hdaudio</rasd:ResourceSubType>
> +        <rasd:ResourceType>1</rasd:ResourceType>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> +        <rasd:ElementName>video</rasd:ElementName>
> +        <rasd:InstanceID>11</rasd:InstanceID>
> +        <rasd:ResourceType>24</rasd:ResourceType>
> +        <vmw:Config ovf:required="false" vmw:key="enable3DSupport" vmw:value="true"/>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> +        <rasd:ElementName>vmci</rasd:ElementName>
> +        <rasd:InstanceID>12</rasd:InstanceID>
> +        <rasd:ResourceSubType>vmware.vmci</rasd:ResourceSubType>
> +        <rasd:ResourceType>1</rasd:ResourceType>
> +      </Item>
> +      <Item ovf:required="false">
> +        <rasd:AddressOnParent>1</rasd:AddressOnParent>
> +        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
> +        <rasd:ElementName>cdrom0</rasd:ElementName>
> +        <rasd:InstanceID>13</rasd:InstanceID>
> +        <rasd:Parent>3</rasd:Parent>
> +        <rasd:ResourceType>15</rasd:ResourceType>
> +      </Item>
> +      <vmw:Config ovf:required="false" vmw:key="cpuHotAddEnabled" vmw:value="true"/>
> +      <vmw:Config ovf:required="false" vmw:key="memoryHotAddEnabled" vmw:value="true"/>
> +      <vmw:Config ovf:required="false" vmw:key="powerOpInfo.powerOffType" vmw:value="soft"/>
> +      <vmw:Config ovf:required="false" vmw:key="powerOpInfo.resetType" vmw:value="soft"/>
> +      <vmw:Config ovf:required="false" vmw:key="powerOpInfo.suspendType" vmw:value="soft"/>
> +      <vmw:Config ovf:required="false" vmw:key="tools.syncTimeWithHost" vmw:value="false"/>
> +    </VirtualHardwareSection>
> +  </VirtualSystem>
> +</Envelope>
> diff --git a/test/ovf_manifests/disk1.vmdk b/test/ovf_manifests/disk1.vmdk
> new file mode 100644
> index 0000000000000000000000000000000000000000..8660602343a1a955f9bcf2e6beaed99316dd8167
> GIT binary patch
> literal 65536
> zcmeIvy>HV%7zbeUF`dK)46s<q9ua7|WuUkSgpg2EwX+*viPe0`HWAtSr(-ASlAWQ|
> zbJF?F{+-YFKK_yYyn2=-$&0qXY<t)4ch at B8o_Fo_en^t%N%H0}e|H$~AF`0X3J-JR
> zqY>z*Sy|tuS*)j3xo%d~*K!`iCRTO1T8 at X|%lB-2b2}Q2@{gmi&a1d=x<|K%7N%9q
> zn|Qfh$8m45TCV10Gb^W)c4ZxVA at tMpzfJp2S{y#m?iwzx)01 at a>+{9rJna?j=ZAyM
> zqPW{FznsOxiSi~-&+<BkewLkuP!u<VO<6U6^7*&xtNr=XaoRiS?V{gtwTMl%9Za|L
> za#^%_7k)SjXE85!!SM7bspGUQewUqo+Glx at ubWtPwRL-yMO)CL`L7O2fB*pk1PBly
> zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pkPg~&a(=JbS1PBlyK!5-N0!ISx
> zkM7+PAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+
> z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly
> zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF
> z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
> d1PBlyK!5-N0t5&UAV7cs0RjXF5cr=0{{Ra(Wheju
> 
> literal 0
> HcmV?d00001
> 
> diff --git a/test/ovf_manifests/disk2.vmdk b/test/ovf_manifests/disk2.vmdk
> new file mode 100644
> index 0000000000000000000000000000000000000000..c4634513348b392202898374f1c8d2d51d565b27
> GIT binary patch
> literal 65536
> zcmeIvy>HV%7zbeUF`dK)46s<q9#IIDI%J at v2!xPOQ?;`jUy0Rx$u<$$`lr`+(j_}X
> ztLLQio&7tX?|uAp{Oj^rk|Zyh{<7(9yX&q=(mrq7>)ntf&y(cMe*SJh-aTX?eH9+&
> z#z!O2Psc at dn~q~OEsJ%%D!&!;7&fu2iq&#-6u$l#k8ZBB&%=0f64qH6mv#5(X4k^B
> zj9DEow(B_REmq6byr^fzbkeM>VlRY#diJkw-bwTQ2bx{O`BgehC%?a(PtMX_-hBS!
> zV6(_?yX6<NxIa-=XX$BH#n2y*PeaJ_>%pcd>%ZCj`_<*{eCa6d4SQYmC$1K;F1Lf}
> zc3v#=CU3(J2jMJcc^4cVA0$<rHpO?@@uyvu<=MK9Wm{XjSCKabJ(~aOpacjIAV7cs
> z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAn>#W-ahT}R7ZdS0RjXF5Fl_M
> z at c!W5Edc at q2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk
> z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs
> z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ
> zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U
> eAV7cs0RjXF5FkK+009C72oNAZfB=F2DR2*l=VfOA
> 
> literal 0
> HcmV?d00001
> 
> diff --git a/test/run_ovf_tests.pl b/test/run_ovf_tests.pl
> new file mode 100755
> index 0000000..2705804
> --- /dev/null
> +++ b/test/run_ovf_tests.pl
> @@ -0,0 +1,41 @@
> +#!/usr/bin/perl
> +
> +use strict;
> +use warnings;

Needs a `use lib qw(..);` here, otherwise it uses the installed version.

> +
> +use FindBin '$Bin';
> +use PVE::QemuServer::OVF;
> +use Test::More;
> +
> +use Data::Dumper;
> +
> +my $test_manifests = join ('/', $Bin, 'ovf_manifests');
> +
> +my $win2008 = PVE::QemuServer::OVF::parse_ovf("$test_manifests/Win_2008_R2_two-disks.ovf");
> +my $win10 = PVE::QemuServer::OVF::parse_ovf("$test_manifests/Win10-Liz.ovf");
> +
> +print "testing disks\n";
> +
> +is($win2008->{disks}->[0]->{disk_address}, 'scsi0', 'multidisk vm has the correct first disk controller');
> +is($win2008->{disks}->[0]->{backing_file}, "$test_manifests/disk1.vmdk", 'multidisk vm has the correct first disk backing device');
> +is($win2008->{disks}->[0]->{virtual_size}, 2048, 'multidisk vm has the correct first disk size');
> +
> +is($win2008->{disks}->[1]->{disk_address}, 'scsi1', 'multidisk vm has the correct second disk controller');
> +is($win2008->{disks}->[1]->{backing_file}, "$test_manifests/disk2.vmdk", 'multidisk vm has the correct second disk backing device');
> +is($win2008->{disks}->[1]->{virtual_size}, 2048, 'multidisk vm has the correct second disk size');
> +
> +is($win10->{disks}->[0]->{disk_address}, 'scsi0', 'single disk vm has the correct disk controller');
> +is($win10->{disks}->[0]->{backing_file}, "$test_manifests/Win10-Liz-disk1.vmdk", 'single disk vm has the correct disk backing device');
> +is($win10->{disks}->[0]->{virtual_size}, 2048, 'single disk vm has the correct size');
> +
> +print "\ntesting vm.conf extraction\n";
> +
> +is($win2008->{qm}->{name}, 'Win2008-R2x64', 'win2008 VM name is correct');
> +is($win2008->{qm}->{memory}, '2048', 'win2008 VM memory is correct');
> +is($win2008->{qm}->{cores}, '1', 'win2008 VM cores are correct');
> +
> +is($win10->{qm}->{name}, 'Win10-Liz', 'win10 VM name is correct');
> +is($win10->{qm}->{memory}, '6144', 'win10 VM memory is correct');
> +is($win10->{qm}->{cores}, '4', 'win10 VM cores are correct');
> +
> +done_testing();
> -- 
> 2.1.4
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel




More information about the pve-devel mailing list