[U-Boot] [PATCH 1/1] test/py: catch errors occurring when reading the console
Heinrich Schuchardt
xypron.glpk at gmx.de
Thu Sep 20 18:19:32 UTC 2018
Spawn.exept has a try block without 'except'.
When the py test is running it is connected via pipes to the U-Boot
process. If the U-Boot process ends prematurely, e.g. due to a
segmentation fault, the pipes are broken. Trying to read from a broken
pipe results in an OSError. Catch the exception and treat the broken pipe
like any other end of output. By returning None expect() indicates that
the output does not match.
Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
Reviewed-by: Simon Glass <sjg at chromium.org>
---
I suggest that Alex takes the patch because we need it when working on
the efi-next branch.
v3
add more comments
v2
replace TAB by spaces
fix type in subject
---
test/py/u_boot_spawn.py | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/test/py/u_boot_spawn.py b/test/py/u_boot_spawn.py
index b011a3e3da..adc1d00287 100644
--- a/test/py/u_boot_spawn.py
+++ b/test/py/u_boot_spawn.py
@@ -181,6 +181,14 @@ class Spawn(object):
# unlimited substitutions, but in practice the version of
# Python in Ubuntu 14.04 appears to default to count=2!
self.buf = self.re_vt100.sub('', self.buf, count=1000000)
+ except OSError, EOFError:
+ # When the py test is running it is connected via pipes to the
+ # U-Boot process. If the U-Boot process ends prematurely, e.g. due
+ # to a segmentation fault, the pipes are broken. Trying to read
+ # from a broken pipe results in an OSError. Treat the broken pipe
+ # like any other end of output. By returning None expect()
+ # indicates that the output does not match.
+ pass
finally:
if self.logfile_read:
self.logfile_read.flush()
--
2.18.0
More information about the U-Boot
mailing list