From 4634aca5c2500fde16cdde3895776907ff7495e6 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 9 May 2021 10:59:44 +0100 Subject: oeqa/qemurunner: Improve handling of run_serial for shutdown commands When running a shutdown command, the serial port can close without the command returning. This is seen as the socket being readable but having no data. Change the way this case is handled in the code to avoid tracebacks. (From OE-Core rev: a72572532b976a4c3e8fa68fe63f63e39399ee88) Signed-off-by: Richard Purdie (cherry picked from commit 396a3ba884820d040c91f7592daf20ac28c49b5d) Signed-off-by: Anuj Mittal Signed-off-by: Richard Purdie --- meta/lib/oeqa/utils/qemurunner.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py index 526b493669..a0f17d557b 100644 --- a/meta/lib/oeqa/utils/qemurunner.py +++ b/meta/lib/oeqa/utils/qemurunner.py @@ -71,6 +71,8 @@ class QemuRunner: self.monitorpipe = None self.logger = logger + # Whether we're expecting an exit and should show related errors + self.canexit = False # Enable testing other OS's # Set commands for target communication, and default to Linux ALWAYS @@ -472,6 +474,7 @@ class QemuRunner: self.thread.join() def allowexit(self): + self.canexit = True if self.thread: self.thread.allowexit() @@ -530,7 +533,9 @@ class QemuRunner: if re.search(self.boot_patterns['search_cmd_finished'], data): break else: - raise Exception("No data on serial console socket") + if self.canexit: + return (1, "") + raise Exception("No data on serial console socket, connection closed?") if data: if raw: -- cgit v1.2.3-54-g00ecf