[PATCH v2 8/9] qemumigrationcookiexmltest: Add synthetic test case

Peter Krempa pkrempa at redhat.com
Wed Nov 4 13:25:44 UTC 2020


Add a test case attempting to excercise the most of the cookie XML
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 d8ed8b253c..3168da7e1c 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);
-- 
2.26.2




More information about the libvir-list mailing list