mirror of
https://github.com/qemu/qemu.git
synced 2025-08-18 00:13:15 +00:00

Debian trixie has been released. The "stable" alias no longer refers to
the Debian bookworm release, so URLs referring to bookworm artifacts via
the "stable" alias no longer work.
Switch to explicit release naming ("bookworm") to make a permalink so
the test passes again.
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Fixes: 374a245573
("tests/functional: Add PCI hotplug test for aarch64")
Resolves: #3073 ("PCI hotplug test for aarch64 fails due to broken Debian installer URL")
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-ID: <20250811162315.59997-1-stefanha@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
73 lines
2.6 KiB
Python
Executable File
73 lines
2.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# The test hotplugs a PCI device and checks it on a Linux guest.
|
|
#
|
|
# Copyright (c) 2025 Linaro Ltd.
|
|
#
|
|
# Author:
|
|
# Gustavo Romero <gustavo.romero@linaro.org>
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
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/bookworm/main/installer-arm64/'
|
|
'20230607+deb12u11/images/netboot/debian-installer/arm64/linux'),
|
|
'd92a60392ce1e379ca198a1a820899f8f0d39a62d047c41ab79492f81541a9d9')
|
|
|
|
ASSET_INITRD = Asset(
|
|
('https://ftp.debian.org/debian/dists/bookworm/main/installer-arm64/'
|
|
'20230607+deb12u11/images/netboot/debian-installer/arm64/initrd.gz'),
|
|
'9f817f76951f3237bca8216bee35267bfb826815687f4b2fcdd5e6c2a917790c')
|
|
|
|
def test_hotplug_pci(self):
|
|
|
|
self.set_machine('virt')
|
|
|
|
self.vm.add_args('-m', '512M',
|
|
'-cpu', 'cortex-a57',
|
|
'-append',
|
|
'console=ttyAMA0,115200 init=/bin/sh',
|
|
'-device',
|
|
'pcie-root-port,bus=pcie.0,chassis=1,slot=1,id=pcie.1',
|
|
'-bios',
|
|
self.build_file('pc-bios', 'edk2-aarch64-code.fd'))
|
|
|
|
# BusyBox prompt
|
|
prompt = "~ #"
|
|
self.launch_kernel(self.ASSET_KERNEL.fetch(),
|
|
self.ASSET_INITRD.fetch(),
|
|
wait_for=prompt)
|
|
|
|
# Check for initial state: 2 network adapters, lo and enp0s1.
|
|
exec_command_and_wait_for_pattern(self,
|
|
'ls /sys/class/net | wc -l',
|
|
'2')
|
|
|
|
# Hotplug one network adapter to the root port, i.e. pcie.1 bus.
|
|
self.vm.cmd('device_add',
|
|
driver='virtio-net-pci',
|
|
bus='pcie.1',
|
|
addr=0,
|
|
id='na')
|
|
# Wait for the kernel to recognize the new device.
|
|
self.wait_for_console_pattern('virtio-pci')
|
|
self.wait_for_console_pattern('virtio_net')
|
|
|
|
# Check if there is a new network adapter.
|
|
exec_command_and_wait_for_pattern(self,
|
|
'ls /sys/class/net | wc -l',
|
|
'3')
|
|
|
|
self.vm.cmd('device_del', id='na')
|
|
exec_command_and_wait_for_pattern(self,
|
|
'ls /sys/class/net | wc -l',
|
|
'2')
|
|
|
|
if __name__ == '__main__':
|
|
LinuxKernelTest.main()
|