[Piglit] [PATCH 2/2] framework/glslparsertest: Don't add exclude extensions to the required list
Mark Janes
mark.a.janes at intel.com
Wed Apr 13 19:15:51 UTC 2016
Reviewed-by: Mark Janes <mark.a.janes at intel.com>
Dylan Baker <baker.dylan.c at gmail.com> writes:
> glslparsertest has a syntax for the 'require_extensions' option that is
> "!<extension_name>", when this is specified it means "This extensions is
> not supported". There is a bug in the fast skip code in
> glsl_parser_test.py that causes it to add these extensions to the fast
> skip required extensions list, which is obviously wrong.
>
> This patch adds a test for this behavior as well as fixing the behavior
> to work correctly.
>
> cc: Mark Janes <mark.a.janes at intel.com>
> Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
> ---
>
> Mark, I hate to have to ask you to review this, but it's masking
> failures in jenkins a few cases (there aren't very many tests that use
> this feature, but the generator I submitted recently does).
>
> framework/test/glsl_parser_test.py | 3 ++-
> unittests/glsl_parser_test_tests.py | 16 ++++++++++++++++
> 2 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/framework/test/glsl_parser_test.py b/framework/test/glsl_parser_test.py
> index ce043a7..dcce8f8 100644
> --- a/framework/test/glsl_parser_test.py
> +++ b/framework/test/glsl_parser_test.py
> @@ -126,7 +126,8 @@ class GLSLParserTest(FastSkipMixin, PiglitBaseTest):
>
> req = config.get('require_extensions')
> if req:
> - self.gl_required = set(req.split())
> + self.gl_required = set(
> + r for r in req.split() if not r.startswith('!'))
>
> # If GLES is requested, but piglit was not built with a gles version,
> # then ARB_ES3<ver>_compatibility is required. Add it to
> diff --git a/unittests/glsl_parser_test_tests.py b/unittests/glsl_parser_test_tests.py
> index c732bec..048c5a4 100644
> --- a/unittests/glsl_parser_test_tests.py
> +++ b/unittests/glsl_parser_test_tests.py
> @@ -456,6 +456,22 @@ def test_set_gl_required():
> nt.eq_(test.gl_required, set(['GL_ARB_foobar', 'GL_EXT_foobar']))
>
>
> +def test_set_exclude_gl_required():
> + """test.glsl_parser_test.GLSLParserTest: doesn't add excludes to gl_required"""
> + rt = {'require_extensions': 'GL_ARB_foobar !GL_EXT_foobar'}
> + with mock.patch.object(glsl.GLSLParserTest, '_GLSLParserTest__parser',
> + mock.Mock(return_value=rt)):
> + with mock.patch.object(glsl.GLSLParserTest,
> + '_GLSLParserTest__get_command',
> + return_value=['foo']):
> + with mock.patch('framework.test.glsl_parser_test.open',
> + mock.mock_open(), create=True):
> + with mock.patch('framework.test.glsl_parser_test.os.stat',
> + mock.mock_open()):
> + test = glsl.GLSLParserTest('foo')
> + nt.eq_(test.gl_required, set(['GL_ARB_foobar']))
> +
> +
> @mock.patch('framework.test.glsl_parser_test._HAS_GL_BIN', False)
> @nt.raises(TestIsSkip)
> def test_binary_skip():
> --
> 2.8.0
More information about the Piglit
mailing list