From 27eb78b504688297c640de81df05b2c847760241 Mon Sep 17 00:00:00 2001 From: Magnus Skjegstad Date: Fri, 12 Apr 2019 21:49:48 +0200 Subject: [PATCH] Replace utf-8 errors when decoding stdout Also prints exceptions that may occur while reading stdout from the VM Signed-off-by: Magnus Skjegstad --- vmrunner/vmrunner.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vmrunner/vmrunner.py b/vmrunner/vmrunner.py index 79de67071..dc9df8888 100755 --- a/vmrunner/vmrunner.py +++ b/vmrunner/vmrunner.py @@ -320,7 +320,7 @@ def read_until_EOT(self): def readline(self): if self._proc.poll(): raise Exception("Process completed") - return self._proc.stdout.readline().decode("utf-8") + return self._proc.stdout.readline().decode("utf-8", errors="replace") def writeline(self, line): @@ -662,7 +662,7 @@ def read_until_EOT(self): chars = "" while (not self._proc.poll()): - char = self._proc.stdout.read(1).decode("utf-8") + char = self._proc.stdout.read(1).decode("utf-8", errors="replace") if char == chr(4): return chars chars += char @@ -673,7 +673,7 @@ def read_until_EOT(self): def readline(self): if self._proc.poll(): raise Exception("Process completed") - return self._proc.stdout.readline().decode("utf-8") + return self._proc.stdout.readline().decode("utf-8", errors="replace") def writeline(self, line): @@ -947,7 +947,7 @@ def boot(self, timeout = 60, multiboot = True, debug = False, kernel_args = "boo try: line = self._hyper.readline() except Exception as e: - print(color.WARNING("Exception thrown while waiting for vm output")) + print(color.WARNING("Exception thrown while waiting for vm output: %s" % e)) break if line and self.find_exit_status(line) == None: