aboutsummaryrefslogtreecommitdiff
path: root/tests/glslparsertest
diff options
context:
space:
mode:
authorChad Versace <chad.versace@intel.com>2011-02-25 17:10:52 -0800
committerChad Versace <chad.versace@intel.com>2011-02-25 20:44:12 -0800
commit00423b5996b32fbeb6e9483f375f411e301a765f (patch)
treec476e188c0f16aeae4679cc8ce8084b4e1847f30 /tests/glslparsertest
parent66a8086e0f52e8ec30943bda0a4141d84bc5d359 (diff)
glslparsertest: Build executable glslparsertest_gles2
Signed-off-by: Chad Versace <chad.versace@intel.com>
Diffstat (limited to 'tests/glslparsertest')
-rw-r--r--tests/glslparsertest/CMakeLists.gl.txt10
-rw-r--r--tests/glslparsertest/CMakeLists.gles2.txt11
-rw-r--r--tests/glslparsertest/CMakeLists.txt5
-rw-r--r--tests/glslparsertest/glslparsertest.c98
4 files changed, 75 insertions, 49 deletions
diff --git a/tests/glslparsertest/CMakeLists.gl.txt b/tests/glslparsertest/CMakeLists.gl.txt
index 28e716ee..704b4ece 100644
--- a/tests/glslparsertest/CMakeLists.gl.txt
+++ b/tests/glslparsertest/CMakeLists.gl.txt
@@ -1,17 +1,13 @@
-
include_directories(
- ${OPENGL_INCLUDE_PATH}
${GLUT_INCLUDE_DIR}
- ${piglit_SOURCE_DIR}/tests/util
-)
+ )
-link_libraries (
+link_libraries(
piglitutil
${OPENGL_gl_LIBRARY}
${OPENGL_glu_LIBRARY}
${GLUT_glut_LIBRARY}
- ${TIFF_LIBRARY}
-)
+ )
add_executable (glslparsertest glslparsertest.c)
diff --git a/tests/glslparsertest/CMakeLists.gles2.txt b/tests/glslparsertest/CMakeLists.gles2.txt
new file mode 100644
index 00000000..12325489
--- /dev/null
+++ b/tests/glslparsertest/CMakeLists.gles2.txt
@@ -0,0 +1,11 @@
+link_libraries(
+ glut_egl
+ piglitutil_${piglit_target_api}
+ ${OPENGL_gles2_LIBRARY}
+ )
+
+add_executable(glslparsertest_${piglit_target_api}
+ glslparsertest.c
+ )
+
+# vim: ft=cmake:
diff --git a/tests/glslparsertest/CMakeLists.txt b/tests/glslparsertest/CMakeLists.txt
index 144a306f..c1fb20fc 100644
--- a/tests/glslparsertest/CMakeLists.txt
+++ b/tests/glslparsertest/CMakeLists.txt
@@ -1 +1,6 @@
+include_directories(
+ ${OPENGL_INCLUDE_PATH}
+ ${piglit_SOURCE_DIR}/tests/util
+ )
+
piglit_include_target_api()
diff --git a/tests/glslparsertest/glslparsertest.c b/tests/glslparsertest/glslparsertest.c
index b22f292c..f24dc52d 100644
--- a/tests/glslparsertest/glslparsertest.c
+++ b/tests/glslparsertest/glslparsertest.c
@@ -41,6 +41,47 @@
static char *filename;
static int expected_pass;
+static float gl_version = 0;
+
+static GLint
+get_shader_compile_status(GLuint shader)
+{
+ GLint status;
+
+#if defined USE_OPENGL
+ if (gl_version >= 2.0) {
+ glGetShaderiv(shader, GL_COMPILE_STATUS, &status);
+ } else {
+ glGetObjectParameterivARB(shader, GL_OBJECT_COMPILE_STATUS_ARB, &status);
+ }
+#elif defined USE_OPENGL_ES2
+ glGetShaderiv(shader, GL_COMPILE_STATUS, &status);
+#else
+# error
+#endif
+
+ return status;
+}
+
+static GLsizei
+get_shader_info_log_length(GLuint shader)
+{
+ GLsizei length;
+
+#if defined USE_OPENGL
+ if (gl_version >= 2.0) {
+ glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length);
+ } else {
+ glGetObjectParameterivARB(shader, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length);
+ }
+#elif defined USE_OPENGL_ES2
+ glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length);
+#else
+# error
+#endif
+
+ return length;
+}
static void
test(void)
@@ -68,16 +109,8 @@ test(void)
exit(1);
}
- if (!GLEW_VERSION_2_0) {
- if (type == GL_FRAGMENT_SHADER && !GLEW_ARB_fragment_shader) {
- fprintf(stderr, "Test requires OpenGL 2.0 or GL_ARB_fragment_shader\n");
- piglit_report_result(PIGLIT_SKIP);
- }
- if (type == GL_VERTEX_SHADER && !GLEW_ARB_vertex_shader) {
- fprintf(stderr, "Test requires OpenGL 2.0 or GL_ARB_vertex_shader\n");
- piglit_report_result(PIGLIT_SKIP);
- }
- }
+ piglit_require_vertex_shader();
+ piglit_require_fragment_shader();
err = stat(filename, &st);
if (err == -1) {
@@ -102,36 +135,22 @@ test(void)
prog_string[st.st_size] = '\0';
fclose(f);
- if (GLEW_VERSION_2_0) {
- prog = glCreateShader(type);
- glShaderSource(prog, 1, (const GLchar **)&prog_string, NULL);
- glCompileShader(prog);
- glGetShaderiv(prog, GL_COMPILE_STATUS, &ok);
- } else {
- prog = glCreateShaderObjectARB(type);
- glShaderSourceARB(prog, 1, (const GLchar **)&prog_string, NULL);
- glCompileShaderARB(prog);
- glGetObjectParameterivARB(prog, GL_OBJECT_COMPILE_STATUS_ARB, &ok);
- }
- pass = (expected_pass == (ok != 0));
+
+ prog = piglit_CreateShader(type);
+ piglit_ShaderSource(prog, 1, (const GLchar **)&prog_string, NULL);
+ piglit_CompileShader(prog);
+ ok = get_shader_compile_status(prog);
+ pass = (expected_pass == ok);
if (pass)
out = stdout;
else
out = stderr;
- if (GLEW_VERSION_2_0) {
- glGetShaderiv(prog, GL_INFO_LOG_LENGTH, &size);
- } else {
- glGetObjectParameterivARB(prog, GL_OBJECT_INFO_LOG_LENGTH_ARB, &size);
- }
+ size = get_shader_info_log_length(prog);
if (size != 0) {
info = malloc(size);
- if (GLEW_VERSION_2_0) {
- glGetShaderInfoLog(prog, size, NULL, info);
- } else {
- glGetInfoLogARB(prog, size, NULL, info);
- }
+ piglit_GetShaderInfoLog(prog, size, NULL, info);
} else {
info = "(no compiler output)";
}
@@ -157,13 +176,7 @@ test(void)
if (size != 0)
free(info);
free(prog_string);
-
- if (GLEW_VERSION_2_0) {
- glDeleteShader(prog);
- } else {
- glDeleteObjectARB(prog);
- }
-
+ piglit_DeleteShader(prog);
piglit_report_result (pass ? PIGLIT_SUCCESS : PIGLIT_FAILURE);
}
@@ -181,7 +194,7 @@ int main(int argc, char**argv)
float requested_version = 1.10;
int i;
- glutInit(&argc, argv);
+ piglit_glutInit(argc, argv);
if (argc < 3)
usage(argv[0]);
@@ -202,9 +215,10 @@ int main(int argc, char**argv)
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT);
glutCreateWindow("glslparsertest");
- glewInit();
+ piglit_get_gl_version(NULL, &gl_version);
- if (!GLEW_VERSION_2_0 && !GL_ARB_shader_objects) {
+ if (gl_version < 2.0
+ && !piglit_is_extension_supported("GL_ARB_shader_objects")) {
printf("Requires OpenGL 2.0\n");
piglit_report_result(PIGLIT_SKIP);
exit(1);