[Piglit] [PATCH v4 0/27] Various cleanups for profiles

Dylan Baker dylan at pnwbakers.com
Wed Nov 9 20:53:12 UTC 2016

This series is a large collections of cleanups for th profile module and
particularly for the TestProfile and TestDict classes. These began their
lives as the start of a series to serialize the TestDict at compile time
and to move startup overhead.

This series is just a bunch of cleanups and removes a *lot* of code, and
simplifies a number of things, as well as fixing a few long standing
bugs in piglit. The biggest of these fixes is that it is now possible to
pass two derivatives of all.py (say glslparser.py and shader.py) at the
same time.

This series passes our CI system with no changes or regressions.

This has gone out several times with no comments, I'm planning to push first
thing in the morning if no one objects.

Changes in v2:
    - Rebase on master, including one patch that was part of this
      series, but was merged since it fixed a bug
    - Don't add filters that do nothing in framework/programs/run.py.
      This doesn't really affect this series, but it does have
      ramifications in some other work that isn't ready to go to the
      list yet.

Changes in v3:
    - Don't close the pools until all of the profiles have finished
    - Don't remove the _{pre,post}_run_hook methods, instead rename them
      to setup and teardown, making them public. They actually are used
      by XTS and IGT, which I didn't notice. I still think I'd like to
      get rid of them, but not while they're in use and there isn't an
      obviously good way to do so.
    - Store images in the JSON file, rather than externally
    - the XTS profile uses a temporary directory to store it's results,
      which (along with the previous change) removes the need to pass
      the results directory to its tests.
    - Fix RegexFilter to work for both the include filter (-t) and the
      exclude filter (-x), it previously only worked for one or the
      other. Also add tests.

Changes in v4:
    - Add tests for summary-feature
    - Don't break summary feature tests with changes (previously this
      was component was completely broken)
    - Fix the inverse flag in RegexFilter (in framework/program/run.py),
      which was being passed to the wrong function.
    - Remove RFC patch to use enum34 (and fix changes resulting from that
    - Fix args.concurrent, which should be args.concurrency, in programs/run.py
    - Fix check for monitoring errors in profile.run

Dylan Baker (27):
  framework/result: TestrunResult.options should be a dict
  unittests: Add tests for the feature completeness summary
  framework/profile: make run hooks public
  framework/profile: Drop unneeded except
  framework: Split the run method out of profile.
  framework: remove concurrent from OPTIONS, pass directly to profile
  framework/programs/run: Remove use of TestrunResult
  framework/profile: add a copy method to profile
  tests: Copy profiles to allow them to be run in parallel
  framework/programs/run: Only allow --test-list if one profile
  framework/profile: Don't merge profiles
  framework/programs/run: remove redundant list() around comprehension
  framework/profile: Drop TestProfile.filter_tests
  framework/programs/run: import framework.profile as profile
  framework: Remove exclude_tests from options.OPTIONS
  framework: Pull {include,exclude}_filter out of Options
  framework/profile: Factor out check_all closure
  framework/profile: Don't alter the TestProfile before running
  framework/profile: Update __all__
  framework/profile: Update docstrings
  framework/profile: Split try/except block
  framework/profile: replace Testprofile.{dmesg,monitoring} with dict
  framework/profile: remove unused argument from TestProfile.group_manager
  framework/profile: Move group_manager from TestProfile to TestDict
  framework/test/base: Remove timeout parameter
  framework/test/glsl_parser_test.py: split the parser out of the class
  tests/all.py: Make add_fbo_depthstencil_tests take an adder

 framework/options.py                         | 144 +-----
 framework/profile.py                         | 564 ++++++++-----------
 framework/programs/print_commands.py         |  13 +-
 framework/programs/run.py                    | 113 ++--
 framework/results.py                         |   2 +-
 framework/summary/feature.py                 |  30 +-
 framework/test/base.py                       |  36 +-
 framework/test/glsl_parser_test.py           |  85 +--
 tests/all.py                                 | 605 +++++++++-----------
 tests/cl.py                                  |   8 +-
 tests/cpu.py                                 |   6 +-
 tests/glslparser.py                          |   6 +-
 tests/gpu.py                                 |   8 +-
 tests/igt.py                                 |  10 +-
 tests/llvmpipe.py                            |   4 +-
 tests/quick.py                               |  14 +-
 tests/quick_cl.py                            |   4 +-
 tests/sanity.py                              |   2 +-
 tests/shader.py                              |   6 +-
 tests/xts-render.py                          |   9 +-
 tests/xts.py                                 |   8 +-
 unittests/framework/summary/test_feature.py  | 115 ++++-
 unittests/framework/test/test_base.py        |  14 +-
 unittests/framework/test/test_shader_test.py |   2 +-
 unittests/framework/test_options.py          | 178 +------
 unittests/framework/test_profile.py          | 363 ++++--------
 26 files changed, 1008 insertions(+), 1341 deletions(-)
 create mode 100644 unittests/framework/summary/test_feature.py

git-series 0.8.10

More information about the Piglit mailing list