Signed-off-by: Fabian Bieler <[email protected]>
---
 framework/glsl_parser_test.py         | 11 ++++++-----
 tests/glslparsertest/glslparsertest.c | 21 ++++++++++++++++++++-
 2 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/framework/glsl_parser_test.py b/framework/glsl_parser_test.py
index 82292b5..d731f64 100755
--- a/framework/glsl_parser_test.py
+++ b/framework/glsl_parser_test.py
@@ -69,7 +69,7 @@ def import_glsl_parser_tests(group, basepath, subdirectories):
             for f in filenames:
                 # Add f as a test if its file extension is good.
                 ext = f.rsplit('.')[-1]
-                if ext in ['vert', 'geom', 'frag', 'comp']:
+                if ext in ['vert', 'tesc', 'tese', 'geom', 'frag', 'comp']:
                     filepath = path.join(dirpath, f)
                     # testname := filepath relative to
                     # basepath.
@@ -85,9 +85,9 @@ class GLSLParserTest(PlainExecTest):
 
     This test takes a GLSL source file and passes it to the executable
     ``glslparsertest``. The GLSL source file being tested must have a GLSL
-    file extension: one of ``.vert``, ``.geom``, or ``.frag``. The test file
-    must have a properly formatted comment section containing configuration
-    data (see below).
+    file extension: one of ``.vert``, ``.tesc``, ``.tese``, ``.geom``,
+    ``.frag`` or ``.comp``. The test file must have a properly formatted 
comment section
+    containing configuration data (see below).
 
     For example test files, see the directory
     'piglit.repo/examples/glsl_parser_text`.
@@ -189,7 +189,8 @@ class GLSLParserTest(PlainExecTest):
 
     def __init__(self, filepath, runConcurrent=True):
         """
-        :filepath: Must end in one '.vert', '.geom', or '.frag'.
+        :filepath: Must end in one '.vert', '.tesc', '.tese', '.geom',
+                  '.frag' or '.comp'.
         """
         Test.__init__(self, runConcurrent)
         self.__config = None
diff --git a/tests/glslparsertest/glslparsertest.c 
b/tests/glslparsertest/glslparsertest.c
index 18bd062..48c498b 100644
--- a/tests/glslparsertest/glslparsertest.c
+++ b/tests/glslparsertest/glslparsertest.c
@@ -128,6 +128,10 @@ get_shader_name(GLenum type)
        switch(type) {
        case GL_VERTEX_SHADER:
                return "vertex";
+       case GL_TESS_CONTROL_SHADER:
+               return "tessellation control";
+       case GL_TESS_EVALUATION_SHADER:
+               return "tessellation evaluation";
        case GL_GEOMETRY_SHADER:
                return "geometry";
        case GL_FRAGMENT_SHADER:
@@ -223,6 +227,10 @@ test(void)
        else if (strcmp(filename + strlen(filename) - 4, "vert") == 0)
                type = GL_VERTEX_SHADER;
 #ifdef PIGLIT_USE_OPENGL
+       else if (strcmp(filename + strlen(filename) - 4, "tesc") == 0)
+               type = GL_TESS_CONTROL_SHADER;
+       else if (strcmp(filename + strlen(filename) - 4, "tese") == 0)
+               type = GL_TESS_EVALUATION_SHADER;
        else if (strcmp(filename + strlen(filename) - 4, "geom") == 0)
                type = GL_GEOMETRY_SHADER;
        else if (strcmp(filename + strlen(filename) - 4, "comp") == 0)
@@ -238,6 +246,15 @@ test(void)
        piglit_require_vertex_shader();
        piglit_require_fragment_shader();
 
+       if (type == GL_TESS_CONTROL_SHADER || type == 
GL_TESS_EVALUATION_SHADER) {
+               if 
(!piglit_is_extension_supported("GL_ARB_tessellation_shader") &&
+                   (piglit_is_gles() || piglit_get_gl_version() < 40)) {
+                       printf("Test requires GL version 4.0 or "
+                              "GL_ARB_tessellation_shader\n");
+                       piglit_report_result(PIGLIT_SKIP);
+               }
+       }
+
        if (type == GL_COMPUTE_SHADER) {
                if (!piglit_is_extension_supported("GL_ARB_compute_shader") &&
                    (piglit_is_gles() || piglit_get_gl_version() < 43)) {
@@ -281,7 +298,9 @@ test(void)
                if (requested_version == 100 || requested_version == 300)
                        attach_complementary_shader(shader_prog, type);
 #if PIGLIT_USE_OPENGL
-               if (type == GL_GEOMETRY_SHADER)
+               if (type == GL_GEOMETRY_SHADER ||
+                   type == GL_TESS_CONTROL_SHADER ||
+                   type == GL_TESS_EVALUATION_SHADER)
                        attach_dummy_shader(shader_prog, GL_VERTEX_SHADER);
                if (test_requires_geometry_shader4) {
                        /* The default value of
-- 
1.8.3.2

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to