qemurunner: configurable timeout for run_serial()

Some commands might need to run longer than the default timeout of
five seconds. If that occurred, run_serial() returned with a status
code of zero (sic!) and no other indication of what went wrong.

Now the timeout is configurable (with five still the default) and
an explicit warning ("<<< run_serial(): command timed out after 5 seconds without output >>>")
gets appended at the end of the data returned to the caller.

While at it, the logic for checking for the timeout was updated a bit
because both implementations could overshoot the timeout when entering
select() right before the final deadline.

(From OE-Core rev: accf0362f964cc9d6330b6e52e83d748d890521f)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Patrick Ohly
2017-03-24 22:46:16 +01:00
committed by Richard Purdie
parent 1e3f04f86a
commit 58e6e7c204
3 changed files with 17 additions and 12 deletions

View File

@@ -206,8 +206,8 @@ class QemuTarget(BaseTarget):
else:
raise bb.build.FuncFailed("%s - FAILED to re-start qemu - check the task log and the boot log" % self.pn)
def run_serial(self, command):
return self.runner.run_serial(command)
def run_serial(self, command, timeout=5):
return self.runner.run_serial(command, timeout=timeout)
class SimpleRemoteTarget(BaseTarget):