[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