[Piglit] [PATCH 3/5] framework: handle UnicodeDecodeError
Marek Olšák
maraeo at gmail.com
Wed May 2 20:55:06 UTC 2018
On Wed, May 2, 2018 at 4:48 PM, Dylan Baker <dylan at pnwbakers.com> wrote:
> Quoting Marek Olšák (2018-05-02 13:32:45)
> > From: Marek Olšák <marek.olsak at amd.com>
> >
> > This happens due to LLVM printing colored text into stdout/stderr on
> error.
> > ---
> > framework/test/base.py | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/framework/test/base.py b/framework/test/base.py
> > index 134b87245..f187c0210 100644
> > --- a/framework/test/base.py
> > +++ b/framework/test/base.py
> > @@ -369,20 +369,23 @@ class Test(object):
> > os.killpg(os.getpgid(proc.pid), signal.SIGKILL)
> >
> > # Since the process isn't running it's safe to get any
> remaining
> > # stdout/stderr values out and store them.
> > self.result.out, self.result.err = proc.communicate()
> >
> > raise TestRunError(
> > 'Test run time exceeded timeout value ({}
> seconds)\n'.format(
> > self.timeout),
> > 'timeout')
> > + # LLVM prints colored text into stdout/stderr on error, which
> raises:
> > + except UnicodeDecodeError as e:
> > + raise TestRunError("UnicodeDecodeError.\n", 'crash')
>
> This seems odd to me, Popen.communicate() returns bytes, and the
> conversion is
> done right after this (it's hideous, but there is a setter function for
> result.out and result.err that converts bytes to unicode), but is uses
> replace
> for characters it doesn't understand.
>
I doubt that it can filter out shell colors, though I'm not sure right now.
If I encounter the error again, can I just push this without Rb?
Marek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20180502/24debfcb/attachment.html>
More information about the Piglit
mailing list