utils: qemurunner.py: Log both 'failed to reach login banner" reasons

The current logging always assumes the boot timeout has expired yet
there is a second reason we might have ended up in a position where no
login banner was found, that being a socket disconnect. Add logging
for the disconnect case and make the timeout expiration conditional on
the timeout being exhausted.

(From OE-Core rev: 49403368ccf3e469ac111afa259a38cc11e0b688)

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mark Asselstine
2017-12-01 11:30:12 -05:00
committed by Richard Purdie
parent 6fca24f499
commit c8f28c15e7

View File

@@ -307,14 +307,18 @@ class QemuRunner:
(time.time() - (endtime - self.boottime),
time.strftime("%D %H:%M:%S")))
else:
# no need to check if reachedlogin unless we support multiple connections
self.logger.debug("QEMU socket disconnected before login banner reached. (%s)" %
time.strftime("%D %H:%M:%S"))
socklist.remove(sock)
sock.close()
stopread = True
if not reachedlogin:
self.logger.debug("Target didn't reached login boot in %d seconds (%s)" %
(self.boottime, time.strftime("%D %H:%M:%S")))
if time.time() >= endtime:
self.logger.debug("Target didn't reached login boot in %d seconds (%s)" %
(self.boottime, time.strftime("%D %H:%M:%S")))
tail = lambda l: "\n".join(l.splitlines()[-25:])
# in case bootlog is empty, use tail qemu log store at self.msg
lines = tail(bootlog if bootlog else self.msg)