[Piglit] Convert from python2 to python3

Tom Stellard tom at stellard.net
Tue Feb 25 13:09:34 PST 2014


On Tue, Feb 25, 2014 at 01:05:07PM -0800, Dylan Baker wrote:
> On Tuesday, February 25, 2014 03:53:57 PM Tom Stellard wrote:
> > On Mon, Feb 24, 2014 at 11:42:37AM -0800, Dylan Baker wrote:
> > > This series makes the transition from python2 to python3. In general
> > > this is done via the 2to3 utility provided by the python project,
> > > however, there are some cases that have been further edited, usually
> > > becasue 2to3 is very fond of replacing iterators with list(iterator).
> > > 
> > > I have targeted python 3.3 as the version, it is the latest stable
> > > version of python (3.4 is expected this year), and provides a number of
> > > features that would be very useful, like the ability to implement test
> > > timeouts trivially.
> > > 
> > > There are some interesting changes between the two versions worth
> > > pointing out:
> > > 
> > > 1) Everything is an iterator. If you need a list returned that must be
> > > 
> > >    done explicitly.
> > > 
> > > 2) Int and Long have been joined into a single class. This has
> > > 
> > >    interesting implications for the generated tests where numpy is not
> > >    used.
> > > 
> > > 3) Python3 does not format floats the same way. It is probably better to
> > > 
> > >    use numpy anyway
> > > 
> > > 4) mixing spaces and tabs in python2 generates a runtime warning, in
> > > 
> > >    python3 it generates an runtime exception.
> > > 
> > > 5) Numerous broken things in python2 are fixed in python3
> > > 
> > > Patches 1-2: Lay groundwork to ease the transition
> > > Patch 3:     Converts framework to python3 this is a clean transition
> > > 
> > > 			 and shouldn't cause any problems
> > > 
> > > Patch 4:     Changes the generators. There are definately some changes
> > > 
> > > 			 here that might be problematic
> > > 
> > > Patch 5:     Converts CMakeLists to use python3.3 instead of python2
> > > 
> > > 
> > > Jose: I have cc'd you becasue I couldn't find a quick and easy fix for
> > > framework/junit.py, which IIRC you wrote and maintain seperatly from
> > > piglit, do you have a python3 version?
> > > 
> > > Tom: I cannot test the CL generated tests, my r600 machine is not
> > > working at the moment, and I have noticed a loss of 5 points of
> > > percision on a number of tests, if that is a problem I will convert the
> > > CL generators to use numpy instead.
> > 
> > I just run the OpenCL tests with your python3-merge branch.  I've attached
> > a patch to fix a crash in the opencv tests.  I'm also getting an error
> > when trying to run piglit-summary-html.py:
> > 
> > Traceback (most recent call last):
> >   File "./piglit-summary-html.py", line 98, in <module>
> >     main()
> >   File "./piglit-summary-html.py", line 94, in main
> >     output.generate_html(args.summaryDir, args.exclude_details)
> >   File "/home/tstellar/piglit/framework/summary.py", line 385, in
> > generate_html
> >     lspci=each.lspci))
> >   File "/usr/lib/python3.3/site-packages/mako/template.py", line 311, in
> > render_unicode
> >     as_unicode=True)
> >   File "/usr/lib/python3.3/site-packages/mako/runtime.py", line 661, in
> > _render
> >     **_kwargs_for_callable(callable_, data))
> >   File "/usr/lib/python3.3/site-packages/mako/runtime.py", line 693, in
> > _render_context
> >     _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
> >   File "/usr/lib/python3.3/site-packages/mako/runtime.py", line 719, in
> > _exec_template
> >     callable_(context, *args, **kwargs)
> >   File
> > "/tmp/piglit/html-summary/home/tstellar/piglit/templates/testrun_info.mako.p
> > y", line 28, in render_body
> >     __M_writer(unicode(name))
> > NameError: global name 'unicode' is not defined
> > 
> > I think this may be a configuration problem on my end, so I'm going to
> > try a clean rebuild.  If you have any ideas about what's wrong, let me know.
> > 
> > -Tom
> 
> try deleting /tmp/piglit, I think you probably have cached mako python files 
> that are python2 and being loaded by python3
>

That fixed it, thanks.  There were no regressions in any of the
generated tests due to precision issues, so this branch looks good to
me.  For the series:

Tested-by: Tom Stellard <thomas.stellard at amd.com>

> > 
> > > _______________________________________________
> > > Piglit mailing list
> > > Piglit at lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/piglit




More information about the Piglit mailing list