Testing

The local test environment assumes passwordless sudo, matching typical DevStack usage.

Host loopback smoke test

$ make -C pci-sim modules
$ sudo modprobe vfio-pci
$ sudo insmod pci-sim/fake_pci_sriov.ko
$ sudo pci-sim/test_pci_sim_loopback.py
$ sudo pci-sim/cleanup_fake_pci_sriov.sh

QEMU/VFIO smoke test

$ make -C pci-sim modules
$ MODULE=./pci-sim/fake_pci_sriov.ko pci-sim/run_fake_pci_qemu_vfio_smoke.sh

The QEMU helpers bind a fake VF to pci_sim_vfio_pci and verify that QEMU can start with the assigned VF. CirrOS-based helpers are also included for guest-level UART loopback testing.

DevStack Nova/Cyborg serial echo test

After stacking with the pci-sim DevStack plugin and its generated test flavors, run the end-to-end helper from the repository root:

$ tools/run-devstack-serial-echo-test.sh

The helper uses openstack --os-cloud devstack-admin by default. It creates one VM at a time on the private network using the pci-sim-nova and pci-sim-cyborg flavors, opens the current project’s default security group for ICMP and SSH, attaches a temporary floating IP, SSHes into CirrOS with the default cirros/gocubsgo credentials, verifies the passed-through serial PCI device, checks the UART echo path, and then deletes the test VM and tagged floating IP. Use --cleanup to remove leftovers from interrupted runs.