All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eduardo Habkost <ehabkost@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>,
	qemu-devel@nongnu.org, Cleber Rosa <crosa@redhat.com>
Subject: [Qemu-devel] [PULL 11/19] tests/boot_linux_console: refactor the console watcher into utility method
Date: Thu,  2 May 2019 21:41:22 -0300	[thread overview]
Message-ID: <20190503004130.8285-12-ehabkost@redhat.com> (raw)
In-Reply-To: <20190503004130.8285-1-ehabkost@redhat.com>

From: Cleber Rosa <crosa@redhat.com>

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 <crosa@redhat.com>
Reviewed-by: Caio Carrara <ccarrara@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20190312171824.5134-12-crosa@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 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 bfcae3771b..32f1d4d0bf 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -23,6 +23,25 @@ class BootLinuxConsole(Test):
 
     KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
 
+    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)
+
     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)
-- 
2.18.0.rc1.1.g3f1ff2140

  parent reply	other threads:[~2019-05-03  0:42 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-03  0:41 [Qemu-devel] [PULL 00/19] Python queue, 2019-05-02 Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 01/19] tests/acceptance: show avocado test execution by default Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 02/19] tests/acceptance: improve docstring on pick_default_qemu_bin() Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 03/19] tests/acceptance: fix doc reference to avocado_qemu directory Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 04/19] tests/acceptance: introduce arch parameter and attribute Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 05/19] tests/acceptance: use "arch:" tag to filter target specific tests Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 06/19] tests/acceptance: look for target architecture in test tags first Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 07/19] tests/boot_linux_console: rename the x86_64 after the arch and machine Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 08/19] tests/boot_linux_console: update the x86_64 kernel Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 09/19] tests/boot_linux_console: add common kernel command line options Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 10/19] tests/boot_linux_console: increase timeout Eduardo Habkost
2019-05-08 10:28   ` Gerd Hoffmann
2019-05-08 14:39     ` Cleber Rosa
2019-05-09  4:40       ` Gerd Hoffmann
2019-05-09 18:12         ` Cleber Rosa
2019-05-10  6:06           ` Gerd Hoffmann
2019-05-03  0:41 ` Eduardo Habkost [this message]
2019-05-03  0:41 ` [Qemu-devel] [PULL 12/19] scripts/qemu.py: support adding a console with the default serial device Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 13/19] tests/boot_linux_console: add a test for mips + malta Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 14/19] tests/boot_linux_console: add a test for mips64el " Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 15/19] tests/boot_linux_console: add a test for aarch64 + virt Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 16/19] tests/boot_linux_console: add a test for arm " Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 17/19] tests/boot_linux_console: add a test for s390x + s390-ccw-virtio Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 18/19] tests/boot_linux_console: add a test for alpha + clipper Eduardo Habkost
2019-05-03  0:41 ` [Qemu-devel] [PULL 19/19] configure: automatically pick python3 is available Eduardo Habkost
2019-05-03 16:41   ` Thomas Huth
2019-05-03 16:54     ` Daniel P. Berrangé
2019-05-03 16:54       ` Daniel P. Berrangé
2019-05-03 16:56       ` Daniel P. Berrangé
2019-05-03 16:56         ` Daniel P. Berrangé
2019-05-03 17:04     ` Philippe Mathieu-Daudé
2019-05-04  6:41       ` Thomas Huth
2019-05-04  6:41         ` Thomas Huth
2019-05-03 21:00     ` Eduardo Habkost
2019-05-03 21:00       ` Eduardo Habkost
2019-05-03 21:34       ` Eduardo Habkost
2019-05-03 21:34         ` Eduardo Habkost
2019-05-04  7:17         ` Thomas Huth
2019-05-04  7:17           ` Thomas Huth
2019-05-03 15:02 ` [Qemu-devel] [PULL 00/19] Python queue, 2019-05-02 Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190503004130.8285-12-ehabkost@redhat.com \
    --to=ehabkost@redhat.com \
    --cc=crosa@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.