On Fri, Sep 7, 2012 at 12:52 AM, Brian Paul <[email protected]> wrote: > On 09/05/2012 09:34 PM, Dave Airlie wrote: >> >> From: Dave Airlie<[email protected]> >> >> This tests teximage3d returns invalid values for width != height >> and depth not divisible by 6. >> >> Signed-off-by: Dave Airlie<[email protected]> >> --- >> .../arb_texture_cube_map_array/CMakeLists.gl.txt | 1 + >> .../teximage3d-invalid-values.c | 75 >> ++++++++++++++++++++ >> 2 files changed, 76 insertions(+), 0 deletions(-) >> create mode 100644 >> tests/spec/arb_texture_cube_map_array/teximage3d-invalid-values.c >> >> diff --git a/tests/spec/arb_texture_cube_map_array/CMakeLists.gl.txt >> b/tests/spec/arb_texture_cube_map_array/CMakeLists.gl.txt >> index c8f90f8..f86cbba 100644 >> --- a/tests/spec/arb_texture_cube_map_array/CMakeLists.gl.txt >> +++ b/tests/spec/arb_texture_cube_map_array/CMakeLists.gl.txt >> @@ -10,3 +10,4 @@ link_libraries ( >> ) >> >> piglit_add_executable (arb_texture_cube_map_array-cubemap cubemap.c) >> +piglit_add_executable >> (arb_texture_cube_map_array-teximage3d-invalid-values >> teximage3d-invalid-values.c) >> diff --git >> a/tests/spec/arb_texture_cube_map_array/teximage3d-invalid-values.c >> b/tests/spec/arb_texture_cube_map_array/teximage3d-invalid-values.c >> new file mode 100644 >> index 0000000..dec8f8a >> --- /dev/null >> +++ b/tests/spec/arb_texture_cube_map_array/teximage3d-invalid-values.c >> @@ -0,0 +1,75 @@ >> +/* Copyright © 2012 Red Hat. >> + * >> + * 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. >> + */ >> + >> +/** @file teximage3d-invalid-values >> + * >> + * From the GL_ARB_texture_cube_map_array spec: >> + * >> + * TexImage3D generates the error INVALID_VALUE if<target> is >> + * TEXTURE_CUBE_MAP_ARRAY_ARB and<depth> is not a multiple of 6. >> + * TexImage3D generates the error INVALID_VALUE if<target> is >> + * TEXTURE_CUBE_MAP_ARRAY_ARB and<width> and<height> are not equal. >> + */ >> + >> +#include "piglit-util-gl-common.h" >> + >> +PIGLIT_GL_TEST_MAIN( >> + 32 /*window_width*/, >> + 32 /*window_height*/, >> + GLUT_DOUBLE | GLUT_RGB | GLUT_ALPHA) >> + >> +enum piglit_result >> +piglit_display(void) >> +{ >> + return PIGLIT_FAIL; /* UNREACHED */ >> +} >> + >> + >> +void >> +piglit_init(int argc, char **argv) >> +{ >> + GLuint tex; >> + char *data = NULL; >> + >> + piglit_require_extension("GL_ARB_texture_cube_map_array"); >> + >> + glGenTextures(1,&tex); >> + glBindTexture(GL_TEXTURE_CUBE_MAP_ARRAY, tex); >> + >> + /* multiple of 6 depth tests */ >> + /* less than 6 */ >> + glTexImage3D(GL_TEXTURE_CUBE_MAP_ARRAY, 0, GL_RGB, 64, 64, 4, 0, >> GL_RGB, GL_FLOAT, data); >> + if (!piglit_check_gl_error(GL_INVALID_VALUE)) >> + piglit_report_result(PIGLIT_FAIL); >> + >> + /* greater than 6 */ >> + glTexImage3D(GL_TEXTURE_CUBE_MAP_ARRAY, 0, GL_RGB, 64, 64, 14, 0, >> GL_RGB, GL_FLOAT, data); >> + if (!piglit_check_gl_error(GL_INVALID_VALUE)) >> + piglit_report_result(PIGLIT_FAIL); >> + >> + /* different w/h */ >> + glTexImage3D(GL_TEXTURE_CUBE_MAP_ARRAY, 0, GL_RGB, 64, 14, 6, 0, >> GL_RGB, GL_FLOAT, data); >> + if (!piglit_check_gl_error(GL_INVALID_VALUE)) >> + piglit_report_result(PIGLIT_FAIL); >> + >> + piglit_report_result(PIGLIT_PASS); >> +} > > > It might also be worthwhile to test setting a mipmap level > 0 with depth=6 > (or 12, 18, etc).
I was trying to stick to explicit new errors introduced in the spec, I couldn't see where this would fit into that. Regards, Dave. _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
