On 24/05/2025 17.38, Alex Bennée wrote:
Gustavo Romero <gustavo.rom...@linaro.org> writes:

Add a functional test, aarch64_hotplug_pci, to exercise PCI hotplug and
hot-unplug on arm64.

Signed-off-by: Gustavo Romero <gustavo.rom...@linaro.org>
Reviewed-by: Daniel P. Berrangé <berra...@redhat.com>
---
  MAINTAINERS                                  |  5 ++
  tests/functional/meson.build                 |  1 +
  tests/functional/test_aarch64_hotplug_pci.py | 74 ++++++++++++++++++++
  3 files changed, 80 insertions(+)
  create mode 100755 tests/functional/test_aarch64_hotplug_pci.py

diff --git a/MAINTAINERS b/MAINTAINERS
index 23174b4ca7..9ebb768214 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2065,6 +2065,11 @@ S: Supported
  F: include/hw/pci/pcie_doe.h
  F: hw/pci/pcie_doe.c
+ARM PCI Hotplug
+M: Gustavo Romero <gustavo.rom...@linaro.org>
+S: Supported
+F: tests/functional/test_aarch64_hotplug_pci.py
+
  ACPI/SMBIOS
  M: Michael S. Tsirkin <m...@redhat.com>
  M: Igor Mammedov <imamm...@redhat.com>
diff --git a/tests/functional/meson.build b/tests/functional/meson.build
index 52b4706cfe..2d68840fa2 100644
--- a/tests/functional/meson.build
+++ b/tests/functional/meson.build
@@ -83,6 +83,7 @@ tests_aarch64_system_quick = [
  tests_aarch64_system_thorough = [
    'aarch64_aspeed_ast2700',
    'aarch64_aspeed_ast2700fc',
+  'aarch64_hotplug_pci',
    'aarch64_imx8mp_evk',
    'aarch64_raspi3',
    'aarch64_raspi4',
diff --git a/tests/functional/test_aarch64_hotplug_pci.py 
b/tests/functional/test_aarch64_hotplug_pci.py
new file mode 100755
index 0000000000..fa1bb62c8f
--- /dev/null
+++ b/tests/functional/test_aarch64_hotplug_pci.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python3
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# The test hotplugs a PCI device and checks it on a Linux guest.
+#
+# Copyright (c) 2025 Linaro Ltd.
+#
+# Author:
+#  Gustavo Romero <gustavo.rom...@linaro.org>
+#
+# This work is licensed under the terms of the GNU GPL, version 2 or
+# later.  See the COPYING file in the top-level directory.
+
+from qemu_test import LinuxKernelTest, Asset, exec_command_and_wait_for_pattern
+from qemu_test import BUILD_DIR
+
+class HotplugPCI(LinuxKernelTest):
+
+    ASSET_KERNEL = Asset(
+        ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
+         'current/images/netboot/debian-installer/arm64/linux'),
+        '3821d4db56d42c6a4eac62f31846e35465940afd87746b4cfcdf5c9eca3117b2')
+
+    ASSET_INITRD = Asset(
+        ('https://ftp.debian.org/debian/dists/stable/main/installer-arm64/'
+         'current/images/netboot/debian-installer/arm64/initrd.gz'),
+
'2583ec22b45265ad69e82f198674f53d4cd85be124fe012eedc2fd91156bc4b4')

Hmm do we need to specify a checksum type now?

Yes. The whole cache management of the functional tests relies on the checksums, and we certainly don't want to have surprise effects in the tests if the assets change without us noticing.

In fact could we use the existing tuxrun images instead of relying on
debian stable not changing?

There seems also to be another image with "20230607" instead of "current" in the URL, maybe that one is a better fit?

 Thomas


Reply via email to