[Piglit] [PATCH 3/7] arb_texture_cube_map_array: check for teximage3d invalid values.
Dave Airlie
airlied at gmail.com
Sat Sep 22 01:07:48 PDT 2012
On Fri, Sep 7, 2012 at 12:52 AM, Brian Paul <brianp at vmware.com> wrote:
> On 09/05/2012 09:34 PM, Dave Airlie wrote:
>>
>> From: Dave Airlie<airlied at redhat.com>
>>
>> This tests teximage3d returns invalid values for width != height
>> and depth not divisible by 6.
>>
>> Signed-off-by: Dave Airlie<airlied at redhat.com>
>> ---
>> .../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.
More information about the Piglit
mailing list