]> code.ossystems Code Review - openembedded-core.git/commitdiff
oeqa/qemurunner: Improve handling of run_serial for shutdown commands
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 9 May 2021 09:59:44 +0000 (10:59 +0100)
committerSteve Sakoman <steve@sakoman.com>
Fri, 14 May 2021 17:16:38 +0000 (07:16 -1000)
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.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 396a3ba884820d040c91f7592daf20ac28c49b5d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
meta/lib/oeqa/utils/qemurunner.py

index 09ef9fadb284fbe067e65adf2a9acfd794f79bff..79db2cc2472fd92ca0e9e85d2e7838e137babcb1 100644 (file)
@@ -70,6 +70,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
@@ -468,6 +470,7 @@ class QemuRunner:
             self.thread.join()
 
     def allowexit(self):
+        self.canexit = True
         if self.thread:
             self.thread.allowexit()
 
@@ -526,7 +529,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: