Because the token "#version 300 es " is necessary with the current infrastructure during a GLSL ES30 shader test is added.
This patch is used to make it more automation, and the infrastructure can now adding "#version 300 es" itself, when the GLSL ES30 shader do not include the token. Signed-off-by: Wang Shuo <[email protected]> --- tests/glslparsertest/glslparsertest.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/tests/glslparsertest/glslparsertest.c b/tests/glslparsertest/glslparsertest.c index b969eff..39704ac 100644 --- a/tests/glslparsertest/glslparsertest.c +++ b/tests/glslparsertest/glslparsertest.c @@ -214,13 +214,15 @@ test(void) { GLint prog; GLint ok; - GLchar *prog_string; + GLchar *prog_string[2]; FILE *out; GLboolean pass; GLchar *info; GLint size; GLenum type; char *failing_stage = NULL; + GLint ISGLSLES30VersionContained = 0; + char *glslES30Version = "#version 300 es\n"; if (strcmp(filename + strlen(filename) - 4, "frag") == 0) type = GL_FRAGMENT_SHADER; @@ -264,15 +266,25 @@ test(void) } } - prog_string = piglit_load_text_file(filename, NULL); - if (prog_string == NULL) { + prog_string[1] = piglit_load_text_file(filename, NULL); + if (prog_string[1] == NULL) { fprintf(stderr, "Couldn't open program %s: %s\n", filename, strerror(errno)); exit(1); } + if (strstr(filename, "glsl-es-3.00") != NULL){ + if (strstr(prog_string[1], "#version 300 es") == NULL){ + ISGLSLES30VersionContained = 1; + } + } + + prog_string[0] = glslES30Version; prog = glCreateShader(type); - glShaderSource(prog, 1, (const GLchar **)&prog_string, NULL); + if(ISGLSLES30VersionContained == 0) + glShaderSource(prog, 1, (const GLchar **)&(prog_string[1]), NULL); + else + glShaderSource(prog, 2, (const GLchar **)prog_string, NULL); glCompileShader(prog); ok = get_shader_compile_status(prog); @@ -336,7 +348,7 @@ test(void) filename, info); if (expected_pass) { printf("Shader source:\n"); - printf("%s\n", prog_string); + printf("%s\n", prog_string[1]); } } else { fprintf(out, "Successfully %s %s shader %s: %s\n", @@ -345,13 +357,13 @@ test(void) filename, info); if (!expected_pass) { printf("Shader source:\n"); - printf("%s\n", prog_string); + printf("%s\n", prog_string[1]); } } if (size != 0) free(info); - free(prog_string); + free(prog_string[1]); glDeleteShader(prog); piglit_report_result (pass ? PIGLIT_PASS : PIGLIT_FAIL); } -- 1.8.3.2 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
