diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/py/u_boot_spawn.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/test/py/u_boot_spawn.py b/test/py/u_boot_spawn.py index a5f4a8e91ba..d15517389e5 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() |