[Piglit] Versioned JSON results v3

Dylan Baker baker.dylan.c at gmail.com
Fri Jun 20 12:50:26 PDT 2014

This is the third iteration of introducing versions to our results
files. This purpose of doing this is to ensure that the results look a
certain way, removing the need to to handle variations in the files at
run time (and allowing for improvements to be made without concern for
mixing multiple versions of results)

The way this series aproachs the problem is to read the old results in,
do transformations on the resulting data structure, then write that data
back out. When it does this it renames the old file, so that if
something goes wrong it's not lost. It also works through a series of
transformations, so version 1->5 would be handled by updating 1 -> 2, 2
-> 3, etc. this aproach makes testing easy, and since testing is easy it
makes it easy to ensure that everything works as expected. What this
isn't is particularly efficient, this is because the design of the
feature is that it is a one time cost to update results, done
transparently at load time.

Patches 1-5 Lay groundwork by changing the way environment variables are
handled by the framework. Essentially before these patches we set
environment variables gobally and then let them trickle down. After the
patches the environment variables are passed to subprocess.Popen

These patches are new in v3

Patches 6-11 lay additional groundwork by refactoring and cleaning
existing code

Patches 12-13 do the actual lifting of the series. Patch 12 adds results
versioning, and 13 removes workarounds from summary for dealing with
old versions.

More information about the Piglit mailing list