tests/functional: Convert some avocado tests that needed avocado.utils.archive

Instead of using the "archive" module from avocado.utils, switch
these tests to use the new wrapper function that is based on the
"tarfile" module instead.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240830133841.142644-20-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Thomas Huth 2024-08-30 15:38:13 +02:00
parent 850a1951b7
commit e3fc99b164
6 changed files with 87 additions and 68 deletions

View file

@ -733,7 +733,7 @@ S: Odd Fixes
F: include/hw/arm/digic.h F: include/hw/arm/digic.h
F: hw/*/digic* F: hw/*/digic*
F: include/hw/*/digic* F: include/hw/*/digic*
F: tests/avocado/machine_arm_canona1100.py F: tests/functional/test_arm_canona1100.py
F: docs/system/arm/digic.rst F: docs/system/arm/digic.rst
Goldfish RTC Goldfish RTC
@ -1430,7 +1430,7 @@ L: qemu-ppc@nongnu.org
S: Orphan S: Orphan
F: hw/ppc/ppc440_bamboo.c F: hw/ppc/ppc440_bamboo.c
F: hw/pci-host/ppc4xx_pci.c F: hw/pci-host/ppc4xx_pci.c
F: tests/avocado/ppc_bamboo.py F: tests/functional/test_ppc_bamboo.py
e500 e500
L: qemu-ppc@nongnu.org L: qemu-ppc@nongnu.org
@ -1716,7 +1716,7 @@ F: include/hw/pci-host/sabre.h
F: hw/pci-bridge/simba.c F: hw/pci-bridge/simba.c
F: include/hw/pci-bridge/simba.h F: include/hw/pci-bridge/simba.h
F: pc-bios/openbios-sparc64 F: pc-bios/openbios-sparc64
F: tests/avocado/machine_sparc64_sun4u.py F: tests/functional/test_sparc64_sun4u.py
Sun4v Sun4v
M: Artyom Tarasenko <atar4qemu@gmail.com> M: Artyom Tarasenko <atar4qemu@gmail.com>

View file

@ -1,36 +0,0 @@
# Functional test that boots a Linux kernel and checks the console
#
# Copyright (c) 2020 Red Hat, Inc.
#
# Author:
# Thomas Huth <thuth@redhat.com>
#
# This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory.
import os
from avocado_qemu import wait_for_console_pattern
from avocado.utils import archive
from boot_linux_console import LinuxKernelTest
class Sun4uMachine(LinuxKernelTest):
"""Boots the Linux kernel and checks that the console is operational"""
timeout = 90
def test_sparc64_sun4u(self):
"""
:avocado: tags=arch:sparc64
:avocado: tags=machine:sun4u
"""
tar_url = ('https://qemu-advcal.gitlab.io'
'/qac-best-of-multiarch/download/day23.tar.xz')
tar_hash = '142db83cd974ffadc4f75c8a5cad5bcc5722c240'
file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
archive.extract(file_path, self.workdir)
self.vm.set_console()
self.vm.add_args('-kernel', self.workdir + '/day23/vmlinux',
'-append', self.KERNEL_COMMON_COMMAND_LINE)
self.vm.launch()
wait_for_console_pattern(self, 'Starting logging: OK')

View file

