[Piglit] [PATCH 3/5] framework: handle UnicodeDecodeError
Dylan Baker
dylan at pnwbakers.com
Wed May 2 21:15:04 UTC 2018
Quoting Marek Olšák (2018-05-02 13:55:06)
> 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
Actually, I take that back, apparently univeral_newlines in python3 makes out
and err a text stream instead of a byte stream. I think in the long term we
should dump universal newlines to avoid this sort of problem, but for now this
seems reasonable.
Reviewed-by: Dylan Baker <dylan at pnwbakers.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20180502/367cf4d8/attachment.sig>
More information about the Piglit
mailing list