From 9e036b011e46a548084e824e62adec8e12a29c82 Mon Sep 17 00:00:00 2001 From: Leonardo Sandoval Date: Fri, 22 Sep 2017 16:05:41 -0700 Subject: qemurunner: print tail qemu log in case bootlog is empty There are cases where the 'while loop' waiting for login prompt fails and the bootlog variable does not get populated, thus use the the new qemurunner member (self.msg) which stores all output coming from the qemu process. [YOCTO #12113] (From OE-Core rev: 39ffa0f3779305c5e8ef86fe4572e961c5912021) (From OE-Core rev: 40f9f0358184660f23ac7b5fc3e477e2c54e21bc) Signed-off-by: Leonardo Sandoval Signed-off-by: Richard Purdie Signed-off-by: Armin Kuster Signed-off-by: Richard Purdie --- meta/lib/oeqa/utils/qemurunner.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py index be50d5e771..b9fa95eff2 100644 --- a/meta/lib/oeqa/utils/qemurunner.py +++ b/meta/lib/oeqa/utils/qemurunner.py @@ -51,6 +51,7 @@ class QemuRunner: self.logged = False self.thread = None self.use_kvm = use_kvm + self.msg = '' self.runqemutime = 120 self.qemu_pidfile = 'pidfile_'+str(os.getpid()) @@ -79,6 +80,7 @@ class QemuRunner: # because is possible to have control characters msg = msg.decode("utf-8", errors='ignore') msg = re_control_char.sub('', msg) + self.msg += msg with codecs.open(self.logfile, "a", encoding="utf-8") as f: f.write("%s" % msg) @@ -306,9 +308,12 @@ class QemuRunner: sock.close() stopread = True + if not reachedlogin: self.logger.info("Target didn't reached login boot in %d seconds" % self.boottime) - lines = "\n".join(bootlog.splitlines()[-25:]) + 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) self.logger.info("Last 25 lines of text:\n%s" % lines) self.logger.info("Check full boot log: %s" % self.logfile) self._dump_host() -- cgit v1.2.3-54-g00ecf