diff options
author | Brian Paul <brianp@vmware.com> | 2013-04-18 14:14:41 -0600 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2013-04-19 16:30:36 -0600 |
commit | ffb8ae06ea13cceaa1902d162fdbdef313133950 (patch) | |
tree | 5fb29eb21ce95d9abb69bb38b47330f9c3be5bed | |
parent | d6b28486cf571fe9cfef4f76c5cfc3003becd646 (diff) |
add a simple glinfo "test" program
When doing a full piglit run it's helpful to have all the OpenGL
driver version/vendor/extension info. The piglit framework tries
to run glxinfo/wglinfo and include the output in the results file,
but sometimes those programs aren't installed.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Reviewed-by Tom Gall <tom.gall@linaro.org>
-rw-r--r-- | tests/all.tests | 1 | ||||
-rw-r--r-- | tests/general/CMakeLists.gl.txt | 1 | ||||
-rw-r--r-- | tests/general/glinfo.c | 92 |
3 files changed, 94 insertions, 0 deletions
diff --git a/tests/all.tests b/tests/all.tests index 495de593..b827e12c 100644 --- a/tests/all.tests +++ b/tests/all.tests @@ -512,6 +512,7 @@ add_plain_test(gl11, 'fragment-center') add_fbo_depthstencil_tests(gl11, 'default_fb') add_plain_test(gl11, 'geterror-invalid-enum') add_plain_test(gl11, 'geterror-inside-begin') +add_concurrent_test(gl11, 'glinfo') add_plain_test(gl11, 'hiz') add_plain_test(gl11, 'infinite-spot-light') add_plain_test(gl11, 'line-aa-width') diff --git a/tests/general/CMakeLists.gl.txt b/tests/general/CMakeLists.gl.txt index e1eb3e3f..0e87baa7 100644 --- a/tests/general/CMakeLists.gl.txt +++ b/tests/general/CMakeLists.gl.txt @@ -67,6 +67,7 @@ ENDIF (UNIX) piglit_add_executable (getactiveattrib getactiveattrib.c) piglit_add_executable (geterror-inside-begin geterror-inside-begin.c) piglit_add_executable (geterror-invalid-enum geterror-invalid-enum.c) +piglit_add_executable (glinfo glinfo.c) piglit_add_executable (gl30basic gl30basic.c) piglit_add_executable (hiz hiz.c) if (UNIX) diff --git a/tests/general/glinfo.c b/tests/general/glinfo.c new file mode 100644 index 00000000..b60ae6d4 --- /dev/null +++ b/tests/general/glinfo.c @@ -0,0 +1,92 @@ +/* + * Copyright © 2013 VMware, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/** + * Simply query and print various glGetString() values. + * This is helpful when running a complete piglit run since the + * results file will have all the pertinant info for the GL driver + * that was tested. + * + * Note that the piglit framework tries to run glxinfo/wglinfo and + * put the output in the results file, but sometimes those programs + * aren't installed. + * + * Brian Paul + * April 2013 + */ + + +#include "piglit-util-gl-common.h" + + +PIGLIT_GL_TEST_CONFIG_BEGIN + config.supports_gl_compat_version = 10; + config.window_visual = PIGLIT_GL_VISUAL_RGB; +PIGLIT_GL_TEST_CONFIG_END + + +enum piglit_result +piglit_display(void) +{ + return PIGLIT_PASS; +} + + +void +piglit_init(int argc, char **argv) +{ + const char *renderer = (const char *) glGetString(GL_RENDERER); + const char *version = (const char *) glGetString(GL_VERSION); + const char *vendor = (const char *) glGetString(GL_VENDOR); + + printf("GL_RENDERER = %s\n", renderer); + printf("GL_VERSION = %s\n", version); + printf("GL_VENDOR = %s\n", vendor); + + if (version[0] >= '2') { + printf("GL_SHADING_LANGUAGE_VERSION = %s\n", (const char *) + glGetString(GL_SHADING_LANGUAGE_VERSION)); + } + + printf("Extensions:\n"); + if (version[0] >= '3') { + GLint numExt, i; + glGetIntegerv(GL_NUM_EXTENSIONS, &numExt); + for (i = 0; i < numExt; i++) { + printf("%s\n", (const char *) + glGetStringi(GL_EXTENSIONS, i)); + } + } + else { + const char *ext = (const char *) glGetString(GL_EXTENSIONS); + const char *c = ext; + for (c = ext; *c; c++) { + if (*c == ' ') + putchar('\n'); + else + putchar(*c); + } + } + + piglit_report_result(PIGLIT_PASS); +} |