[Piglit] [PATCH] framework: Add generic deqp options to piglit.conf

Dylan Baker baker.dylan.c at gmail.com
Fri Mar 11 01:44:40 UTC 2016


Sometimes there are extra arguments to deqp that a developer wants for
all of the test suites, this adds that option by putting a generic
[deqp] section and add an extra_args. This new extra args gets joined
with any suite specific extra_args

Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---
 framework/test/deqp.py | 28 +++++++++++++++++-----------
 piglit.conf.example    |  4 ++++
 tests/cts.py           |  6 +++++-
 tests/deqp_gles2.py    |  7 ++++++-
 tests/deqp_gles3.py    |  6 +++++-
 tests/deqp_gles31.py   |  6 +++++-
 6 files changed, 42 insertions(+), 15 deletions(-)

diff --git a/framework/test/deqp.py b/framework/test/deqp.py
index 0c4b8a0..4fd51ec 100644
--- a/framework/test/deqp.py
+++ b/framework/test/deqp.py
@@ -40,17 +40,6 @@ __all__ = [
 ]
 
 
-def make_profile(test_list, test_class):
-    """Create a TestProfile instance."""
-    profile = TestProfile()
-    for testname in test_list:
-        # deqp uses '.' as the testgroup separator.
-        piglit_name = testname.replace('.', grouptools.SEPARATOR)
-        profile.test_list[piglit_name] = test_class(testname)
-
-    return profile
-
-
 def get_option(env_varname, config_option, default=None):
     """Query the given environment variable and then piglit.conf for the option.
 
@@ -66,6 +55,22 @@ def get_option(env_varname, config_option, default=None):
     return opt or default
 
 
+_EXTRA_ARGS = get_option('PIGLIT_DEQP_EXTRA_ARGS',
+                         ('deqp', 'extra_args'),
+                         default='').split()
+
+
+def make_profile(test_list, test_class):
+    """Create a TestProfile instance."""
+    profile = TestProfile()
+    for testname in test_list:
+        # deqp uses '.' as the testgroup separator.
+        piglit_name = testname.replace('.', grouptools.SEPARATOR)
+        profile.test_list[piglit_name] = test_class(testname)
+
+    return profile
+
+
 def gen_caselist_txt(bin_, caselist, extra_args):
     """Generate a caselist.txt and return its path.
 
@@ -129,6 +134,7 @@ class DEQPBaseTest(Test):
         only works to join two lists together.
 
         """
+        return _EXTRA_ARGS
 
     def __init__(self, case_name):
         command = [self.deqp_bin, '--deqp-case=' + case_name]
diff --git a/piglit.conf.example b/piglit.conf.example
index 0410a17..06c7105 100644
--- a/piglit.conf.example
+++ b/piglit.conf.example
@@ -33,6 +33,10 @@ bindir=/home/usr/oclconform
 testA
 testB
 
+[deqp]
+; Options that affect all deqp based suites
+;extra_args=--deqp-visibility=hidden
+
 [deqp-gles2]
 ; Path to the deqp-gles2 executable
 ; Can be overwritten by PIGLIT_DEQP_GLES2_BIN environment variable
diff --git a/tests/cts.py b/tests/cts.py
index 550eb29..0e64e1b 100644
--- a/tests/cts.py
+++ b/tests/cts.py
@@ -59,7 +59,11 @@ _EXTRA_ARGS = deqp.get_option('PIGLIT_CTS_EXTRA_ARGS', ('cts', 'extra_args'),
 
 class DEQPCTSTest(deqp.DEQPBaseTest):
     deqp_bin = _CTS_BIN
-    extra_args = [x for x in _EXTRA_ARGS if not x.startswith('--deqp-case')]
+
+    @property
+    def extra_args(self):
+        return super(DEQPCTSTest, self).extra_args + \
+            [x for x in _EXTRA_ARGS if not x.startswith('--deqp-case')]
 
 
 # Add all of the suites by default, users can use filters to remove them.
diff --git a/tests/deqp_gles2.py b/tests/deqp_gles2.py
index c951a19..ab897bd 100644
--- a/tests/deqp_gles2.py
+++ b/tests/deqp_gles2.py
@@ -39,7 +39,12 @@ _EXTRA_ARGS = deqp.get_option('PIGLIT_DEQP_GLES2_EXTRA_ARGS',
 
 class DEQPGLES2Test(deqp.DEQPBaseTest):
     deqp_bin = _DEQP_GLES2_BIN
-    extra_args = [x for x in _EXTRA_ARGS if not x.startswith('--deqp-case')]
+
+    @property
+    def extra_args(self):
+        return super(DEQPGLES2Test, self).extra_args + \
+            [x for x in _EXTRA_ARGS if not x.startswith('--deqp-case')]
+
 
 
 profile = deqp.make_profile(  # pylint: disable=invalid-name
diff --git a/tests/deqp_gles3.py b/tests/deqp_gles3.py
index 00b06ad..783407d 100644
--- a/tests/deqp_gles3.py
+++ b/tests/deqp_gles3.py
@@ -81,7 +81,11 @@ def filter_mustpass(caselist_path):
 
 class DEQPGLES3Test(deqp.DEQPBaseTest):
     deqp_bin = _DEQP_GLES3_EXE
-    extra_args = [x for x in _EXTRA_ARGS if not x.startswith('--deqp-case')]
+
+    @property
+    def extra_args(self):
+        return super(DEQPGLES3Test, self).extra_args + \
+            [x for x in _EXTRA_ARGS if not x.startswith('--deqp-case')]
 
 
     def __init__(self, *args, **kwargs):
diff --git a/tests/deqp_gles31.py b/tests/deqp_gles31.py
index e5a22e0..f516a84 100644
--- a/tests/deqp_gles31.py
+++ b/tests/deqp_gles31.py
@@ -39,7 +39,11 @@ _EXTRA_ARGS = deqp.get_option('PIGLIT_DEQP_GLES31_EXTRA_ARGS',
 
 class DEQPGLES31Test(deqp.DEQPBaseTest):
     deqp_bin = _DEQP_GLES31_BIN
-    extra_args = [x for x in _EXTRA_ARGS if not x.startswith('--deqp-case')]
+
+    @property
+    def extra_args(self):
+        return super(DEQPGLES31Test, self).extra_args + \
+            [x for x in _EXTRA_ARGS if not x.startswith('--deqp-case')]
 
 
 profile = deqp.make_profile(  # pylint: disable=invalid-name
-- 
2.7.2



More information about the Piglit mailing list