mirror of
https://git.busybox.net/buildroot.git
synced 2024-11-30 17:03:31 +08:00
support/scripts/boot-qemu-image.py: properly catch timeout
As reported on IRC by sephthir, the gitlab test of the defconfig qemu_sparc_ss10_defconfig doesn't error out while the system is not working properly. This is because we explicitly wait for the timeout as an expected condition, but do not check for it. Indeed, pexpect.expect() returns the index of the matching condition in the list of expected conditions, but we just ignore the return code, so we are not able to differentiate between a successful login (or prompt) from a timeout. By default, pexepect.expect() raises the pexpect.TIMEOUT exception on a timeout, and we are already prepared to catch and handle that exception. But because pexpect.TIMEOUT is passed as an expected condition, the exception is not raised. Remove pexpect.TIMEOUT from the list of expected conditions, so that the exception is properly raised again, and so that we can catch it. The qemu_sparc_ss10_defconfig is already fixed by4d16e6f532
. Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Jugurtha BELKALEM <jugurtha.belkalem@smile.fr> [yann.morin.1998@free.fr: reword commit log] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> (cherry picked from commit03c3fbd81c
) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
a1e6dc0609
commit
6bf41019fb
@ -32,7 +32,7 @@ def main():
|
||||
time.sleep(1)
|
||||
|
||||
try:
|
||||
child.expect(["buildroot login:", pexpect.TIMEOUT], timeout=60)
|
||||
child.expect(["buildroot login:"], timeout=60)
|
||||
except pexpect.EOF as e:
|
||||
# Some emulations require a fork of qemu-system, which may be
|
||||
# missing on the system, and is not provided by Buildroot.
|
||||
@ -54,7 +54,7 @@ def main():
|
||||
child.sendline("root\r")
|
||||
|
||||
try:
|
||||
child.expect(["# ", pexpect.TIMEOUT], timeout=60)
|
||||
child.expect(["# "], timeout=60)
|
||||
except pexpect.EOF:
|
||||
print("Cannot connect to shell")
|
||||
sys.exit(1)
|
||||
@ -65,7 +65,7 @@ def main():
|
||||
child.sendline("poweroff\r")
|
||||
|
||||
try:
|
||||
child.expect(["System halted", pexpect.TIMEOUT], timeout=60)
|
||||
child.expect(["System halted"], timeout=60)
|
||||
child.expect(pexpect.EOF)
|
||||
except pexpect.EOF:
|
||||
pass
|
||||
|
Loading…
Reference in New Issue
Block a user