Even though we just introduced the rom.enabled attribute to
properly cover the use case, there might be guests out there
that use the only previously available way of disabling PCI
ROM loading by not opting in to schema validation.
To make sure such guests will keep working going forward,
introduce a test case covering the legacy workaround.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
.../qemuxml2argvdata/pci-rom-disabled-invalid.args | 1 +
.../qemuxml2argvdata/pci-rom-disabled-invalid.xml | 25 +++++++++++++++++++
tests/qemuxml2argvtest.c | 1 +
.../pci-rom-disabled-invalid.xml | 29 ++++++++++++++++++++++
tests/qemuxml2xmltest.c | 1 +
5 files changed, 57 insertions(+)
create mode 120000 tests/qemuxml2argvdata/pci-rom-disabled-invalid.args
create mode 100644 tests/qemuxml2argvdata/pci-rom-disabled-invalid.xml
create mode 100644 tests/qemuxml2xmloutdata/pci-rom-disabled-invalid.xml
diff --git a/tests/qemuxml2argvdata/pci-rom-disabled-invalid.args
b/tests/qemuxml2argvdata/pci-rom-disabled-invalid.args
new file mode 120000
index 0000000000..0dffe3c624
--- /dev/null
+++ b/tests/qemuxml2argvdata/pci-rom-disabled-invalid.args
@@ -0,0 +1 @@
+pci-rom-disabled.args
\ No newline at end of file
diff --git a/tests/qemuxml2argvdata/pci-rom-disabled-invalid.xml
b/tests/qemuxml2argvdata/pci-rom-disabled-invalid.xml
new file mode 100644
index 0000000000..5ef58d03ae
--- /dev/null
+++ b/tests/qemuxml2argvdata/pci-rom-disabled-invalid.xml
@@ -0,0 +1,25 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>c7a5fdbd-edaf-9466-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219100</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <controller type='pci' model='pci-root'/>
+ <controller type='usb' model='none'/>
+ <interface type='user'>
+ <mac address='52:54:00:24:a5:9f'/>
+ <model type='virtio'/>
+ <!--
+ This method of disabling PCI ROM loading is still supported
+ for backwards compatibility reasons, but <rom enabled='no'/>
+ should be used instead.
+ -->
+ <rom file=''/>
+ </interface>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index ae9893a84e..5b3bd4a996 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1555,6 +1555,7 @@ mymain(void)
QEMU_CAPS_DEVICE_VFIO_PCI);
DO_TEST("pci-rom", NONE);
DO_TEST("pci-rom-disabled", NONE);
+ DO_TEST("pci-rom-disabled-invalid", NONE);
DO_TEST_FULL("restore-v2", "exec:cat", 7, 0, 0, GIC_NONE, NONE);
DO_TEST_FULL("restore-v2-fd", "stdio", 7, 0, 0, GIC_NONE, NONE);
diff --git a/tests/qemuxml2xmloutdata/pci-rom-disabled-invalid.xml
b/tests/qemuxml2xmloutdata/pci-rom-disabled-invalid.xml
new file mode 100644
index 0000000000..745d19d8ad
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/pci-rom-disabled-invalid.xml
@@ -0,0 +1,29 @@
+<domain type='qemu'>
+ <name>guest</name>
+ <uuid>c7a5fdbd-edaf-9466-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <controller type='pci' index='0' model='pci-root'/>
+ <controller type='usb' index='0' model='none'/>
+ <interface type='user'>
+ <mac address='52:54:00:24:a5:9f'/>
+ <model type='virtio'/>
+ <rom file=''/>
+ <address type='pci' domain='0x0000' bus='0x00'
slot='0x03' function='0x0'/>
+ </interface>
+ <input type='mouse' bus='ps2'/>
+ <input type='keyboard' bus='ps2'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 6c1f0b0fa6..4b5aa2315e 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -475,6 +475,7 @@ mymain(void)
DO_TEST("hostdev-mdev-precreated", NONE);
DO_TEST("pci-rom", NONE);
DO_TEST("pci-rom-disabled", NONE);
+ DO_TEST("pci-rom-disabled-invalid", NONE);
DO_TEST("pci-serial-dev-chardev", NONE);
DO_TEST("encrypted-disk", NONE);
--
2.14.3