From: Michal Privoznik <[email protected]>

Our network has multiple means of forwarding the traffic and
'hostdev' is one of them. This mode means that the network is
configured to use a set of PCI devices which are then assigned to
individual domains to use (PCI device assignment). Now, as of
v12.0.0-61-gecb2e06bdf our test runners
(testCompareXMLToXMLFiles() and testCompareXMLToConfFiles()) call
networkValidateTests(). For aforementioned type of network this
means checking that the specified set of devices contains only
VFs (see v3.2.0-rc1~24 for more info). It is true that our
virpcimock is preloaded which mimics VFs, but our utils module
(virpci.c specifically) talks to sysfs to check various PCI
device attributes, including whether it's a VF.

This obviously works on Linux and doesn't work anywhere else.
Therefore, until our utils module is taught how to check PCI
attribs on other systems, make the "hostdev" test case expect
validation failure on non-Linux systems.

Signed-off-by: Michal Privoznik <[email protected]>
---
 tests/networkxmlconftest.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/tests/networkxmlconftest.c b/tests/networkxmlconftest.c
index b32a39c553..b74d5b14f5 100644
--- a/tests/networkxmlconftest.c
+++ b/tests/networkxmlconftest.c
@@ -313,7 +313,16 @@ mymain(void)
     DO_TEST("bandwidth-network");
     DO_TEST("openvswitch-net");
     DO_TEST_VALIDATE_ERROR("passthrough-pf");
+#ifdef __linux__
     DO_TEST("hostdev");
+#else
+    /* Our test runners call networkValidateTests() which for
+     * <forward mode='hostdev'/> means validating that PCI
+     * devices are VFs. It's done so by querying sysfs which
+     * obviously works on Linux only. Thus, expect a validation
+     * error elsewhere. */
+    DO_TEST_VALIDATE_ERROR("hostdev");
+#endif
     DO_TEST_FLAGS("hostdev-pf", VIR_NETWORK_XML_INACTIVE);
     DO_TEST_FLAGS("hostdev-pf-driver-model", VIR_NETWORK_XML_INACTIVE);
     DO_TEST("ptr-domains-auto");
-- 
2.52.0

Reply via email to