diff options
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/lib/oeqa/utils/qemurunner.py | 31 | 
1 files changed, 18 insertions, 13 deletions
| diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py index fc2e244a7f..3e604d8155 100644 --- a/meta/lib/oeqa/utils/qemurunner.py +++ b/meta/lib/oeqa/utils/qemurunner.py @@ -177,7 +177,7 @@ class QemuRunner:                  self.stop()                  return False -            (status, output) = self.run_serial("root\n") +            (status, output) = self.run_serial("root\n", raw=True)              if re.search("root@[a-zA-Z0-9\-]+:~#", output):                  self.logged = True                  logger.info("Logged as root in serial console") @@ -274,9 +274,11 @@ class QemuRunner:              if "qemu-system" in basecmd and "-serial tcp" in commands[p]:                  return [int(p),commands[p]] -    def run_serial(self, command): +    def run_serial(self, command, raw=False):          # We assume target system have echo to get command status -        self.server_socket.sendall("%s; echo $?\n" % command) +        if not raw: +            command = "%s; echo $?\n" % command +        self.server_socket.sendall(command)          data = ''          status = 0          stopread = False @@ -291,15 +293,18 @@ class QemuRunner:                                  sock.close()                                  stopread = True          if data: -            # Remove first line (command line) and last line (prompt) -            data = data[data.find('$?\r\n')+4:data.rfind('\r\n')] -            index = data.rfind('\r\n') -            if index == -1: -                status_cmd = data -                data = "" -            else: -                status_cmd = data[index+2:] -                data = data[:index] -            if (status_cmd == "0"): +            if raw:                  status = 1 +            else: +                # Remove first line (command line) and last line (prompt) +                data = data[data.find('$?\r\n')+4:data.rfind('\r\n')] +                index = data.rfind('\r\n') +                if index == -1: +                    status_cmd = data +                    data = "" +                else: +                    status_cmd = data[index+2:] +                    data = data[:index] +                if (status_cmd == "0"): +                    status = 1          return (status, str(data)) | 
