glsl: test loop unroll with uint overflow
[piglit.git] / tests / spec / oes_matrix_get / api.c
blobf42ff3ee4538e8f24d0bc58a9ab21a81beec05a6
1 /*
2 * Copyright © 2013 Intel Corporation
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21 * IN THE SOFTWARE.
23 /**
24 * \file oes_matrix_get-api.c
25 * Test the queries added by GL_OES_matrix_get.
28 #include "piglit-util-gl.h"
30 PIGLIT_GL_TEST_CONFIG_BEGIN
32 config.supports_gl_es_version = 11;
34 PIGLIT_GL_TEST_CONFIG_END
36 enum piglit_result
37 piglit_display(void)
39 /* UNREACHED */
40 return PIGLIT_FAIL;
43 void
44 piglit_init(int argc, char **argv)
46 static const struct {
47 GLenum set;
48 GLenum get;
49 } test_vectors[] = {
50 { GL_MODELVIEW, GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES },
51 { GL_PROJECTION, GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES },
52 { GL_TEXTURE, GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES },
55 static const float m[] = {
56 10., 11., 12., 13.,
57 14., 15., 16., 17.,
58 18., 19., 20., 21.,
59 22., 23., 24., 25.
62 float got[ARRAY_SIZE(m)];
63 unsigned i;
64 bool pass = true;
66 piglit_require_extension("GL_OES_matrix_get");
68 for (i = 0; i < ARRAY_SIZE(test_vectors); i++) {
69 glMatrixMode(test_vectors[i].set);
70 glLoadMatrixf(m);
72 memset(got, 0, sizeof(got));
73 glGetIntegerv(test_vectors[i].get, (GLint *) got);
74 pass = piglit_check_gl_error(GL_NO_ERROR) && pass;
76 if (memcmp(got, m, sizeof(m)) != 0) {
77 unsigned j;
79 fprintf(stderr, "Data mismatch for %s. Got:\n",
80 piglit_get_gl_enum_name(test_vectors[i].set));
82 for (j = 0; j < ARRAY_SIZE(got); j++) {
83 fprintf(stderr, "%f%s",
84 got[j], (j % 4) == 3 ? "\n" : ", ");
87 pass = false;
91 piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);