tests/functional: Convert mips32el Malta YAMON avocado test

Straight forward conversion using the Python standard zipfile
module instead of avocado.utils package. Update the SHA1 hashes
to SHA256 hashes since SHA1 should not be used anymore nowadays.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240827094905.80648-6-philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20240906180549.792832-7-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Philippe Mathieu-Daudé 2024-09-06 20:05:41 +02:00 committed by Thomas Huth
parent 0e165dfc52
commit a4b60bec10
5 changed files with 61 additions and 62 deletions

View File

@ -1370,7 +1370,7 @@ F: hw/mips/malta.c
F: hw/pci-host/gt64120.c
F: include/hw/southbridge/piix.h
F: tests/avocado/linux_ssh_mips_malta.py
F: tests/avocado/machine_mips_malta.py
F: tests/functional/test_mipsel_malta.py
F: tests/functional/test_mips64el_malta.py
Mipssim

View File

@ -1,54 +0,0 @@
# Functional tests for the MIPS Malta board
#
# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.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.
#
# SPDX-License-Identifier: GPL-2.0-or-later
import os
from avocado.utils import archive
from avocado_qemu import QemuSystemTest
from avocado_qemu import interrupt_interactive_console_until_pattern
from avocado_qemu import wait_for_console_pattern
class MaltaMachine(QemuSystemTest):
def do_test_yamon(self):
rom_url = ('https://s3-eu-west-1.amazonaws.com/'
'downloads-mips/mips-downloads/'
'YAMON/yamon-bin-02.22.zip')
rom_hash = '8da7ecddbc5312704b8b324341ee238189bde480'
zip_path = self.fetch_asset(rom_url, asset_hash=rom_hash)
archive.extract(zip_path, self.workdir)
yamon_path = os.path.join(self.workdir, 'yamon-02.22.bin')
self.vm.set_console()
self.vm.add_args('-bios', yamon_path)
self.vm.launch()
prompt = 'YAMON>'
pattern = 'YAMON ROM Monitor'
interrupt_interactive_console_until_pattern(self, pattern, prompt)
wait_for_console_pattern(self, prompt)
self.vm.shutdown()
def test_mipsel_malta_yamon(self):
"""
:avocado: tags=arch:mipsel
:avocado: tags=machine:malta
:avocado: tags=endian:little
"""
self.do_test_yamon()
def test_mips64el_malta_yamon(self):
"""
:avocado: tags=arch:mips64el
:avocado: tags=machine:malta
:avocado: tags=endian:little
"""
self.do_test_yamon()

View File

@ -69,6 +69,10 @@ tests_microblazeel_system_thorough = [
'microblazeel_s3adsp1800'
]
tests_mipsel_system_thorough = [
'mipsel_malta',
]
tests_mips64el_system_quick = [
'mips64el_fuloong2e',
]

View File

@ -30,7 +30,7 @@ except ImportError:
CV2_AVAILABLE = False
class MaltaMachineConsole(QemuSystemTest):
class MaltaMachineConsole(LinuxKernelTest):
ASSET_KERNEL_2_63_2 = Asset(
('http://snapshot.debian.org/archive/debian/'
@ -52,17 +52,17 @@ class MaltaMachineConsole(QemuSystemTest):
ch-common-tasks.html#s-common-official
"""
deb_path = self.ASSET_KERNEL_2_63_2.fetch()
kernel_path = extract_from_deb(deb_path, self.workdir,
'/boot/vmlinux-2.6.32-5-5kc-malta')
kernel_path = self.extract_from_deb(deb_path,
'/boot/vmlinux-2.6.32-5-5kc-malta')
self.set_machine('malta')
self.vm.set_console()
kernel_command_line = KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
self.vm.add_args('-kernel', kernel_path,
'-append', kernel_command_line)
self.vm.launch()
console_pattern = 'Kernel command line: %s' % kernel_command_line
linux_kernel_wait_for_pattern(self, console_pattern)
self.wait_for_console_pattern(console_pattern)
ASSET_KERNEL_3_19_3 = Asset(
('https://github.com/philmd/qemu-testing-blob/'
@ -85,7 +85,7 @@ class MaltaMachineConsole(QemuSystemTest):
self.set_machine('malta')
self.vm.set_console()
kernel_command_line = (KERNEL_COMMON_COMMAND_LINE
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE
+ 'console=ttyS0 console=tty '
+ 'rdinit=/sbin/init noreboot')
self.vm.add_args('-cpu', '5KEc',
@ -94,7 +94,7 @@ class MaltaMachineConsole(QemuSystemTest):
'-append', kernel_command_line,
'-no-reboot')
self.vm.launch()
linux_kernel_wait_for_pattern(self, 'Boot successful.')
self.wait_for_console_pattern('Boot successful.')
exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
'MIPS 5KE')
@ -180,5 +180,7 @@ class MaltaMachineFramebuffer(LinuxKernelTest):
self.do_test_i6400_framebuffer_logo(8)
from test_mipsel_malta import MaltaMachineYAMON
if __name__ == '__main__':
LinuxKernelTest.main()

View File

@ -0,0 +1,47 @@
#!/usr/bin/env python3
#
# Functional tests for the little-endian 32-bit MIPS Malta board
#
# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.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.
#
# SPDX-License-Identifier: GPL-2.0-or-later
import os
from qemu_test import QemuSystemTest, Asset
from qemu_test import interrupt_interactive_console_until_pattern
from qemu_test import wait_for_console_pattern
from zipfile import ZipFile
class MaltaMachineYAMON(QemuSystemTest):
ASSET_YAMON_ROM = Asset(
('https://s3-eu-west-1.amazonaws.com/downloads-mips/mips-downloads/'
'YAMON/yamon-bin-02.22.zip'),
'eef86f0eed0ef554f041dcd47b87eebea0e6f9f1184ed31f7e9e8b4a803860ab')
def test_mipsel_malta_yamon(self):
yamon_bin = 'yamon-02.22.bin'
zip_path = self.ASSET_YAMON_ROM.fetch()
with ZipFile(zip_path, 'r') as zf:
zf.extract(yamon_bin, path=self.workdir)
yamon_path = os.path.join(self.workdir, yamon_bin)
self.set_machine('malta')
self.vm.set_console()
self.vm.add_args('-bios', yamon_path)
self.vm.launch()
prompt = 'YAMON>'
pattern = 'YAMON ROM Monitor'
interrupt_interactive_console_until_pattern(self, pattern, prompt)
wait_for_console_pattern(self, prompt)
self.vm.shutdown()
if __name__ == '__main__':
QemuSystemTest.main()