[Piglit] [PATCH 00/32] Rework summary
Dylan Baker
baker.dylan.c at gmail.com
Fri Sep 11 15:49:26 PDT 2015
This is a pretty substantial patch series, much larger than what I
really wanted to produce, but at this point I don't see any way to
split it in a practical matter.
To sum of the changes of this series:
1) Replace the TestResult dict with an Object derived class, this allows
us two advantages. First, it allows us to use Descriptors to create
getters/setters. Second, it allows us to limit the memory consumption
using __slots__
2) Replace the Summary class with several different classes. This uses
more composition, which is nice. And also makes extensive use of lazy
data creation. It also removes several data structures that are
created, but really don't need to be stored, since their data is only
used once.
3) Store the group totals in the json. This speeds up loading results by
moving more of the code to one time use, and with compression it
doesn't hurt too much
4) Fix the console generator. This generator was always a little weird,
it now generates nice columns out of each result it's passed and
generates proper comparisons. It also counts subtests now.
This is available at my github:
https://github.com/dcbaker/piglit submit/summary-rework
Dylan Baker (32):
framework/programs/summary.py: Fix summaries compression when updating
framework/grouptools: fix commonprefix to handle non-overlapping
values
framework/backends/json.py: call set_meta() on resume
framework: replace TestResult dict with an object
framework/results: make the result of a test the worst of its subtests
framework: move unicode conversion handling to TestResult
framework/results.py: Add a method to TestrunResult to calculate
totals
framework/results.py: Add a to_json method to the TestrunResults
framework/results.py: add TestrunResult.from_dict method
framework/backends/json.py: store totals data in json
framework/summary.py: stop calculating totals at run time
framework/summary.py: Make the text mode less weird
framework/summary.py: make text columns width variable
framework/summary.py: split diff generating code into toplevel
function
framework/summary.py: Add a class to summary for calculating
categories
framework/summary.py: split console generator from Summary object
framework/summary.py: sort tests in console output
framework/summary.py: calculate fractions and colors for html on the
fly
framework/summary.py: simplify templates by using a TemplateLookup
framework/summary.py: remove the Summary object.
framework/summary.py: add helper to turn times into time deltas
framework/summary.py: drop HTMLIndex class
framework/summary.py: add a module docstring
framework/summary.py: update copyright header
framework/status.py: Speed up status_lookup
framework/tests/summary_tests.py: Add a few additional tests
framework/summary.py: split summary module into a package
framework/summary/console_.py: split summary printer out
framework/summary/console_.py: split the code print tests out
framework/summary/html_.py: split the html function
framework/backends.json.py: dont resume if results.json.<comp> exists
framework/backends.json.py: use TestrunResult.from_dict for resume
framework/backends/abstract.py | 2 +-
framework/backends/json.py | 114 +++--
framework/backends/junit.py | 30 +-
framework/core.py | 21 +
framework/dmesg.py | 9 +-
framework/grouptools.py | 6 +-
framework/programs/run.py | 2 +-
framework/programs/summary.py | 29 +-
framework/results.py | 258 +++++++++--
framework/status.py | 30 +-
framework/summary.py | 620 ---------------------------
framework/summary/__init__.py | 29 ++
framework/summary/common.py | 317 ++++++++++++++
framework/summary/console_.py | 113 +++++
framework/summary/html_.py | 165 +++++++
framework/test/base.py | 73 ++--
framework/test/deqp.py | 10 +-
framework/test/gleantest.py | 6 +-
framework/test/gtest.py | 8 +-
framework/test/oclconform.py | 6 +-
framework/test/piglit_test.py | 7 +-
framework/tests/base_tests.py | 38 +-
framework/tests/compressed_backend_tests.py | 3 +-
framework/tests/deqp_tests.py | 16 +-
framework/tests/dmesg_tests.py | 51 ++-
framework/tests/gleantest_tests.py | 4 +-
framework/tests/grouptools_tests.py | 5 +
framework/tests/json_backend_tests.py | 66 +--
framework/tests/json_results_update_tests.py | 134 +++++-
framework/tests/json_tests.py | 4 +-
framework/tests/junit_backends_tests.py | 89 ++--
framework/tests/piglit_test_tests.py | 20 +-
framework/tests/results_tests.py | 523 +++++++++++++++++++++-
framework/tests/summary_common_tests.py | 373 ++++++++++++++++
framework/tests/summary_console_tests.py | 165 +++++++
framework/tests/summary_html_tests.py | 39 ++
framework/tests/summary_tests.py | 132 ------
framework/tests/utils.py | 23 +-
templates/index.css | 4 +-
templates/index.mako | 177 ++++++--
templates/test_result.mako | 24 +-
tests/es3conform.py | 6 +-
tests/igt.py | 14 +-
tests/xts.py | 40 +-
44 files changed, 2615 insertions(+), 1190 deletions(-)
delete mode 100644 framework/summary.py
create mode 100644 framework/summary/__init__.py
create mode 100644 framework/summary/common.py
create mode 100644 framework/summary/console_.py
create mode 100644 framework/summary/html_.py
create mode 100644 framework/tests/summary_common_tests.py
create mode 100644 framework/tests/summary_console_tests.py
create mode 100644 framework/tests/summary_html_tests.py
delete mode 100644 framework/tests/summary_tests.py
--
2.5.1
More information about the Piglit
mailing list