Reviewed-by: Mark Janes <[email protected]> Dylan Baker <[email protected]> writes:
> 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
