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 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
