This adds support for running Khronos' deqp-based conformance suite with piglit. This gives access to all of the powerful features of pigilt, per-process tests, the junit and json backends, the summary tools, and the familiar interface, with minimal fuss.
This is a very small change, since it is deqp-based, and piglit has a framework for handling deqp based suites already. cc: Mark Janes <[email protected]> Signed-off-by: Dylan Baker <[email protected]> --- piglit.conf.example | 10 +++++++++ tests/cts.py | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 tests/cts.py diff --git a/piglit.conf.example b/piglit.conf.example index e1f421c..0d85401 100644 --- a/piglit.conf.example +++ b/piglit.conf.example @@ -71,6 +71,16 @@ testB ; overrides the value set here. ;extra_args=--deqp-visibility hidden +[cts] +; path to the cts executable +; can be overwritten by PIGILT_CTS_BIN environment variable +;bin=/home/knuth/cts/cts/glcts + +; Space-separated list of extra command line arguments for cts. The +; option is not required. The environment variable PIGLIT_CTS_EXTRA_ARGS +; overrides the value set here. +;extra_args=--deqp-visibility hidden + ; Section for specific oclconform test. One of these sections is required for ; each test list in the oclconform section and must be called: ; oclconform-$testname diff --git a/tests/cts.py b/tests/cts.py new file mode 100644 index 0000000..5669f88 --- /dev/null +++ b/tests/cts.py @@ -0,0 +1,63 @@ +# Copyright (c) 2015 Intel Corporation + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +"""Piglit integration for Khronos CTS tests. + +By default this will run GLES2, GLES3, GLES31, and GLESEXT test cases. Those +desiring to run only a subset of them should consider using the -t or -x +options to include or exclude tests. + +for example: +./piglit run cts -c foo -t ES3- would run only ES3 tests (note the dash to +exclude ES31 tests) + +""" + +from __future__ import absolute_import, division, print_function +import itertools + +from framework.test import deqp + +__all__ = ['profile'] + +_CTS_BIN = deqp.get_option('PIGLIT_CTS_BIN', ('cts', 'bin')) + +_EXTRA_ARGS = deqp.get_option('PIGLIT_CTS_EXTRA_ARGS', ('cts', 'extra_args'), + default='').split() + + +class DEQPCTSTest(deqp.DEQPBaseTest): + deqp_bin = _CTS_BIN + extra_args = [x for x in _EXTRA_ARGS if not x.startswith('--deqp-case')] + + +profile = deqp.make_profile( # pylint: disable=invalid-name + itertools.chain( + deqp.iter_deqp_test_cases( + deqp.gen_caselist_txt(_CTS_BIN, 'ES2-CTS-cases.txt', _EXTRA_ARGS)), + deqp.iter_deqp_test_cases( + deqp.gen_caselist_txt(_CTS_BIN, 'ES3-CTS-cases.txt', _EXTRA_ARGS)), + deqp.iter_deqp_test_cases( + deqp.gen_caselist_txt(_CTS_BIN, 'ES31-CTS-cases.txt', _EXTRA_ARGS)), + deqp.iter_deqp_test_cases( + deqp.gen_caselist_txt(_CTS_BIN, 'ESEXT-CTS-cases.txt', + _EXTRA_ARGS)), + ), + DEQPCTSTest) -- 2.5.3 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
