On 13/10/16 05:59 AM, Dylan Baker wrote: > This changes the way updates are done in the backend, instead of > converting to a TestrunResult immediately, all of the transformations > are done to the JSON data in it's rawest form, ie, as dicts and lists, > and then transform to a TestrunResult (and children) after that. > > This makes the loading code more robust and simpler, since it's > decoupled from the representation, making the transformations easier to > test and manage. > > Part of this change is fixing the .to_json and .from_dict methods, many > of which "worked" because they're short comings were papered over by > using json.load with a custom decoder. This patch fixes them to actually > work correctly. Despite my best attempts I couldn't decouple this work > for this patch because of the close coupling of the JSON loading code > and the class representations. > > There are a number of fixups to the tests in this patch, since a number > of issues were being covered by the TestrunResult.to_json() method > filling it missing values. > > Signed-off-by: Dylan Baker <dylanx.c.ba...@intel.com>
This change broke HTML summary generation for me. Interestingly, two possible invocations fail slightly differently: > ./piglit summary html summary/quick_cl results/quick_cl.20161024-baseline > results/quick_cl.20161025-baseline usage: piglit [-h] {print-cmd,run,resume,summary} ... positional arguments: {print-cmd,run,resume,summary} print-cmd Print piglit commands, one per line. run Run a piglit test resume resume an interrupted piglit run summary summary generators optional arguments: -h, --help show this help message and exit > ./piglit-summary-html.py summary/quick_cl results/quick_cl.20161024-baseline > results/quick_cl.20161025-baseline /home/daenzer/src/piglit-git/piglit/framework/test/base.py:77: UserWarning: Timeouts are not available warnings.warn('Timeouts are not available') Traceback (most recent call last): File "./piglit-summary-html.py", line 35, in <module> html([i.decode('utf-8') for i in sys.argv[1:]]) File "/home/daenzer/src/piglit-git/piglit/framework/exceptions.py", line 51, in _inner func(*args, **kwargs) File "/home/daenzer/src/piglit-git/piglit/framework/programs/summary.py", line 117, in html summary.html(args.resultsFiles, args.summaryDir, args.exclude_details) File "/home/daenzer/src/piglit-git/piglit/framework/summary/html_.py", line 178, in html _make_testrun_info(results, destination, exclude) File "/home/daenzer/src/piglit-git/piglit/framework/summary/html_.py", line 100, in _make_testrun_info time=each.time_elapsed.delta, AttributeError: 'dict' object has no attribute 'delta' -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit