From 43642d8df8d3edefd09f1bbed89693645ffc225d Mon Sep 17 00:00:00 2001 From: Wei Liu Date: Thu, 19 Mar 2026 17:01:32 +0000 Subject: [PATCH] tests: Make test_virtio_mmu more flexible We only verify devices are under some group but not which one. With the change, the acpi variable is only needed for aarch64. Add an underscore prefix to avoid a compilation warning on x86_64. Signed-off-by: Wei Liu --- cloud-hypervisor/tests/integration.rs | 38 ++++++++++----------------- 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/cloud-hypervisor/tests/integration.rs b/cloud-hypervisor/tests/integration.rs index a0f333376..3e2a33da7 100644 --- a/cloud-hypervisor/tests/integration.rs +++ b/cloud-hypervisor/tests/integration.rs @@ -2128,7 +2128,7 @@ fn vm_state(api_socket: &str) -> String { // The last interesting part of this test is that it exercises the network // interface attached to the virtual IOMMU since this is the one used to // send all commands through SSH. -fn _test_virtio_iommu(acpi: bool) { +fn _test_virtio_iommu(_acpi: bool /* not needed on x86_64 */) { // Virtio-iommu support is ready in recent kernel (v5.14). But the kernel in // Focal image is still old. // So if ACPI is enabled on AArch64, we use a modified Focal image in which @@ -2143,7 +2143,7 @@ fn _test_virtio_iommu(acpi: bool) { #[cfg(target_arch = "x86_64")] let kernel_path = direct_kernel_boot_path(); #[cfg(target_arch = "aarch64")] - let kernel_path = if acpi { + let kernel_path = if _acpi { edk2_path() } else { direct_kernel_boot_path() @@ -2187,39 +2187,29 @@ fn _test_virtio_iommu(acpi: bool) { // All devices on the PCI bus will be attached to the virtual IOMMU, except the // virtio-iommu device itself. So these devices will all be added to IOMMU groups, // and appear under folder '/sys/kernel/iommu_groups/'. - // The result is, in the case of FDT, IOMMU group '0' contains "0000:00:01.0" - // which is the console. The first disk "0000:00:02.0" is in group '1'. - // While on ACPI, console device is not attached to IOMMU. So the IOMMU group '0' - // contains "0000:00:02.0" which is the first disk. // - // Verify the iommu group of the first disk. - let iommu_group = if acpi { 0 } else { 2 }; - assert_eq!( + // Verify the first disk is in an iommu group. + assert!( guest - .ssh_command(format!("ls /sys/kernel/iommu_groups/{iommu_group}/devices").as_str()) + .ssh_command("ls /sys/kernel/iommu_groups/*/devices") .unwrap() - .trim(), - "0000:00:02.0" + .contains("0000:00:02.0") ); - // Verify the iommu group of the second disk. - let iommu_group = if acpi { 1 } else { 3 }; - assert_eq!( + // Verify the second disk is in an iommu group. + assert!( guest - .ssh_command(format!("ls /sys/kernel/iommu_groups/{iommu_group}/devices").as_str()) + .ssh_command("ls /sys/kernel/iommu_groups/*/devices") .unwrap() - .trim(), - "0000:00:03.0" + .contains("0000:00:03.0") ); - // Verify the iommu group of the network card. - let iommu_group = if acpi { 2 } else { 4 }; - assert_eq!( + // Verify the network card is in an iommu group. + assert!( guest - .ssh_command(format!("ls /sys/kernel/iommu_groups/{iommu_group}/devices").as_str()) + .ssh_command("ls /sys/kernel/iommu_groups/*/devices") .unwrap() - .trim(), - "0000:00:04.0" + .contains("0000:00:04.0") ); });