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