1bbbd9b6eSWillian Rampazzo# Functional test that boots a Linux kernel and checks the console 2bbbd9b6eSWillian Rampazzo# 3bbbd9b6eSWillian Rampazzo# Copyright (c) 2020 Red Hat, Inc. 4bbbd9b6eSWillian Rampazzo# 5bbbd9b6eSWillian Rampazzo# Author: 6bbbd9b6eSWillian Rampazzo# Thomas Huth <thuth@redhat.com> 7bbbd9b6eSWillian Rampazzo# 8bbbd9b6eSWillian Rampazzo# This work is licensed under the terms of the GNU GPL, version 2 or 9bbbd9b6eSWillian Rampazzo# later. See the COPYING file in the top-level directory. 10bbbd9b6eSWillian Rampazzo 11bbbd9b6eSWillian Rampazzoimport os 12bbbd9b6eSWillian Rampazzo 13bbbd9b6eSWillian Rampazzofrom avocado import skipUnless 14*2283b627SPhilippe Mathieu-Daudéfrom avocado_qemu import QemuSystemTest 15bbbd9b6eSWillian Rampazzofrom avocado_qemu import wait_for_console_pattern 16bbbd9b6eSWillian Rampazzo 17*2283b627SPhilippe Mathieu-Daudéclass N8x0Machine(QemuSystemTest): 18bbbd9b6eSWillian Rampazzo """Boots the Linux kernel and checks that the console is operational""" 19bbbd9b6eSWillian Rampazzo 20bbbd9b6eSWillian Rampazzo timeout = 90 21bbbd9b6eSWillian Rampazzo 22bbbd9b6eSWillian Rampazzo def __do_test_n8x0(self): 23bbbd9b6eSWillian Rampazzo kernel_url = ('http://stskeeps.subnetmask.net/meego-n8x0/' 24bbbd9b6eSWillian Rampazzo 'meego-arm-n8x0-1.0.80.20100712.1431-' 25bbbd9b6eSWillian Rampazzo 'vmlinuz-2.6.35~rc4-129.1-n8x0') 26bbbd9b6eSWillian Rampazzo kernel_hash = 'e9d5ab8d7548923a0061b6fbf601465e479ed269' 27bbbd9b6eSWillian Rampazzo kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash) 28bbbd9b6eSWillian Rampazzo 29bbbd9b6eSWillian Rampazzo self.vm.set_console(console_index=1) 30bbbd9b6eSWillian Rampazzo self.vm.add_args('-kernel', kernel_path, 31bbbd9b6eSWillian Rampazzo '-append', 'printk.time=0 console=ttyS1') 32bbbd9b6eSWillian Rampazzo self.vm.launch() 33bbbd9b6eSWillian Rampazzo wait_for_console_pattern(self, 'TSC2005 driver initializing') 34bbbd9b6eSWillian Rampazzo 35bbbd9b6eSWillian Rampazzo @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code') 36bbbd9b6eSWillian Rampazzo def test_n800(self): 37bbbd9b6eSWillian Rampazzo """ 38bbbd9b6eSWillian Rampazzo :avocado: tags=arch:arm 39bbbd9b6eSWillian Rampazzo :avocado: tags=machine:n800 40bbbd9b6eSWillian Rampazzo """ 41bbbd9b6eSWillian Rampazzo self.__do_test_n8x0() 42bbbd9b6eSWillian Rampazzo 43bbbd9b6eSWillian Rampazzo @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code') 44bbbd9b6eSWillian Rampazzo def test_n810(self): 45bbbd9b6eSWillian Rampazzo """ 46bbbd9b6eSWillian Rampazzo :avocado: tags=arch:arm 47bbbd9b6eSWillian Rampazzo :avocado: tags=machine:n810 48bbbd9b6eSWillian Rampazzo """ 49bbbd9b6eSWillian Rampazzo self.__do_test_n8x0() 50