tests/functional: Convert the m68k replay avocado tests

Put the tests into a separate file now (since in the functional
framework, each file is run with one specific qemu-system-* binary).

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20250218152744.228335-9-thuth@redhat.com>
This commit is contained in:
Thomas Huth 2025-02-18 16:27:38 +01:00
parent 6674fa9c34
commit ec971d8554
3 changed files with 43 additions and 29 deletions

View file

@ -242,24 +242,6 @@ class ReplayKernelNormal(ReplayKernelBase):
self.run_rr(uncompressed_kernel, kernel_command_line, console_pattern, shift=9, self.run_rr(uncompressed_kernel, kernel_command_line, console_pattern, shift=9,
args=('-nodefaults', )) args=('-nodefaults', ))
def test_m68k_q800(self):
"""
:avocado: tags=arch:m68k
:avocado: tags=machine:q800
"""
deb_url = ('https://snapshot.debian.org/archive/debian-ports'
'/20191021T083923Z/pool-m68k/main'
'/l/linux/kernel-image-5.3.0-1-m68k-di_5.3.7-1_m68k.udeb')
deb_hash = '044954bb9be4160a3ce81f8bc1b5e856b75cccd1'
deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinux-5.3.0-1-m68k')
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
'console=ttyS0 vga=off')
console_pattern = 'No filesystem could mount root'
self.run_rr(kernel_path, kernel_command_line, console_pattern)
def do_test_advcal_2018(self, file_path, kernel_name, args=None): def do_test_advcal_2018(self, file_path, kernel_name, args=None):
archive.extract(file_path, self.workdir) archive.extract(file_path, self.workdir)
@ -285,14 +267,3 @@ class ReplayKernelNormal(ReplayKernelBase):
dtb_path = self.workdir + '/day16/vexpress-v2p-ca9.dtb' dtb_path = self.workdir + '/day16/vexpress-v2p-ca9.dtb'
self.do_test_advcal_2018(file_path, 'winter.zImage', self.do_test_advcal_2018(file_path, 'winter.zImage',
args=('-dtb', dtb_path)) args=('-dtb', dtb_path))
def test_m68k_mcf5208evb(self):
"""
:avocado: tags=arch:m68k
:avocado: tags=machine:mcf5208evb
"""
tar_hash = 'ac688fd00561a2b6ce1359f9ff6aa2b98c9a570c'
tar_url = ('https://qemu-advcal.gitlab.io'
'/qac-best-of-multiarch/download/day07.tar.xz')
file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
self.do_test_advcal_2018(file_path, 'sanity-clause.elf')

View file

@ -147,6 +147,7 @@ tests_loongarch64_system_thorough = [
tests_m68k_system_thorough = [ tests_m68k_system_thorough = [
'm68k_mcf5208evb', 'm68k_mcf5208evb',
'm68k_nextcube', 'm68k_nextcube',
'm68k_replay',
'm68k_q800', 'm68k_q800',
'm68k_tuxrun', 'm68k_tuxrun',
] ]

View file

@ -0,0 +1,42 @@
#!/usr/bin/env python3
#
# Replay test that boots a Linux kernel on an m68k machine
# and checks the console
#
# SPDX-License-Identifier: GPL-2.0-or-later
from qemu_test import Asset
from replay_kernel import ReplayKernelBase
class M68kReplay(ReplayKernelBase):
ASSET_Q800 = Asset(
('https://snapshot.debian.org/'
'archive/debian-ports/20191021T083923Z/pool-m68k/main/l/linux/'
'kernel-image-5.3.0-1-m68k-di_5.3.7-1_m68k.udeb'),
'949e50d74d4b9bc15d26c06d402717b7a4c0e32ff8100014f5930d8024de7b73')
def test_q800(self):
self.set_machine('q800')
kernel_path = self.archive_extract(self.ASSET_Q800,
member='boot/vmlinux-5.3.0-1-m68k')
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
'console=ttyS0 vga=off')
console_pattern = 'No filesystem could mount root'
self.run_rr(kernel_path, kernel_command_line, console_pattern)
ASSET_MCF5208 = Asset(
'https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/day07.tar.xz',
'753c2f3837126b7c6ba92d0b1e0b156e8a2c5131d2d576bb0b9a763fae73c08a')
def test_mcf5208evb(self):
self.set_machine('mcf5208evb')
kernel_path = self.archive_extract(self.ASSET_MCF5208,
member='day07/sanity-clause.elf')
self.run_rr(kernel_path, self.KERNEL_COMMON_COMMAND_LINE,
'QEMU advent calendar')
if __name__ == '__main__':
ReplayKernelBase.main()