[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 10/18] Boot Linux Console Test: refactor the con
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH 10/18] Boot Linux Console Test: refactor the console watcher into utility method |
Date: |
Tue, 22 Jan 2019 11:06:29 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
Hi Cleber,
On 1/17/19 7:56 PM, Cleber Rosa wrote:
> This introduces a utility method that monitors the console device and
> looks for either a message that signals the test success or failure.
>
> Signed-off-by: Cleber Rosa <address@hidden>
> ---
> tests/acceptance/boot_linux_console.py | 30 ++++++++++++++++++--------
> 1 file changed, 21 insertions(+), 9 deletions(-)
>
> diff --git a/tests/acceptance/boot_linux_console.py
> b/tests/acceptance/boot_linux_console.py
> index 35b31162d4..278bb2be3d 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -23,6 +23,25 @@ class BootLinuxConsole(Test):
>
> timeout = 60
>
> + def wait_for_console_pattern(self, success_message,
> + failure_message='Kernel panic - not
> syncing'):
> + """
> + Waits for messages to appear on the console, while logging the
> content
> +
> + :param success_message: if this message appears, test succeeds
> + :param failure_message: if this message appears, test fails
> + """
> + console = self.vm.console_socket.makefile()
> + console_logger = logging.getLogger('console')
> + while True:
> + msg = console.readline()
> + console_logger.debug(msg.strip())
> + if success_message in msg:
> + break
> + if failure_message in msg:
> + fail = 'Failure message found in console: %s' %
> failure_message
> + self.fail(fail)
> +
This helper is more generic than the BootLinuxConsole class, can you
move it out? I'd like to use it in test_uefi_ovmf_x86_64_pc and
test_uefi_armvirtqemu_aarch64_virt.
Anyway this can be a follow-up patch, so regardless:
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
> def test_x86_64_pc(self):
> """
> :avocado: tags=arch:x86_64
> @@ -39,12 +58,5 @@ class BootLinuxConsole(Test):
> 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")
> + console_pattern = 'Kernel command line: %s' % kernel_command_line
> + self.wait_for_console_pattern(console_pattern)
>
- Re: [Qemu-devel] [PATCH 05/18] Acceptance tests: introduce arch parameter and attribute, (continued)
- [Qemu-devel] [PATCH 15/18] Boot Linux Console Test: add a test for aarch64 + virt, Cleber Rosa, 2019/01/17
- [Qemu-devel] [PATCH 03/18] Acceptance tests: improve docstring on pick_default_qemu_bin(), Cleber Rosa, 2019/01/17
- [Qemu-devel] [PATCH 10/18] Boot Linux Console Test: refactor the console watcher into utility method, Cleber Rosa, 2019/01/17
- [Qemu-devel] [PATCH 08/18] Boot Linux Console Test: rename the x86_64 after the arch and machine, Cleber Rosa, 2019/01/17
- [Qemu-devel] [PATCH 14/18] Boot Linux Console Test: add a test for ppc64 + pseries, Cleber Rosa, 2019/01/17