diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-11-21 11:42:54 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-11-21 13:11:03 +0000 |
commit | a9d7f098f9cee38aa06967e31afea10006986fb6 (patch) | |
tree | 93f0b08ead98bd8987884b50b430938e12795099 /meta/lib/oeqa/utils | |
parent | 0c2ba7146837af473b3f9f8bdbbb93af61db03e3 (diff) | |
download | poky-a9d7f098f9cee38aa06967e31afea10006986fb6.tar.gz |
qemurunner: Simplify binary data handling
I have concerns that bad timing of the flow of data from the logger
might corrupt the output due to the way binary strings are handled
in qemurunner.
This simplifies the code to do the same thing it did before but much
more safely.
(From OE-Core rev: 1e87283e92a2765bb5d54d17138b208bc395953b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa/utils')
-rw-r--r-- | meta/lib/oeqa/utils/qemurunner.py | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py index 82335d8456..0631d43218 100644 --- a/meta/lib/oeqa/utils/qemurunner.py +++ b/meta/lib/oeqa/utils/qemurunner.py | |||
@@ -275,7 +275,7 @@ class QemuRunner: | |||
275 | reachedlogin = False | 275 | reachedlogin = False |
276 | stopread = False | 276 | stopread = False |
277 | qemusock = None | 277 | qemusock = None |
278 | bootlog = '' | 278 | bootlog = b'' |
279 | data = b'' | 279 | data = b'' |
280 | while time.time() < endtime and not stopread: | 280 | while time.time() < endtime and not stopread: |
281 | try: | 281 | try: |
@@ -292,17 +292,13 @@ class QemuRunner: | |||
292 | else: | 292 | else: |
293 | data = data + sock.recv(1024) | 293 | data = data + sock.recv(1024) |
294 | if data: | 294 | if data: |
295 | try: | 295 | bootlog += data |
296 | data = data.decode("utf-8", errors="surrogateescape") | 296 | data = b'' |
297 | bootlog += data | 297 | if b' login:' in bootlog: |
298 | data = b'' | 298 | self.server_socket = qemusock |
299 | if re.search(".* login:", bootlog): | 299 | stopread = True |
300 | self.server_socket = qemusock | 300 | reachedlogin = True |
301 | stopread = True | 301 | self.logger.debug("Reached login banner") |
302 | reachedlogin = True | ||
303 | self.logger.debug("Reached login banner") | ||
304 | except UnicodeDecodeError: | ||
305 | continue | ||
306 | else: | 302 | else: |
307 | socklist.remove(sock) | 303 | socklist.remove(sock) |
308 | sock.close() | 304 | sock.close() |