[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