Skip to content

Commit cf66562

Browse files
committed
BootLinuxConsoleTest: Test the RX GDB simulator
Add two tests for the rx-gdbsim machine, based on the recommended test setup from Yoshinori Sato: https://lists.gnu.org/archive/html/qemu-devel/2019-05/msg03586.html - U-Boot prompt - Linux kernel with Sash shell These are very quick tests: $ avocado run -t arch:rx tests/acceptance/machine_rx_gdbsim.py JOB ID : 84a6ef01c0b87975ecbfcb31a920afd735753ace JOB LOG : /home/phil/avocado/job-results/job-2019-05-24T05.02-84a6ef0/job.log (1/2) tests/acceptance/machine_rx_gdbsim.py:RxGdbSimMachine.test_uboot: PASS (0.11 s) (2/2) tests/acceptance/machine_rx_gdbsim.py:RxGdbSimMachine.test_linux_sash: PASS (0.45 s) RESULTS : PASS 2 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0 Tests can also be run with: $ avocado --show=console run -t arch:rx tests/acceptance/machine_rx_gdbsim.py console: U-Boot 2016.05-rc3-23705-ga1ef3c71cb-dirty (Feb 05 2019 - 21:56:06 +0900) console: Linux version 4.19.0+ (yo-satoh@yo-satoh-debian) (gcc version 9.0.0 20181105 (experimental) (GCC)) qemu#137 Wed Feb 20 23:20:02 JST 2019 console: Built 1 zonelists, mobility grouping on. Total pages: 8128 ... console: SuperH (H)SCI(F) driver initialized console: 88240.serial: ttySC0 at MMIO 0x88240 (irq = 215, base_baud = 0) is a sci console: console [ttySC0] enabled console: 88248.serial: ttySC1 at MMIO 0x88248 (irq = 219, base_baud = 0) is a sci Signed-off-by: Philippe Mathieu-Daudé <[email protected]> Signed-off-by: Yoshinori Sato <[email protected]> Message-Id: <[email protected]> [PMD: Replace obsolete set_machine() by machine tag, and rename as gdbsim] Signed-off-by: Philippe Mathieu-Daudé <[email protected]> Reviewed-by: Richard Henderson <[email protected]>
1 parent bda19d7 commit cf66562

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1262,6 +1262,7 @@ rx-gdbsim
12621262
M: Yoshinori Sato <[email protected]>
12631263
S: Maintained
12641264
F: hw/rx/rx-gdbsim.c
1265+
F: tests/acceptance/machine_rx_gdbsim.py
12651266

12661267
SH4 Machines
12671268
------------
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Functional test that boots a Linux kernel and checks the console
2+
#
3+
# Copyright (c) 2018 Red Hat, Inc.
4+
#
5+
# Author:
6+
# Cleber Rosa <[email protected]>
7+
#
8+
# This work is licensed under the terms of the GNU GPL, version 2 or
9+
# later. See the COPYING file in the top-level directory.
10+
11+
from avocado_qemu import Test
12+
from avocado_qemu import exec_command_and_wait_for_pattern
13+
from avocado_qemu import wait_for_console_pattern
14+
from avocado.utils import archive
15+
16+
17+
class RxGdbSimMachine(Test):
18+
19+
timeout = 30
20+
KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
21+
22+
def test_uboot(self):
23+
"""
24+
U-Boot and checks that the console is operational.
25+
26+
:avocado: tags=arch:rx
27+
:avocado: tags=machine:gdbsim-r5f562n8
28+
:avocado: tags=endian:little
29+
"""
30+
uboot_url = ('https://acc.dl.osdn.jp/users/23/23888/u-boot.bin.gz')
31+
uboot_hash = '9b78dbd43b40b2526848c0b1ce9de02c24f4dcdb'
32+
uboot_path = self.fetch_asset(uboot_url, asset_hash=uboot_hash)
33+
uboot_path = archive.uncompress(uboot_path, self.workdir)
34+
35+
self.vm.set_console()
36+
self.vm.add_args('-bios', uboot_path,
37+
'-no-reboot')
38+
self.vm.launch()
39+
uboot_version = 'U-Boot 2016.05-rc3-23705-ga1ef3c71cb-dirty'
40+
wait_for_console_pattern(self, uboot_version)
41+
gcc_version = 'rx-unknown-linux-gcc (GCC) 9.0.0 20181105 (experimental)'
42+
# FIXME limit baudrate on chardev, else we type too fast
43+
#exec_command_and_wait_for_pattern(self, 'version', gcc_version)
44+
45+
def test_linux_sash(self):
46+
"""
47+
Boots a Linux kernel and checks that the console is operational.
48+
49+
:avocado: tags=arch:rx
50+
:avocado: tags=machine:gdbsim-r5f562n7
51+
:avocado: tags=endian:little
52+
"""
53+
dtb_url = ('https://acc.dl.osdn.jp/users/23/23887/rx-qemu.dtb')
54+
dtb_hash = '7b4e4e2c71905da44e86ce47adee2210b026ac18'
55+
dtb_path = self.fetch_asset(dtb_url, asset_hash=dtb_hash)
56+
kernel_url = ('http://acc.dl.osdn.jp/users/23/23845/zImage')
57+
kernel_hash = '39a81067f8d72faad90866ddfefa19165d68fc99'
58+
kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
59+
60+
self.vm.set_console()
61+
kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'earlycon'
62+
self.vm.add_args('-kernel', kernel_path,
63+
'-dtb', dtb_path,
64+
'-no-reboot')
65+
self.vm.launch()
66+
wait_for_console_pattern(self, 'Sash command shell (version 1.1.1)',
67+
failure_message='Kernel panic - not syncing')
68+
exec_command_and_wait_for_pattern(self, 'printenv', 'TERM=linux')

0 commit comments

Comments
 (0)