From: Dylan Baker <[email protected]> This implements a similar mechanism to check GL or GLES version support on the current driver.
Signed-off-by: Dylan Baker <[email protected]> --- framework/test/shader_test.py | 11 +++++++++++ framework/tests/shader_test_tests.py | 26 +++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/framework/test/shader_test.py b/framework/test/shader_test.py index e531f08..b74e71b 100644 --- a/framework/test/shader_test.py +++ b/framework/test/shader_test.py @@ -43,6 +43,8 @@ class ShaderTest(FastSkipMixin, PiglitBaseTest): """ _is_gl = re.compile(r'GL (<|<=|=|>=|>) \d\.\d') + _match_gl_version = re.compile( + r'^GL\s+(?P<es>ES)?\s*(?P<op>(<|<=|=|>=|>))\s*(?P<ver>\d\.\d)') def __init__(self, filename): self.gl_required = set() @@ -108,6 +110,15 @@ class ShaderTest(FastSkipMixin, PiglitBaseTest): for line in lines: if line.startswith('GL_') and not line.startswith('GL_MAX'): self.gl_required.add(line.strip()) + elif not (self.gl_version or self.gles_version): + # Find any gles requirements + m = self._match_gl_version.match(line) + if m: + if m.group('op') not in ['<', '<=']: + if m.group('es'): + self.gles_version = float(m.group('ver')) + else: + self.gl_version = float(m.group('ver')) elif line.startswith('['): break diff --git a/framework/tests/shader_test_tests.py b/framework/tests/shader_test_tests.py index ebc76b3..e86e51f 100644 --- a/framework/tests/shader_test_tests.py +++ b/framework/tests/shader_test_tests.py @@ -106,7 +106,7 @@ def test_add_auto(): nt.assert_in('-auto', test.command) -def test_find_requirements(): +def test_find_requirements_gl_requirements(): """test.shader_test.ShaderTest: populates gl_requirements properly""" data = ('[require]\n' @@ -119,6 +119,30 @@ def test_find_requirements(): nt.eq_(test.gl_required, set(['GL_ARB_ham_sandwhich'])) +def test_find_requirements_gl_version(): + """test.shader_test.ShaderTest: finds gl_version.""" + data = ('[require]\n' + 'GL = 2.0\n' + 'GL_ARB_ham_sandwhich\n') + + with mock.patch('framework.test.shader_test.open', + mock.mock_open(read_data=data)): + test = testm.ShaderTest('null') + nt.eq_(test.gl_version, 2.0) + + +def test_find_requirements_gles_version(): + """test.shader_test.ShaderTest: finds gles_version.""" + data = ('[require]\n' + 'GL ES = 2.0\n' + 'GL_ARB_ham_sandwhich\n') + + with mock.patch('framework.test.shader_test.open', + mock.mock_open(read_data=data)): + test = testm.ShaderTest('null') + nt.eq_(test.gles_version, 2.0) + + @utils.nose_generator def test_ignore_shader_runner_directives(): """test.shader_test.ShaderTest: Doesn't add shader_runner command to gl_required list""" -- 2.6.2 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
