summaryrefslogtreecommitdiffstats
path: root/test/py/u_boot_spawn.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/py/u_boot_spawn.py')
-rw-r--r--test/py/u_boot_spawn.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/test/py/u_boot_spawn.py b/test/py/u_boot_spawn.py
index a5f4a8e91b..d15517389e 100644
--- a/test/py/u_boot_spawn.py
+++ b/test/py/u_boot_spawn.py
@@ -38,6 +38,11 @@ class Spawn(object):
self.before = ''
self.after = ''
self.timeout = None
+ # http://stackoverflow.com/questions/7857352/python-regex-to-match-vt100-escape-sequences
+ # Note that re.I doesn't seem to work with this regex (or perhaps the
+ # version of Python in Ubuntu 14.04), hence the inclusion of a-z inside
+ # [] instead.
+ self.re_vt100 = re.compile('(\x1b\[|\x9b)[^@-_a-z]*[@-_a-z]|\x1b[@-_a-z]')
(self.pid, self.fd) = pty.fork()
if self.pid == 0:
@@ -168,6 +173,10 @@ class Spawn(object):
if self.logfile_read:
self.logfile_read.write(c)
self.buf += c
+ # count=0 is supposed to be the default, which indicates
+ # 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)
finally:
if self.logfile_read:
self.logfile_read.flush()
OpenPOWER on IntegriCloud