[Piglit] [PATCH 2/2] framework/backends/json.py: preserve 'tests' order
Tomi Sarvela
tomi.p.sarvela at intel.com
Thu Feb 9 17:54:05 UTC 2017
On Thursday, 9 February 2017 08:52:24 EET Dylan Baker wrote:
> Quoting Tomi Sarvela (2017-02-09 03:07:05)
>
> > New helper function numericlistdir() arranges the os.listdir()
> > in numerical order and deduplicates the code: reading in is done
> > in two places, finalize and _resume.
> >
> > Use OrderedDict when reading data in.
> > +def numericlistdir(path):
> This name isn't very descriptive. how about: numeric_sorted_listdir?
> > + lambda x: (-1, x) if not re.match(r'^\d+', x)
> > + else (int(re.findall(r'^\d+', x)[0]), x) )
>
> This seems a little complex for what you're actually trying to do, I
> think this does the same thing (but in less code):
> lambda p: int(os.path.splitext(p)[0])
>
> If that does work, for the two places it's used it's probably just
> easier to call sorted inline.
This is easier to read, and my generalized version doesn't give
anything extra in this case. Going with the inline version.
> > - s.iterwrite(six.iteritems(json.load(n)))
> > + s.iterwrite(six.iteritems(json.load(n),
> > object_pairs_hook=OrderedDict))
> you've passed object_pairs_hook to the wrong function, it needs to
> be passed to json.load
>
> this specifically causes piglit with jsonstreams to fail. You can
> test it using tox:
> tox -e 'py{27,36}-streams'
Right, fixed.
All of the other proposed changes are also improvements to my code.
Sending patch v2 soon.
More information about the Piglit
mailing list