[PATCH 8/9] qemumigrationcookiexmltest: Add synthetic test case
Daniel Henrique Barboza
danielhb413 at gmail.com
Mon Nov 9 09:28:11 UTC 2020
On 10/30/20 1:47 PM, Peter Krempa wrote:
> Add a test case attempting to excercise the most of the cookie XML
s/excercise/exercise
Reviewed-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
> parsing/formatting infra. Note that the data is not based on any real
> case.
>
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
> .../full-xml2xml-in.xml | 221 ++++++++++++++++++
> .../full-xml2xml-out.xml | 219 +++++++++++++++++
> tests/qemumigrationcookiexmltest.c | 3 +-
> 3 files changed, 442 insertions(+), 1 deletion(-)
> create mode 100644 tests/qemumigrationcookiexmldata/full-xml2xml-in.xml
> create mode 100644 tests/qemumigrationcookiexmldata/full-xml2xml-out.xml
>
> diff --git a/tests/qemumigrationcookiexmldata/full-xml2xml-in.xml b/tests/qemumigrationcookiexmldata/full-xml2xml-in.xml
> new file mode 100644
> index 0000000000..f312018850
> --- /dev/null
> +++ b/tests/qemumigrationcookiexmldata/full-xml2xml-in.xml
> @@ -0,0 +1,221 @@
> +<qemu-migration>
> + <name>upstream</name>
> + <uuid>dcf47dbd-46d1-4d5b-b442-262a806a333a</uuid>
> + <hostname>hostname2</hostname>
> + <hostuuid>8b3f4dc4-6a8e-5f9b-94a5-4c35babd8d95</hostuuid>
> + <feature name='graphics'/>
> + <feature name='memory-hotplug'/>
> + <graphics type='spice' port='123' listen='test' tlsPort='321'>
> + <cert info='subject' value='testsubject'/>
> + </graphics>
> + <lockstate driver='blurb'>
> + <leases>leastest</leases>
> + </lockstate>
> + <domain type='kvm'>
> + <name>upstream</name>
> + <uuid>dcf47dbd-46d1-4d5b-b442-262a806a333a</uuid>
> + <memory unit='KiB'>1024000</memory>
> + <currentMemory unit='KiB'>1024000</currentMemory>
> + <memoryBacking>
> + <access mode='shared'/>
> + </memoryBacking>
> + <vcpu placement='auto' current='2'>8</vcpu>
> + <numatune>
> + <memory mode='strict' placement='auto'/>
> + </numatune>
> + <resource>
> + <partition>/machine</partition>
> + </resource>
> + <os>
> + <type arch='x86_64' machine='pc-i440fx-2.9'>hvm</type>
> + <bootmenu enable='yes'/>
> + </os>
> + <features>
> + <acpi/>
> + <apic/>
> + <vmport state='off'/>
> + </features>
> + <cpu>
> + <numa>
> + <cell id='0' cpus='0,2,4,6' memory='512000' unit='KiB'/>
> + <cell id='1' cpus='1,3,5,7' memory='512000' unit='KiB'/>
> + </numa>
> + </cpu>
> + <clock offset='utc'>
> + <timer name='rtc' tickpolicy='catchup'/>
> + <timer name='pit' tickpolicy='delay'/>
> + <timer name='hpet' present='no'/>
> + </clock>
> + <on_poweroff>destroy</on_poweroff>
> + <on_reboot>restart</on_reboot>
> + <on_crash>restart</on_crash>
> + <pm>
> + <suspend-to-mem enabled='no'/>
> + <suspend-to-disk enabled='no'/>
> + </pm>
> + <devices>
> + <emulator>/usr/bin/qemu-system-x86_64</emulator>
> + <disk type='file' device='disk'>
> + <driver name='qemu' type='qcow2' discard='unmap' detect_zeroes='on'/>
> + <auth username='testuser'>
> + <secret type='iscsi' usage='libvirtiscsi'/>
> + </auth>
> + <source file='/var/lib/libvirt/images/a.qcow2'/>
> + <backingStore type='file'>
> + <format type='qcow2'/>
> + <source file='/var/lib/libvirt/images/base.qcow2'>
> + <slices>
> + <slice type='storage' offset='1234' size='3456'/>
> + </slices>
> + <seclabel model='dac' relabel='yes'>
> + <label>qemu:qemu</label>
> + </seclabel>
> + <reservations managed='yes'/>
> + </source>
> + <backingStore/>
> + </backingStore>
> + <target dev='vdb' bus='virtio'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
> + </disk>
> + <disk type='file' device='cdrom'>
> + <driver name='qemu' type='raw'/>
> + <source file='/var/lib/libvirt/images/systemrescuecd-x86-4.9.5.iso'/>
> + <backingStore/>
> + <target dev='hda' bus='ide'/>
> + <readonly/>
> + <boot order='1'/>
> + <address type='drive' controller='0' bus='0' target='0' unit='0'/>
> + </disk>
> + <controller type='usb' index='0' model='ich9-ehci1'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x7'/>
> + </controller>
> + <controller type='usb' index='0' model='ich9-uhci1'>
> + <master startport='0'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0' multifunction='on'/>
> + </controller>
> + <controller type='usb' index='0' model='ich9-uhci2'>
> + <master startport='2'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x1'/>
> + </controller>
> + <controller type='usb' index='0' model='ich9-uhci3'>
> + <master startport='4'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x2'/>
> + </controller>
> + <controller type='virtio-serial' index='0'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
> + </controller>
> + <controller type='ide' index='0'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
> + </controller>
> + <controller type='scsi' index='0' model='lsilogic'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
> + </controller>
> + <controller type='fdc' index='0'/>
> + <interface type='network'>
> + <mac address='52:54:00:36:bd:3b'/>
> + <source network='default'/>
> + <model type='virtio'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
> + </interface>
> + <serial type='pty'>
> + <target type='isa-serial' port='0'>
> + <model name='isa-serial'/>
> + </target>
> + </serial>
> + <console type='pty'>
> + <target type='serial' port='0'/>
> + </console>
> + <channel type='unix'>
> + <target type='virtio' name='org.qemu.guest_agent.0'/>
> + <address type='virtio-serial' controller='0' bus='0' port='1'/>
> + </channel>
> + <channel type='spicevmc'>
> + <target type='virtio' name='com.redhat.spice.0'/>
> + <address type='virtio-serial' controller='0' bus='0' port='2'/>
> + </channel>
> + <input type='tablet' bus='usb'>
> + <address type='usb' bus='0' port='1'/>
> + </input>
> + <input type='mouse' bus='ps2'/>
> + <graphics type='spice' autoport='yes'>
> + <listen type='address'/>
> + <image compression='off'/>
> + </graphics>
> + <sound model='ich6'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
> + </sound>
> + <video>
> + <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
> + </video>
> + <hostdev mode='subsystem' type='scsi' managed='yes'>
> + <source protocol='iscsi' name='iqn.1992-01.com.example:storage/1'>
> + <host name='example.org' port='3260'/>
> + <auth username='myname'>
> + <secret type='iscsi' usage='mycluster_myname'/>
> + </auth>
> + </source>
> + <address type='drive' controller='0' bus='0' target='2' unit='4'/>
> + </hostdev>
> + <redirdev bus='usb' type='spicevmc'>
> + <address type='usb' bus='0' port='2'/>
> + </redirdev>
> + <redirdev bus='usb' type='spicevmc'>
> + <address type='usb' bus='0' port='3'/>
> + </redirdev>
> + <memballoon model='virtio'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
> + </memballoon>
> + <rng model='virtio'>
> + <backend model='random'>/dev/random</backend>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
> + </rng>
> + </devices>
> + <seclabel type='dynamic' model='dac' relabel='yes'/>
> + </domain>
> + <network>
> + <interface index='0' vporttype='midonet'>
> + <portdata>testportdata</portdata>
> + </interface>
> + </network>
> + <nbd port='456'>
> + <disk target='vda' capacity='123'/>
> + <disk target='vdb' capacity='1235'/>
> + </nbd>
> + <statistics>
> + <started>12345</started>
> + <stopped>54321</stopped>
> + <sent>986</sent>
> + <delta>7654</delta>
> + <time_elapsed>1</time_elapsed>
> + <downtime>11</downtime>
> + <setup_time>12</setup_time>
> + <memory_total>2</memory_total>
> + <memory_processed>3</memory_processed>
> + <memory_remaining>4</memory_remaining>
> + <memory_bps>5</memory_bps>
> + <memory_constant>51</memory_constant>
> + <memory_normal>52</memory_normal>
> + <memory_normal_bytes>53</memory_normal_bytes>
> + <memory_dirty_rate>6</memory_dirty_rate>
> + <memory_iteration>7</memory_iteration>
> + <memory_postcopy_requests>8</memory_postcopy_requests>
> + <memory_page_size>9</memory_page_size>
> + <disk_total>10</disk_total>
> + <disk_processed>11</disk_processed>
> + <disk_remaining>12</disk_remaining>
> + <disk_bps>13</disk_bps>
> + <compression_cache>131</compression_cache>
> + <compression_bytes>132</compression_bytes>
> + <compression_pages>133</compression_pages>
> + <compression_cache_misses>134</compression_cache_misses>
> + <compression_overflow>135</compression_overflow>
> + <auto_converge_throttle>14</auto_converge_throttle>
> + </statistics>
> + <cpu mode='host-passthrough' check='partial' migratable='on'/>
> + <allowReboot value='yes'/>
> + <capabilities>
> + <cap name='xbzrle' auto='yes'/>
> + <cap name='postcopy-ram' auto='no'/>
> + </capabilities>
> +</qemu-migration>
> diff --git a/tests/qemumigrationcookiexmldata/full-xml2xml-out.xml b/tests/qemumigrationcookiexmldata/full-xml2xml-out.xml
> new file mode 100644
> index 0000000000..a07dd1f147
> --- /dev/null
> +++ b/tests/qemumigrationcookiexmldata/full-xml2xml-out.xml
> @@ -0,0 +1,219 @@
> +<qemu-migration>
> + <name>upstream</name>
> + <uuid>dcf47dbd-46d1-4d5b-b442-262a806a333a</uuid>
> + <hostname>hostname</hostname>
> + <hostuuid>4a802f00-4cba-5df6-9679-a08c4c5b577f</hostuuid>
> + <graphics type='spice' port='123' listen='test' tlsPort='321'>
> + <cert info='subject' value='testsubject'/>
> + </graphics>
> + <lockstate driver='blurb'>
> + <leases>leastest</leases>
> + </lockstate>
> + <domain type='kvm'>
> + <name>upstream</name>
> + <uuid>dcf47dbd-46d1-4d5b-b442-262a806a333a</uuid>
> + <memory unit='KiB'>1024000</memory>
> + <currentMemory unit='KiB'>1024000</currentMemory>
> + <memoryBacking>
> + <access mode='shared'/>
> + </memoryBacking>
> + <vcpu placement='auto' current='2'>8</vcpu>
> + <numatune>
> + <memory mode='strict' placement='auto'/>
> + </numatune>
> + <resource>
> + <partition>/machine</partition>
> + </resource>
> + <os>
> + <type arch='x86_64' machine='pc-i440fx-2.9'>hvm</type>
> + <bootmenu enable='yes'/>
> + </os>
> + <features>
> + <acpi/>
> + <apic/>
> + <vmport state='off'/>
> + </features>
> + <cpu>
> + <numa>
> + <cell id='0' cpus='0,2,4,6' memory='512000' unit='KiB'/>
> + <cell id='1' cpus='1,3,5,7' memory='512000' unit='KiB'/>
> + </numa>
> + </cpu>
> + <clock offset='utc'>
> + <timer name='rtc' tickpolicy='catchup'/>
> + <timer name='pit' tickpolicy='delay'/>
> + <timer name='hpet' present='no'/>
> + </clock>
> + <on_poweroff>destroy</on_poweroff>
> + <on_reboot>restart</on_reboot>
> + <on_crash>restart</on_crash>
> + <pm>
> + <suspend-to-mem enabled='no'/>
> + <suspend-to-disk enabled='no'/>
> + </pm>
> + <devices>
> + <emulator>/usr/bin/qemu-system-x86_64</emulator>
> + <disk type='file' device='disk'>
> + <driver name='qemu' type='qcow2' discard='unmap' detect_zeroes='on'/>
> + <auth username='testuser'>
> + <secret type='iscsi' usage='libvirtiscsi'/>
> + </auth>
> + <source file='/var/lib/libvirt/images/a.qcow2'/>
> + <backingStore type='file'>
> + <format type='qcow2'/>
> + <source file='/var/lib/libvirt/images/base.qcow2'>
> + <slices>
> + <slice type='storage' offset='1234' size='3456'/>
> + </slices>
> + <seclabel model='dac' relabel='yes'>
> + <label>qemu:qemu</label>
> + </seclabel>
> + <reservations managed='yes'/>
> + </source>
> + <backingStore/>
> + </backingStore>
> + <target dev='vdb' bus='virtio'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
> + </disk>
> + <disk type='file' device='cdrom'>
> + <driver name='qemu' type='raw'/>
> + <source file='/var/lib/libvirt/images/systemrescuecd-x86-4.9.5.iso'/>
> + <backingStore/>
> + <target dev='hda' bus='ide'/>
> + <readonly/>
> + <boot order='1'/>
> + <address type='drive' controller='0' bus='0' target='0' unit='0'/>
> + </disk>
> + <controller type='usb' index='0' model='ich9-ehci1'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x7'/>
> + </controller>
> + <controller type='usb' index='0' model='ich9-uhci1'>
> + <master startport='0'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0' multifunction='on'/>
> + </controller>
> + <controller type='usb' index='0' model='ich9-uhci2'>
> + <master startport='2'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x1'/>
> + </controller>
> + <controller type='usb' index='0' model='ich9-uhci3'>
> + <master startport='4'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x2'/>
> + </controller>
> + <controller type='virtio-serial' index='0'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
> + </controller>
> + <controller type='ide' index='0'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
> + </controller>
> + <controller type='scsi' index='0' model='lsilogic'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
> + </controller>
> + <controller type='fdc' index='0'/>
> + <interface type='network'>
> + <mac address='52:54:00:36:bd:3b'/>
> + <source network='default'/>
> + <model type='virtio'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
> + </interface>
> + <serial type='pty'>
> + <target type='isa-serial' port='0'>
> + <model name='isa-serial'/>
> + </target>
> + </serial>
> + <console type='pty'>
> + <target type='serial' port='0'/>
> + </console>
> + <channel type='unix'>
> + <target type='virtio' name='org.qemu.guest_agent.0'/>
> + <address type='virtio-serial' controller='0' bus='0' port='1'/>
> + </channel>
> + <channel type='spicevmc'>
> + <target type='virtio' name='com.redhat.spice.0'/>
> + <address type='virtio-serial' controller='0' bus='0' port='2'/>
> + </channel>
> + <input type='tablet' bus='usb'>
> + <address type='usb' bus='0' port='1'/>
> + </input>
> + <input type='mouse' bus='ps2'/>
> + <graphics type='spice' autoport='yes'>
> + <listen type='address'/>
> + <image compression='off'/>
> + </graphics>
> + <sound model='ich6'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
> + </sound>
> + <video>
> + <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
> + </video>
> + <hostdev mode='subsystem' type='scsi' managed='yes'>
> + <source protocol='iscsi' name='iqn.1992-01.com.example:storage/1'>
> + <host name='example.org' port='3260'/>
> + <auth username='myname'>
> + <secret type='iscsi' usage='mycluster_myname'/>
> + </auth>
> + </source>
> + <address type='drive' controller='0' bus='0' target='2' unit='4'/>
> + </hostdev>
> + <redirdev bus='usb' type='spicevmc'>
> + <address type='usb' bus='0' port='2'/>
> + </redirdev>
> + <redirdev bus='usb' type='spicevmc'>
> + <address type='usb' bus='0' port='3'/>
> + </redirdev>
> + <memballoon model='virtio'>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
> + </memballoon>
> + <rng model='virtio'>
> + <backend model='random'>/dev/random</backend>
> + <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
> + </rng>
> + </devices>
> + <seclabel type='dynamic' model='dac' relabel='yes'/>
> + </domain>
> + <network>
> + <interface index='0' vporttype='midonet'>
> + <portdata>testportdata</portdata>
> + </interface>
> + </network>
> + <nbd port='456'>
> + <disk target='vda' capacity='123'/>
> + <disk target='vdb' capacity='1235'/>
> + </nbd>
> + <statistics>
> + <started>12345</started>
> + <stopped>54321</stopped>
> + <sent>986</sent>
> + <delta>7654</delta>
> + <time_elapsed>1</time_elapsed>
> + <downtime>11</downtime>
> + <setup_time>12</setup_time>
> + <memory_total>2</memory_total>
> + <memory_processed>3</memory_processed>
> + <memory_remaining>4</memory_remaining>
> + <memory_bps>5</memory_bps>
> + <memory_constant>51</memory_constant>
> + <memory_normal>52</memory_normal>
> + <memory_normal_bytes>53</memory_normal_bytes>
> + <memory_dirty_rate>6</memory_dirty_rate>
> + <memory_iteration>7</memory_iteration>
> + <memory_postcopy_requests>8</memory_postcopy_requests>
> + <memory_page_size>9</memory_page_size>
> + <disk_total>10</disk_total>
> + <disk_processed>11</disk_processed>
> + <disk_remaining>12</disk_remaining>
> + <disk_bps>13</disk_bps>
> + <compression_cache>131</compression_cache>
> + <compression_bytes>132</compression_bytes>
> + <compression_pages>133</compression_pages>
> + <compression_cache_misses>134</compression_cache_misses>
> + <compression_overflow>135</compression_overflow>
> + <auto_converge_throttle>14</auto_converge_throttle>
> + </statistics>
> + <cpu mode='host-passthrough' check='partial' migratable='on'/>
> + <allowReboot value='yes'/>
> + <capabilities>
> + <cap name='xbzrle' auto='yes'/>
> + <cap name='postcopy-ram' auto='no'/>
> + </capabilities>
> +</qemu-migration>
> diff --git a/tests/qemumigrationcookiexmltest.c b/tests/qemumigrationcookiexmltest.c
> index c8e40d127a..94762327aa 100644
> --- a/tests/qemumigrationcookiexmltest.c
> +++ b/tests/qemumigrationcookiexmltest.c
> @@ -317,7 +317,8 @@ mymain(void)
> if (testQemuMigrationCookieDom2XML("modern", "qemustatusxml2xmldata/modern-in.xml", 0, 0) < 0)
> ret = -1;
>
> - if (testQemuMigrationCookieXML2XML("basic", "qemustatusxml2xmldata/modern-in.xml", 0) < 0)
> + if (testQemuMigrationCookieXML2XML("basic", "qemustatusxml2xmldata/modern-in.xml", 0) < 0 ||
> + testQemuMigrationCookieXML2XML("full", "qemustatusxml2xmldata/modern-in.xml", 0) < 0)
> ret = -1;
>
> virBufferFreeAndReset(&testnamebuf);
>
More information about the libvir-list
mailing list