|
| 1 | +# Functional test that boots a Linux kernel and checks the console |
| 2 | +# |
| 3 | +# Copyright (c) 2018 Red Hat, Inc. |
| 4 | +# |
| 5 | +# Author: |
| 6 | + |
| 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