Skip to content

Commit 53518c5

Browse files
committed
Refactor SRIOV VFIO test to use dynamic driver verification
- Store original driver for each VF PCI device before test starts - Remove hardcoded 'mlx5_core' driver reference - Verify original driver is restored after device detach - Use get_pci_driver() function for dynamic driver detection - Improve test robustness by working with any original driver Signed-off-by: hholoubk <[email protected]> AI assisted code and commit. Human reviewed.
1 parent 8266542 commit 53518c5

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

libvirt/tests/src/sriov/plug_unplug/sriov_attach_detach_device_vfio_variant_driver.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ def parse_iface_dict(pf_pci):
5151
vm = env.get_vm(vm_name)
5252
new_xml = vm_xml.VMXML.new_from_inactive_dumpxml(vm.name)
5353
orig_vm_xml = new_xml.copy()
54+
original_drivers = {}
5455
try:
5556
libvirt_vmxml.remove_vm_devices_by_type(vm, 'interface')
5657
libvirt_vmxml.remove_vm_devices_by_type(vm, 'hostdev')
@@ -66,6 +67,10 @@ def parse_iface_dict(pf_pci):
6667
for idx in range(iface_number):
6768
test.log.info("TEST_STEP: Attach a hostdev interface/device to VM")
6869
vf_pci = utils_sriov.get_vf_pci_id(pf_pci, idx)
70+
if vf_pci not in original_drivers:
71+
original_driver = libvirt_vfio.get_pci_driver(vf_pci)
72+
original_drivers[vf_pci] = original_driver
73+
test.log.debug(f"Stored original driver for {vf_pci}: {original_driver}")
6974
iface_dict = parse_iface_dict(vf_pci)
7075
iface_dev = libvirt_vmxml.create_vm_device_by_type(device_type, iface_dict)
7176
virsh.attach_device(vm.name, iface_dev.xml, ignore_status=False,
@@ -99,7 +104,13 @@ def parse_iface_dict(pf_pci):
99104
"device!" % vm_hostdevs)
100105
else:
101106
test.log.debug("Verify: The hostdev interface/device in VM xml is removed successfully - PASS")
102-
libvirt_vfio.check_vfio_pci(vf_pci, exp_driver="mlx5_core")
107+
108+
# Verify original drivers are restored after detach
109+
for idx in range(iface_number):
110+
vf_pci = utils_sriov.get_vf_pci_id(pf_pci, idx)
111+
original_driver = original_drivers[vf_pci]
112+
libvirt_vfio.check_vfio_pci(vf_pci, exp_driver=original_driver)
113+
test.log.debug(f"Verify: Original driver {original_driver} restored for {vf_pci} - PASS")
103114
test.log.debug("Verify: Check VF driver successfully after detaching hostdev interface/device - PASS")
104115
virsh.reboot(vm.name, ignore_status=False, debug=True)
105116
test.log.debug("Verify: VM reboot is successful after detaching hostdev interface/device - PASS")

0 commit comments

Comments
 (0)