diff options
author | Peter Maydell | 2018-06-19 11:10:40 +0200 |
---|---|---|
committer | Peter Maydell | 2018-06-19 11:10:40 +0200 |
commit | c5ee5cd9db1e5edb9de002e90fbcb16952de9c07 (patch) | |
tree | 4390f9565f0fbbb2cba327afeebcd8fc79e51db2 /tests/acceptance/boot_linux_console.py | |
parent | Merge remote-tracking branch 'remotes/dgilbert/tags/pull-migration-20180615a'... (diff) | |
parent | configure: Enable out-of-tree acceptance tests (diff) | |
download | qemu-c5ee5cd9db1e5edb9de002e90fbcb16952de9c07.tar.gz qemu-c5ee5cd9db1e5edb9de002e90fbcb16952de9c07.tar.xz qemu-c5ee5cd9db1e5edb9de002e90fbcb16952de9c07.zip |
Merge remote-tracking branch 'remotes/ehabkost/tags/python-next-pull-request' into staging
Python queue, 2018-06-15
* Add avocado_qemu: functional/acceptance test infrastructure
# gpg: Signature made Fri 15 Jun 2018 20:12:20 BST
# gpg: using RSA key 2807936F984DC5A6
# gpg: Good signature from "Eduardo Habkost <ehabkost@redhat.com>"
# Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF D1AA 2807 936F 984D C5A6
* remotes/ehabkost/tags/python-next-pull-request:
configure: Enable out-of-tree acceptance tests
Acceptance tests: add Linux kernel boot and console checking test
scripts/qemu.py: introduce set_console() method
Acceptance tests: add quick VNC tests
scripts/qemu.py: allow adding to the list of extra arguments
Add functional/acceptance tests infrastructure
Remove COPYING.PYTHON
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'tests/acceptance/boot_linux_console.py')
-rw-r--r-- | tests/acceptance/boot_linux_console.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py new file mode 100644 index 0000000000..98324f7591 --- /dev/null +++ b/tests/acceptance/boot_linux_console.py @@ -0,0 +1,47 @@ +# Functional test that boots a Linux kernel and checks the console +# +# Copyright (c) 2018 Red Hat, Inc. +# +# Author: +# Cleber Rosa <crosa@redhat.com> +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +import logging + +from avocado_qemu import Test + + +class BootLinuxConsole(Test): + """ + Boots a x86_64 Linux kernel and checks that the console is operational + and the kernel command line is properly passed from QEMU to the kernel + + :avocado: enable + :avocado: tags=x86_64 + """ + + timeout = 60 + + def test(self): + kernel_url = ('https://mirrors.kernel.org/fedora/releases/28/' + 'Everything/x86_64/os/images/pxeboot/vmlinuz') + kernel_hash = '238e083e114c48200f80d889f7e32eeb2793e02a' + kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash) + + self.vm.set_machine('pc') + self.vm.set_console() + kernel_command_line = 'console=ttyS0' + self.vm.add_args('-kernel', kernel_path, + '-append', kernel_command_line) + self.vm.launch() + console = self.vm.console_socket.makefile() + console_logger = logging.getLogger('console') + while True: + msg = console.readline() + console_logger.debug(msg.strip()) + if 'Kernel command line: %s' % kernel_command_line in msg: + break + if 'Kernel panic - not syncing' in msg: + self.fail("Kernel panic reached") |