[Piglit] [PATCH v3 0/28] Various cleanups for profiles

Dylan Baker dylan at pnwbakers.com
Mon Oct 31 17:49:56 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.

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
      running
    - 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.

Dylan Baker (28):
  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
  [RFC] framework: Use an enum for concurrency.
  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: Embed images in results.
  tests/xts: Use a tmpdir for output

 framework/backends/json.py                             |  36 +-
 framework/options.py                                   | 144 +--
 framework/profile.py                                   | 566 +++------
 framework/programs/print_commands.py                   |  13 +-
 framework/programs/run.py                              | 127 +-
 framework/results.py                                   |   7 +-
 framework/test/base.py                                 |  36 +-
 framework/test/glsl_parser_test.py                     |  85 +-
 templates/test_result.mako                             |   8 +-
 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                                           |  81 +-
 tox.ini                                                |   1 +-
 unittests/framework/backends/images/LICENSE            |   6 +-
 unittests/framework/backends/images/openlogo-nd-25.png | Bin 0 -> 409 bytes
 unittests/framework/backends/images/ref.png            |   1 +-
 unittests/framework/backends/images/render.png         |   1 +-
 unittests/framework/backends/schema/piglit-10.json     | 135 ++-
 unittests/framework/backends/shared.py                 |   2 +-
 unittests/framework/backends/test_json_update.py       | 101 ++-
 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 ++----
 34 files changed, 1207 insertions(+), 1382 deletions(-)
 create mode 100644 unittests/framework/backends/images/LICENSE
 create mode 100644 unittests/framework/backends/images/openlogo-nd-25.png
 create mode 120000 unittests/framework/backends/images/ref.png
 create mode 120000 unittests/framework/backends/images/render.png
 create mode 100644 unittests/framework/backends/schema/piglit-10.json

-- 
git-series 0.8.10


More information about the Piglit mailing list