[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 09/24] avocado_qemu: Ignore kernel messages on get_con
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 09/24] avocado_qemu: Ignore kernel messages on get_console |
Date: |
Fri, 20 Apr 2018 15:19:36 -0300 |
From: Lukáš Doktor <address@hidden>
The get_console (and _handle_prompt) uses the last non-empty line to
check what is going on, but when debug is enabled, kernel produces lots
of lines spoiling the output. Let's also ignore the messages that looks
like kernel debugs ([ $float] $msg).
This significantly improves the results on my machine with JeOS and
enabled debug.
Signed-off-by: Lukáš Doktor <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
---
tests/avocado/avocado_qemu/test.py | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/tests/avocado/avocado_qemu/test.py
b/tests/avocado/avocado_qemu/test.py
index 9dc6c1ef91..966936a52f 100644
--- a/tests/avocado/avocado_qemu/test.py
+++ b/tests/avocado/avocado_qemu/test.py
@@ -26,6 +26,7 @@ extra features intended for Qemu testing.
import logging
import os
+import re
import sys
import time
import uuid
@@ -120,6 +121,17 @@ def _handle_prompts(session, username, password, prompt,
timeout=60,
:return: If connect succeed return the output text to script for further
debug.
"""
+ re_kernel_message = re.compile(r"^\[\s*\d+.\d+\] ")
+
+ def get_last_nonempty_line(cont):
+ """Return last non-empty non-kernel line"""
+ nonempty_lines = [_ for _ in cont.splitlines()
+ if _.strip() and not re_kernel_message.match(_)]
+ if nonempty_lines:
+ return nonempty_lines[-1]
+ else:
+ return ""
+
password_prompt_count = 0
login_prompt_count = 0
last_chance = False
@@ -128,7 +140,7 @@ def _handle_prompts(session, username, password, prompt,
timeout=60,
output = ""
while True:
try:
- match, text = session.read_until_last_line_matches(
+ match, text = session.read_until_output_matches(
[r"[Aa]re you sure", r"[Pp]assword:\s*",
# Prompt of rescue mode for Red Hat.
r"\(or (press|type) Control-D to continue\):\s*",
@@ -137,7 +149,7 @@ def _handle_prompts(session, username, password, prompt,
timeout=60,
r"[Cc]onnection.*closed", r"[Cc]onnection.*refused",
r"[Pp]lease wait", r"[Ww]arning", r"[Ee]nter.*username",
r"[Ee]nter.*password", r"[Cc]onnection timed out", prompt,
- r"Escape character is.*"],
+ r"Escape character is.*"], get_last_nonempty_line,
timeout=timeout, internal_timeout=0.5)
output += text
if match == 0: # "Are you sure you want to continue connecting"
--
2.14.3
- Re: [Qemu-devel] [RFC 01/24] qemu.py: Introduce _create_console() method, (continued)
[Qemu-devel] [RFC 02/24] Introduce the basic framework to run Avocado tests, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 03/24] avocado_qemu: Improve handle_prompts to allow login after booted vm, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 04/24] avocado_qemu: Be lenient towards poluted serial console, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 05/24] avocado_qemu: Increase the login timeout to 60s, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 06/24] avocado_qemu: Add " " after the default prompt regexp, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 07/24] avocado_qemu: Store "arch" in VM, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 08/24] avocado_qemu: Provide defaults for user and pass, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 09/24] avocado_qemu: Ignore kernel messages on get_console,
Eduardo Habkost <=
[Qemu-devel] [RFC 10/24] avocado_qemu: Add support to request image for testing, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 11/24] avocado_qemu: Fix exception name in caller, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 12/24] avocado_qemu: Improve migration error message, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 13/24] avocado_qemu: Functional test for RHBZ#1431939, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 14/24] avocado_qemu: Functional test for RHBZ#1447027, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 15/24] avocado_qemu: Functional test for RHBZ#1436616, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 16/24] avocado_qemu: Functional test for RHBZ1473203, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 17/24] avocado_qemu: Remove duplicate PortTracker implementation, Eduardo Habkost, 2018/04/20
[Qemu-devel] [RFC 19/24] avocado_qemu: Clean unneeded 'pass', Eduardo Habkost, 2018/04/20