[Mesa-dev] [PATCH 1/2] compiler/glsl/tests: Make tests python3 safe

Dylan Baker dylan at pnwbakers.com
Fri Aug 17 18:08:27 UTC 2018


Quoting Mathieu Bridon (2018-08-17 11:01:23)
> On Fri, 2018-08-17 at 10:45 -0700, Dylan Baker wrote:
> > Quoting Mathieu Bridon (2018-08-16 15:00:39)
> > > On Thu, 2018-08-16 at 14:21 -0700, Dylan Baker wrote:
> > > > ---
> > > > 
> > > > I didn't see any patches from anyone else, so I wrote some real
> > > > quick. Please
> > > > point to them if other patches already exist.
> > > 
> > > I was about to send mine, but you were faster. >_<
> > > 
> > > They ar every similar though, except that you missed glcpp_test.py,
> > > which requires a few more changes. (I have them ready, and can send
> > > them separately)
> > > 
> > > > diff --git a/src/compiler/glsl/tests/optimization_test.py
> > > > b/src/compiler/glsl/tests/optimization_test.py
> > > > index 577d2dfc20f..f40d0cee6bd 100755
> > > > --- a/src/compiler/glsl/tests/optimization_test.py
> > > > +++ b/src/compiler/glsl/tests/optimization_test.py
> > > > @@ -1,4 +1,4 @@
> > > > -#!/usr/bin/env python2
> > > > +#!/usr/bin/env python
> > > >  # encoding=utf-8
> > > >  # Copyright © 2018 Intel Corporation
> > > >  
> > > > @@ -71,7 +71,9 @@ def main():
> > > >                  stdout=subprocess.PIPE,
> > > >                  stderr=subprocess.PIPE,
> > > >                  stdin=subprocess.PIPE)
> > > > -            out, err = proc.communicate(source)
> > > > +            out, err = proc.communicate(source.encode())
> > > > +            out = out.decode()
> > > > +            err = err.decode()
> > > 
> > > I usually find it too unpredictable to use the default encoding,
> > > and
> > > prefer always specifying 'utf-8'. (even on Python 3, you can't be
> > > sure
> > > that will always be the default)
> > 
> > That's true I guess. I've never seen anyone build python with utf-8
> > as not the default, but they can so we should do the right thing.
> 
> That's not a build-time thing though:
> 
>   $ python3 -c 'print("é".encode())'
>   b'\xc3\xa9'
>   $ LC_ALL=C python3 -c 'print("é".encode())'
>   Unable to decode the command from the command line:
>   UnicodeEncodeError: 'utf-8' codec can't encode characters in position 7-8: surrogates not allowed
> 
> This happens regularly in some containers-like environment or SSH-ing
> to a server which doesn't have your client locale.
> 
> 
> -- 
> Mathieu
> 

Ah, I always have some kind of utf-8 encoding on machines I have access to, and
never need containers. I guess that explains why I've never seen that.
-------------- 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/mesa-dev/attachments/20180817/ff8c3a0b/attachment.sig>


More information about the mesa-dev mailing list