]>
Commit | Line | Data |
---|---|---|
cf665623 PMD |
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 <crosa@redhat.com> | |
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 | ||
4d6862ff TH |
11 | import os |
12 | ||
9b45cc99 | 13 | from avocado import skipUnless |
2283b627 | 14 | from avocado_qemu import QemuSystemTest |
cf665623 PMD |
15 | from avocado_qemu import exec_command_and_wait_for_pattern |
16 | from avocado_qemu import wait_for_console_pattern | |
17 | from avocado.utils import archive | |
18 | ||
19 | ||
2283b627 | 20 | class RxGdbSimMachine(QemuSystemTest): |
cf665623 PMD |
21 | |
22 | timeout = 30 | |
23 | KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 ' | |
24 | ||
9b45cc99 AB |
25 | @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab') |
26 | ||
cf665623 PMD |
27 | def test_uboot(self): |
28 | """ | |
29 | U-Boot and checks that the console is operational. | |
30 | ||
31 | :avocado: tags=arch:rx | |
32 | :avocado: tags=machine:gdbsim-r5f562n8 | |
33 | :avocado: tags=endian:little | |
5d25fcb7 | 34 | :avocado: tags=flaky |
cf665623 PMD |
35 | """ |
36 | uboot_url = ('https://acc.dl.osdn.jp/users/23/23888/u-boot.bin.gz') | |
37 | uboot_hash = '9b78dbd43b40b2526848c0b1ce9de02c24f4dcdb' | |
38 | uboot_path = self.fetch_asset(uboot_url, asset_hash=uboot_hash) | |
39 | uboot_path = archive.uncompress(uboot_path, self.workdir) | |
40 | ||
41 | self.vm.set_console() | |
42 | self.vm.add_args('-bios', uboot_path, | |
43 | '-no-reboot') | |
44 | self.vm.launch() | |
45 | uboot_version = 'U-Boot 2016.05-rc3-23705-ga1ef3c71cb-dirty' | |
46 | wait_for_console_pattern(self, uboot_version) | |
47 | gcc_version = 'rx-unknown-linux-gcc (GCC) 9.0.0 20181105 (experimental)' | |
48 | # FIXME limit baudrate on chardev, else we type too fast | |
49 | #exec_command_and_wait_for_pattern(self, 'version', gcc_version) | |
50 | ||
9b45cc99 AB |
51 | @skipUnless(os.getenv('QEMU_TEST_FLAKY_TESTS'), 'Test is unstable on GitLab') |
52 | ||
cf665623 PMD |
53 | def test_linux_sash(self): |
54 | """ | |
55 | Boots a Linux kernel and checks that the console is operational. | |
56 | ||
57 | :avocado: tags=arch:rx | |
58 | :avocado: tags=machine:gdbsim-r5f562n7 | |
59 | :avocado: tags=endian:little | |
5d25fcb7 | 60 | :avocado: tags=flaky |
cf665623 | 61 | """ |
fcae6043 | 62 | dtb_url = ('https://acc.dl.osdn.jp/users/23/23887/rx-virt.dtb') |
cf665623 PMD |
63 | dtb_hash = '7b4e4e2c71905da44e86ce47adee2210b026ac18' |
64 | dtb_path = self.fetch_asset(dtb_url, asset_hash=dtb_hash) | |
65 | kernel_url = ('http://acc.dl.osdn.jp/users/23/23845/zImage') | |
66 | kernel_hash = '39a81067f8d72faad90866ddfefa19165d68fc99' | |
67 | kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash) | |
68 | ||
69 | self.vm.set_console() | |
70 | kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'earlycon' | |
71 | self.vm.add_args('-kernel', kernel_path, | |
72 | '-dtb', dtb_path, | |
73 | '-no-reboot') | |
74 | self.vm.launch() | |
75 | wait_for_console_pattern(self, 'Sash command shell (version 1.1.1)', | |
76 | failure_message='Kernel panic - not syncing') | |
77 | exec_command_and_wait_for_pattern(self, 'printenv', 'TERM=linux') |