[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/5] Acceptance tests: add Linux kernel boot and con
From: |
Cleber Rosa |
Subject: |
[Qemu-devel] [PATCH 5/5] Acceptance tests: add Linux kernel boot and console checking test |
Date: |
Thu, 24 May 2018 20:58:39 -0400 |
This test boots a Linux kernel, and checks that the given command
line was effective in two ways:
* It makes the kernel use the set "console device" as a console
* The kernel records the command line as expected in the console
Given that way too many error conditions may occur, and detecting the
kernel boot progress status may not be trivial, this test relies on a
timeout to handle unexpected situations. Also, it's *not* tagged as a
quick test for obvious reasons.
It may be useful, while interactively running/debugging this test, or
tests similar to this one, to show some of the logging channels.
Example:
$ avocado --show=QMP,console run test_boot_linux_console.py
Signed-off-by: Cleber Rosa <address@hidden>
---
tests/acceptance/test_boot_linux_console.py | 37 +++++++++++++++++++++
1 file changed, 37 insertions(+)
create mode 100644 tests/acceptance/test_boot_linux_console.py
diff --git a/tests/acceptance/test_boot_linux_console.py
b/tests/acceptance/test_boot_linux_console.py
new file mode 100644
index 0000000000..52811bfe06
--- /dev/null
+++ b/tests/acceptance/test_boot_linux_console.py
@@ -0,0 +1,37 @@
+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")
--
2.17.0
- [Qemu-devel] [PATCH 0/5] Acceptance/functional tests, Cleber Rosa, 2018/05/24
- [Qemu-devel] [PATCH 2/5] scripts/qemu.py: allow adding to the list of extra arguments, Cleber Rosa, 2018/05/24
- [Qemu-devel] [PATCH 1/5] Add functional/acceptance tests infrastructure, Cleber Rosa, 2018/05/24
- [Qemu-devel] [PATCH 5/5] Acceptance tests: add Linux kernel boot and console checking test,
Cleber Rosa <=
- [Qemu-devel] [PATCH 3/5] Acceptance tests: add quick VNC tests, Cleber Rosa, 2018/05/24
- Re: [Qemu-devel] [PATCH 3/5] Acceptance tests: add quick VNC tests, Fam Zheng, 2018/05/25
- Re: [Qemu-devel] [PATCH 3/5] Acceptance tests: add quick VNC tests, Cleber Rosa, 2018/05/25
- Re: [Qemu-devel] [PATCH 3/5] Acceptance tests: add quick VNC tests, Eduardo Habkost, 2018/05/29
- Re: [Qemu-devel] [PATCH 3/5] Acceptance tests: add quick VNC tests, Cleber Rosa, 2018/05/29
- Re: [Qemu-devel] [PATCH 3/5] Acceptance tests: add quick VNC tests, Eduardo Habkost, 2018/05/29
- Re: [Qemu-devel] [PATCH 3/5] Acceptance tests: add quick VNC tests, Cleber Rosa, 2018/05/29
[Qemu-devel] [PATCH 4/5] scripts/qemu.py: introduce set_console() method, Cleber Rosa, 2018/05/24