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?

  TAP version 13
  not ok 1 test_aarch64_hotplug_pci.HotplugPCI.test_hotplug_pci
  1..1
  ----------------------------------- stderr -----------------------------------
  Traceback (most recent call last):
    File 
"/home/alex/lsrc/qemu.git/tests/functional/test_aarch64_hotplug_pci.py", line 
44, in test_hotplug_pci
      self.launch_kernel(self.ASSET_KERNEL.fetch(),
                         ~~~~~~~~~~~~~~~~~~~~~~~^^
    File "/home/alex/lsrc/qemu.git/tests/functional/qemu_test/asset.py", line 
189, in fetch
      raise AssetError(self, "Hash does not match %s" % self.hash)
  qemu_test.asset.AssetError: 
https://ftp.debian.org/debian/dists/stable/main/installer-arm64/current/images/netboot/debian-installer/arm64/linux:
 Hash does not match 
3821d4db56d42c6a4eac62f31846e35465940afd87746b4cfcdf5c9eca3117b2

  More information on test_aarch64_hotplug_pci.HotplugPCI.test_hotplug_pci 
could be found here:
   
/home/alex/lsrc/qemu.git/builds/all/tests/functional/aarch64/test_aarch64_hotplug_pci.HotplugPCI.test_hotplug_pci/base.log
   
/home/alex/lsrc/qemu.git/builds/all/tests/functional/aarch64/test_aarch64_hotplug_pci.HotplugPCI.test_hotplug_pci/console.log

  (test program exited with status code 1)
  ==============================================================================

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

<snip>

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro

Reply via email to