]> git.proxmox.com Git - mirror_qemu.git/blame - tests/acceptance/boot_linux_console.py
tests/boot_linux_console: increase timeout
[mirror_qemu.git] / tests / acceptance / boot_linux_console.py
CommitLineData
c1cc73f4
CR
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
11import logging
12
13from avocado_qemu import Test
14
15
16class BootLinuxConsole(Test):
17 """
78664ed8
CR
18 Boots a Linux kernel and checks that the console is operational and the
19 kernel command line is properly passed from QEMU to the kernel
c1cc73f4
CR
20 """
21
61f74506 22 timeout = 90
c1cc73f4 23
b50fcd39
CR
24 KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
25
78664ed8
CR
26 def test_x86_64_pc(self):
27 """
28 :avocado: tags=arch:x86_64
29 :avocado: tags=machine:pc
30 """
7d7985b1
CR
31 kernel_url = ('https://download.fedoraproject.org/pub/fedora/linux/'
32 'releases/29/Everything/x86_64/os/images/pxeboot/vmlinuz')
33 kernel_hash = '23bebd2680757891cf7adedb033532163a792495'
c1cc73f4
CR
34 kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
35
36 self.vm.set_machine('pc')
37 self.vm.set_console()
b50fcd39 38 kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0'
c1cc73f4
CR
39 self.vm.add_args('-kernel', kernel_path,
40 '-append', kernel_command_line)
41 self.vm.launch()
42 console = self.vm.console_socket.makefile()
43 console_logger = logging.getLogger('console')
44 while True:
45 msg = console.readline()
46 console_logger.debug(msg.strip())
47 if 'Kernel command line: %s' % kernel_command_line in msg:
48 break
49 if 'Kernel panic - not syncing' in msg:
50 self.fail("Kernel panic reached")