mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-10 02:54:58 -06:00
tests/functional: Convert the quanta-gsj avocado test
Straight forward conversion, basically just the hashsums needed to be updated to sha256 now. Message-ID: <20241206102358.1186644-6-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
23cb2e9961
commit
799d683026
4 changed files with 97 additions and 86 deletions
|
@ -115,89 +115,3 @@ class BootLinuxConsole(LinuxKernelTest):
|
|||
self.vm.launch()
|
||||
console_pattern = 'Kernel command line: %s' % kernel_command_line
|
||||
self.wait_for_console_pattern(console_pattern)
|
||||
|
||||
@skipUnless(os.getenv('AVOCADO_TIMEOUT_EXPECTED'), 'Test might timeout')
|
||||
def test_arm_quanta_gsj(self):
|
||||
"""
|
||||
:avocado: tags=arch:arm
|
||||
:avocado: tags=machine:quanta-gsj
|
||||
:avocado: tags=accel:tcg
|
||||
"""
|
||||
# 25 MiB compressed, 32 MiB uncompressed.
|
||||
image_url = (
|
||||
'https://github.com/hskinnemoen/openbmc/releases/download/'
|
||||
'20200711-gsj-qemu-0/obmc-phosphor-image-gsj.static.mtd.gz')
|
||||
image_hash = '14895e634923345cb5c8776037ff7876df96f6b1'
|
||||
image_path_gz = self.fetch_asset(image_url, asset_hash=image_hash)
|
||||
image_name = 'obmc.mtd'
|
||||
image_path = os.path.join(self.workdir, image_name)
|
||||
archive.gzip_uncompress(image_path_gz, image_path)
|
||||
|
||||
self.vm.set_console()
|
||||
drive_args = 'file=' + image_path + ',if=mtd,bus=0,unit=0'
|
||||
self.vm.add_args('-drive', drive_args)
|
||||
self.vm.launch()
|
||||
|
||||
# Disable drivers and services that stall for a long time during boot,
|
||||
# to avoid running past the 90-second timeout. These may be removed
|
||||
# as the corresponding device support is added.
|
||||
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + (
|
||||
'console=${console} '
|
||||
'mem=${mem} '
|
||||
'initcall_blacklist=npcm_i2c_bus_driver_init '
|
||||
'systemd.mask=systemd-random-seed.service '
|
||||
'systemd.mask=dropbearkey.service '
|
||||
)
|
||||
|
||||
self.wait_for_console_pattern('> BootBlock by Nuvoton')
|
||||
self.wait_for_console_pattern('>Device: Poleg BMC NPCM730')
|
||||
self.wait_for_console_pattern('>Skip DDR init.')
|
||||
self.wait_for_console_pattern('U-Boot ')
|
||||
interrupt_interactive_console_until_pattern(
|
||||
self, 'Hit any key to stop autoboot:', 'U-Boot>')
|
||||
exec_command_and_wait_for_pattern(
|
||||
self, "setenv bootargs ${bootargs} " + kernel_command_line,
|
||||
'U-Boot>')
|
||||
exec_command_and_wait_for_pattern(
|
||||
self, 'run romboot', 'Booting Kernel from flash')
|
||||
self.wait_for_console_pattern('Booting Linux on physical CPU 0x0')
|
||||
self.wait_for_console_pattern('CPU1: thread -1, cpu 1, socket 0')
|
||||
self.wait_for_console_pattern('OpenBMC Project Reference Distro')
|
||||
self.wait_for_console_pattern('gsj login:')
|
||||
|
||||
def test_arm_quanta_gsj_initrd(self):
|
||||
"""
|
||||
:avocado: tags=arch:arm
|
||||
:avocado: tags=machine:quanta-gsj
|
||||
:avocado: tags=accel:tcg
|
||||
"""
|
||||
initrd_url = (
|
||||
'https://github.com/hskinnemoen/openbmc/releases/download/'
|
||||
'20200711-gsj-qemu-0/obmc-phosphor-initramfs-gsj.cpio.xz')
|
||||
initrd_hash = '98fefe5d7e56727b1eb17d5c00311b1b5c945300'
|
||||
initrd_path = self.fetch_asset(initrd_url, asset_hash=initrd_hash)
|
||||
kernel_url = (
|
||||
'https://github.com/hskinnemoen/openbmc/releases/download/'
|
||||
'20200711-gsj-qemu-0/uImage-gsj.bin')
|
||||
kernel_hash = 'fa67b2f141d56d39b3c54305c0e8a899c99eb2c7'
|
||||
kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
|
||||
dtb_url = (
|
||||
'https://github.com/hskinnemoen/openbmc/releases/download/'
|
||||
'20200711-gsj-qemu-0/nuvoton-npcm730-gsj.dtb')
|
||||
dtb_hash = '18315f7006d7b688d8312d5c727eecd819aa36a4'
|
||||
dtb_path = self.fetch_asset(dtb_url, asset_hash=dtb_hash)
|
||||
|
||||
self.vm.set_console()
|
||||
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
|
||||
'console=ttyS0,115200n8 '
|
||||
'earlycon=uart8250,mmio32,0xf0001000')
|
||||
self.vm.add_args('-kernel', kernel_path,
|
||||
'-initrd', initrd_path,
|
||||
'-dtb', dtb_path,
|
||||
'-append', kernel_command_line)
|
||||
self.vm.launch()
|
||||
|
||||
self.wait_for_console_pattern('Booting Linux on physical CPU 0x0')
|
||||
self.wait_for_console_pattern('CPU1: thread -1, cpu 1, socket 0')
|
||||
self.wait_for_console_pattern(
|
||||
'Give root password for system maintenance')
|
||||
|
|
|
@ -27,6 +27,7 @@ test_timeouts = {
|
|||
'arm_collie' : 180,
|
||||
'arm_cubieboard' : 360,
|
||||
'arm_orangepi' : 540,
|
||||
'arm_quanta_gsj' : 240,
|
||||
'arm_raspi2' : 120,
|
||||
'arm_tuxrun' : 240,
|
||||
'arm_sx1' : 360,
|
||||
|
@ -85,6 +86,7 @@ tests_arm_system_thorough = [
|
|||
'arm_emcraft_sf2',
|
||||
'arm_integratorcp',
|
||||
'arm_orangepi',
|
||||
'arm_quanta_gsj',
|
||||
'arm_raspi2',
|
||||
'arm_smdkc210',
|
||||
'arm_sx1',
|
||||
|
|
94
tests/functional/test_arm_quanta_gsj.py
Executable file
94
tests/functional/test_arm_quanta_gsj.py
Executable file
|
@ -0,0 +1,94 @@
|
|||
#!/usr/bin/env python3
|
||||
#
|
||||
# Functional test that boots a Linux kernel and checks the console
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import os
|
||||
|
||||
from qemu_test import LinuxKernelTest, Asset, exec_command_and_wait_for_pattern
|
||||
from qemu_test import interrupt_interactive_console_until_pattern
|
||||
from unittest import skipUnless
|
||||
|
||||
class EmcraftSf2Machine(LinuxKernelTest):
|
||||
|
||||
ASSET_IMAGE = Asset(
|
||||
('https://github.com/hskinnemoen/openbmc/releases/download/'
|
||||
'20200711-gsj-qemu-0/obmc-phosphor-image-gsj.static.mtd.gz'),
|
||||
'eccd4e375cde53034c84aece5c511932cacf838d9fd3f63da368a511757da72b')
|
||||
|
||||
ASSET_INITRD = Asset(
|
||||
('https://github.com/hskinnemoen/openbmc/releases/download/'
|
||||
'20200711-gsj-qemu-0/obmc-phosphor-initramfs-gsj.cpio.xz'),
|
||||
'37b05009fc54db1434beac12bd7ff99a2e751a2f032ee18d9042f991dd0cdeaa')
|
||||
|
||||
ASSET_KERNEL = Asset(
|
||||
('https://github.com/hskinnemoen/openbmc/releases/download/'
|
||||
'20200711-gsj-qemu-0/uImage-gsj.bin'),
|
||||
'ce6d6b37bff46c74fc7b1e90da10a431cc37a62cdb35ec199fa73473d0790110')
|
||||
|
||||
ASSET_DTB = Asset(
|
||||
('https://github.com/hskinnemoen/openbmc/releases/download/'
|
||||
'20200711-gsj-qemu-0/nuvoton-npcm730-gsj.dtb'),
|
||||
'3249b2da787d4b9ad4e61f315b160abfceb87b5e1895a7ce898ce7f40c8d4045')
|
||||
|
||||
@skipUnless(os.getenv('QEMU_TEST_TIMEOUT_EXPECTED'), 'Test might timeout')
|
||||
def test_arm_quanta_gsj(self):
|
||||
self.set_machine('quanta-gsj')
|
||||
image_path = self.uncompress(ASSET_IMAGE, 'obmc.mtd', format='gz')
|
||||
|
||||
self.vm.set_console()
|
||||
drive_args = 'file=' + image_path + ',if=mtd,bus=0,unit=0'
|
||||
self.vm.add_args('-drive', drive_args)
|
||||
self.vm.launch()
|
||||
|
||||
# Disable drivers and services that stall for a long time during boot,
|
||||
# to avoid running past the 90-second timeout. These may be removed
|
||||
# as the corresponding device support is added.
|
||||
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + (
|
||||
'console=${console} '
|
||||
'mem=${mem} '
|
||||
'initcall_blacklist=npcm_i2c_bus_driver_init '
|
||||
'systemd.mask=systemd-random-seed.service '
|
||||
'systemd.mask=dropbearkey.service '
|
||||
)
|
||||
|
||||
self.wait_for_console_pattern('> BootBlock by Nuvoton')
|
||||
self.wait_for_console_pattern('>Device: Poleg BMC NPCM730')
|
||||
self.wait_for_console_pattern('>Skip DDR init.')
|
||||
self.wait_for_console_pattern('U-Boot ')
|
||||
interrupt_interactive_console_until_pattern(
|
||||
self, 'Hit any key to stop autoboot:', 'U-Boot>')
|
||||
exec_command_and_wait_for_pattern(
|
||||
self, "setenv bootargs ${bootargs} " + kernel_command_line,
|
||||
'U-Boot>')
|
||||
exec_command_and_wait_for_pattern(
|
||||
self, 'run romboot', 'Booting Kernel from flash')
|
||||
self.wait_for_console_pattern('Booting Linux on physical CPU 0x0')
|
||||
self.wait_for_console_pattern('CPU1: thread -1, cpu 1, socket 0')
|
||||
self.wait_for_console_pattern('OpenBMC Project Reference Distro')
|
||||
self.wait_for_console_pattern('gsj login:')
|
||||
|
||||
def test_arm_quanta_gsj_initrd(self):
|
||||
self.set_machine('quanta-gsj')
|
||||
initrd_path = self.ASSET_INITRD.fetch()
|
||||
kernel_path = self.ASSET_KERNEL.fetch()
|
||||
dtb_path = self.ASSET_DTB.fetch()
|
||||
|
||||
self.vm.set_console()
|
||||
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
|
||||
'console=ttyS0,115200n8 '
|
||||
'earlycon=uart8250,mmio32,0xf0001000')
|
||||
self.vm.add_args('-kernel', kernel_path,
|
||||
'-initrd', initrd_path,
|
||||
'-dtb', dtb_path,
|
||||
'-append', kernel_command_line)
|
||||
self.vm.launch()
|
||||
|
||||
self.wait_for_console_pattern('Booting Linux on physical CPU 0x0')
|
||||
self.wait_for_console_pattern('CPU1: thread -1, cpu 1, socket 0')
|
||||
self.wait_for_console_pattern(
|
||||
'Give root password for system maintenance')
|
||||
|
||||
if __name__ == '__main__':
|
||||
LinuxKernelTest.main()
|
Loading…
Add table
Add a link
Reference in a new issue