@ -26,6 +26,10 @@ tests_generic_linuxuser = [
tests_generic_bsduser = [ tests_generic_bsduser = [
] ]
tests_arm_system_thorough = [
'arm_canona1100',
]
tests_avr_system_thorough = [ tests_avr_system_thorough = [
'avr_mega2560', 'avr_mega2560',
] ]
@ -44,6 +48,11 @@ tests_ppc_system_quick = [
tests_ppc_system_thorough = [ tests_ppc_system_thorough = [
'ppc_405', 'ppc_405',
'ppc_bamboo',
]
tests_sparc64_system_thorough = [
'sparc64_sun4u',
] ]
tests_x86_64_system_quick = [ tests_x86_64_system_quick = [

View file

@ -1,3 +1,5 @@
#!/usr/bin/env python3
#
# Functional test that boots the canon-a1100 machine with firmware # Functional test that boots the canon-a1100 machine with firmware
# #
# Copyright (c) 2020 Red Hat, Inc. # Copyright (c) 2020 Red Hat, Inc.
@ -8,28 +10,30 @@
# This work is licensed under the terms of the GNU GPL, version 2 or # This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory. # later. See the COPYING file in the top-level directory.
from avocado_qemu import QemuSystemTest from qemu_test import QemuSystemTest, Asset
from avocado_qemu import wait_for_console_pattern from qemu_test import wait_for_console_pattern
from avocado.utils import archive from qemu_test.utils import archive_extract
class CanonA1100Machine(QemuSystemTest): class CanonA1100Machine(QemuSystemTest):
"""Boots the barebox firmware and checks that the console is operational""" """Boots the barebox firmware and checks that the console is operational"""
timeout = 90 timeout = 90
ASSET_BIOS = Asset(('https://qemu-advcal.gitlab.io'
'/qac-best-of-multiarch/download/day18.tar.xz'),
'28e71874ce985be66b7fd1345ed88cb2523b982f899c8d2900d6353054a1be49')
def test_arm_canona1100(self): def test_arm_canona1100(self):
""" self.set_machine('canon-a1100')
:avocado: tags=arch:arm
:avocado: tags=machine:canon-a1100 file_path = self.ASSET_BIOS.fetch()
:avocado: tags=device:pflash_cfi02 archive_extract(file_path, dest_dir=self.workdir,
""" member="day18/barebox.canon-a1100.bin")
tar_url = ('https://qemu-advcal.gitlab.io'
'/qac-best-of-multiarch/download/day18.tar.xz')
tar_hash = '068b5fc4242b29381acee94713509f8a876e9db6'
file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
archive.extract(file_path, self.workdir)
self.vm.set_console() self.vm.set_console()
self.vm.add_args('-bios', self.vm.add_args('-bios',
self.workdir + '/day18/barebox.canon-a1100.bin') self.workdir + '/day18/barebox.canon-a1100.bin')
self.vm.launch() self.vm.launch()
wait_for_console_pattern(self, 'running /env/bin/init') wait_for_console_pattern(self, 'running /env/bin/init')
if __name__ == '__main__':
QemuSystemTest.main()

View file

@ -1,3 +1,5 @@
#!/usr/bin/env python3
#
# Test that Linux kernel boots on the ppc bamboo board and check the console # Test that Linux kernel boots on the ppc bamboo board and check the console
# #
# Copyright (c) 2021 Red Hat # Copyright (c) 2021 Red Hat
@ -5,30 +7,26 @@
# This work is licensed under the terms of the GNU GPL, version 2 or # This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory. # later. See the COPYING file in the top-level directory.
from avocado.utils import archive from qemu_test.utils import archive_extract
from avocado_qemu import QemuSystemTest from qemu_test import QemuSystemTest, Asset
from avocado_qemu import wait_for_console_pattern from qemu_test import wait_for_console_pattern
from avocado_qemu import exec_command_and_wait_for_pattern from qemu_test import exec_command_and_wait_for_pattern
class BambooMachine(QemuSystemTest): class BambooMachine(QemuSystemTest):
timeout = 90 timeout = 90
ASSET_IMAGE = Asset(
('http://landley.net/aboriginal/downloads/binaries/'
'system-image-powerpc-440fp.tar.gz'),
'c12b58f841c775a0e6df4832a55afe6b74814d1565d08ddeafc1fb949a075c5e')
def test_ppc_bamboo(self): def test_ppc_bamboo(self):
""" self.set_machine('bamboo')
:avocado: tags=arch:ppc
:avocado: tags=machine:bamboo
:avocado: tags=cpu:440epb
:avocado: tags=device:rtl8139
:avocado: tags=accel:tcg
"""
self.require_accelerator("tcg") self.require_accelerator("tcg")
self.require_netdev('user') self.require_netdev('user')
tar_url = ('http://landley.net/aboriginal/downloads/binaries/' file_path = self.ASSET_IMAGE.fetch()
'system-image-powerpc-440fp.tar.gz') archive_extract(file_path, self.workdir)
tar_hash = '53e5f16414b195b82d2c70272f81c2eedb39bad9'
file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
archive.extract(file_path, self.workdir)
self.vm.set_console() self.vm.set_console()
self.vm.add_args('-kernel', self.workdir + self.vm.add_args('-kernel', self.workdir +
'/system-image-powerpc-440fp/linux', '/system-image-powerpc-440fp/linux',
@ -40,3 +38,6 @@ class BambooMachine(QemuSystemTest):
exec_command_and_wait_for_pattern(self, 'ping 10.0.2.2', exec_command_and_wait_for_pattern(self, 'ping 10.0.2.2',
'10.0.2.2 is alive!') '10.0.2.2 is alive!')
exec_command_and_wait_for_pattern(self, 'halt', 'System Halted') exec_command_and_wait_for_pattern(self, 'halt', 'System Halted')
if __name__ == '__main__':
QemuSystemTest.main()

View file

@ -0,0 +1,41 @@
#!/usr/bin/env python3
#
# Functional test that boots a Linux kernel and checks the console
#
# Copyright (c) 2020 Red Hat, Inc.
#
# Author:
# Thomas Huth <thuth@redhat.com>
#
# This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory.
import os
from qemu_test import QemuSystemTest, Asset
from qemu_test import wait_for_console_pattern
from qemu_test.utils import archive_extract
class Sun4uMachine(QemuSystemTest):
"""Boots the Linux kernel and checks that the console is operational"""
timeout = 90
ASSET_IMAGE = Asset(
('https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/'
'day23.tar.xz'),
'a3ed92450704af244178351afd0e769776e7decb298e95a63abfd9a6e3f6c854')
def test_sparc64_sun4u(self):
self.set_machine('sun4u')
file_path = self.ASSET_IMAGE.fetch()
kernel_name = 'day23/vmlinux'
archive_extract(file_path, self.workdir, kernel_name)
self.vm.set_console()
self.vm.add_args('-kernel', os.path.join(self.workdir, kernel_name),
'-append', 'printk.time=0')
self.vm.launch()
wait_for_console_pattern(self, 'Starting logging: OK')
if __name__ == '__main__':
QemuSystemTest.main()