Kernel structure looks slightly different than what virpcimock creates. This did not use to be a problem, because we are testing KVM device assignment even though majority of systems we run on (if not all of them) use VFIO assignment. In order to switch our test suite (mainly virhostdevtest and virpcitest) to test VFIO assignment, the virpcimock must be fixed. Firstly, it needs to create symlinks under /sys/kernel/iommu_groups/... directories (patch 13/18) so that virhostdev module can iterate over them. Secondly, it needs to create 'driver_override' file (which exists since kernel-3.16.0) so that the virtual environment the mock creates matches real up to date systems (patch 03/18). Funny thing is, that enhancing the mock uncovered a bug we had (fix is in 15/18) and also one latent bug (14/18). As usual, these patches can be found on my github too: https://github.com/zippy2/libvirt/tree/virpcimock and just for the fun of it, here's the latest travis build of that branch: https://travis-ci.org/zippy2/libvirt/builds/571752953 Michal Prívozník (18): virpcimock: Move actions checking one level up Revert "virpcitest: Test virPCIDeviceDetach failure" virpcimock: Create driver_override file in device dirs virpcimock: Drop needless typecast virpcimock: Use VIR_AUTOFREE() virpcimock: Eliminate use of @fakesysfspcidir virpcimock: Rename @fakesysfspcidir virpcimock: Create devices/ and drivers/ under /sys/bus/pci upfront virpcimock: Introduce and use pci_device_get_path() virpcimock: Introduce and use pci_driver_get_path() virpcimock: Store PCI address as ints not string virpcimock: Create PCI devices under /sys/devices/pci* virpcimock: Create symlink in /sys/kernel/iommu_groups/N/devices dir virhostdev: Check driver name too in virHostdevIsPCINodeDeviceUsed() virhostdev: Unify virHostdevPreparePCIDevices behaviour for KVM and VFIO cases qemuxml2argvtest: Switch to modern vfio backend virhostdevtest: Use modern VFIO virpcitest: Use modern VFIO src/util/virhostdev.c | 26 +- .../hostdev-pci-address-device.args | 2 +- .../qemuxml2argvdata/hostdev-pci-address.args | 2 +- .../net-hostdev-bootorder.args | 3 +- .../net-hostdev-multidomain.args | 2 +- tests/qemuxml2argvdata/net-hostdev.args | 2 +- tests/qemuxml2argvdata/pci-rom.args | 4 +- tests/qemuxml2argvtest.c | 14 +- tests/virhostdevtest.c | 4 +- tests/virpcimock.c | 394 ++++++++++++------ tests/virpcitest.c | 48 +-- 11 files changed, 304 insertions(+), 197 deletions(-)