[Piglit] [PATCH] ext_texture_array: add simple API errors test

Tapani Pälli tapani.palli at intel.com
Tue Dec 2 23:47:53 PST 2014



On 12/02/2014 06:43 PM, Brian Paul wrote:
> ---
>   tests/all.py                                   |   1 +
>   tests/spec/ext_texture_array/CMakeLists.gl.txt |   1 +
>   tests/spec/ext_texture_array/errors.c          | 170 +++++++++++++++++++++++++
>   3 files changed, 172 insertions(+)
>   create mode 100644 tests/spec/ext_texture_array/errors.c

8<

> +static bool
> +test_2d_dimensions(void)
> +{
> +	bool pass = true;
> +	GLuint tex;
> +
> +	glGenTextures(1, &tex);
> +	glBindTexture(GL_TEXTURE_1D_ARRAY, tex);
> +
> +	/*
> +	 * zero dimensions should be OK
> +	 */
> +	glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA,


You are binding texture as GL_TEXTURE_1D_ARRAY but then setting target 
for glTexImage3D as GL_TEXTURE_2D_ARRAY. Should this fail? Why is the 
last case invalid if texture is bound as GL_TEXTURE_1D_ARRAY?


> +		     0, 0, 0, /* w, h, d */
> +		     0, /* border */
> +		     GL_RGBA, GL_FLOAT, NULL);
> +	if (!piglit_check_gl_error(GL_NO_ERROR))
> +		pass = false;
> +
> +	glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA,
> +		     1, 0, 0, /* w, h, d */
> +		     0, /* border */
> +		     GL_RGBA, GL_FLOAT, NULL);
> +	if (!piglit_check_gl_error(GL_NO_ERROR))
> +		pass = false;
> +
> +	glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA,
> +		     1, 1, 0, /* w, h, d */
> +		     0, /* border */
> +		     GL_RGBA, GL_FLOAT, NULL);
> +	if (!piglit_check_gl_error(GL_NO_ERROR))
> +		pass = false;
> +
> +	glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA,
> +		     1, 0, 1, /* w, h, d */
> +		     0, /* border */
> +		     GL_RGBA, GL_FLOAT, NULL);
> +	if (!piglit_check_gl_error(GL_NO_ERROR))
> +		pass = false;
> +
> +	/* Test too many layers */
> +	glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA,
> +		     32, 32, MaxLayers + 1, /* w, h, d */
> +		     0, /* border */
> +		     GL_RGBA, GL_FLOAT, NULL);
> +	if (!piglit_check_gl_error(GL_INVALID_VALUE))
> +		pass = false;
> +
> +	/* Test invalid target */
> +	glTexImage3D(GL_TEXTURE_1D_ARRAY, 0, GL_RGBA,
> +		     32, 32, 2, /* w, h, d */
> +		     0, /* border */
> +		     GL_RGBA, GL_FLOAT, NULL);
> +	if (!piglit_check_gl_error(GL_INVALID_ENUM))
> +		pass = false;
> +
> +	return pass;
> +}
> +
> +
> +enum piglit_result
> +piglit_display(void)
> +{
> +	bool pass;
> +
> +	pass = test_1d_dimensions();
> +	pass = test_2d_dimensions() && pass;
> +
> +	return pass ? PIGLIT_PASS : PIGLIT_FAIL;
> +}
> +
> +
> +void
> +piglit_init(int argc, char **argv)
> +{
> +	piglit_require_extension("GL_EXT_texture_array");
> +
> +	glGetIntegerv(GL_MAX_ARRAY_TEXTURE_LAYERS_EXT, &MaxLayers);
> +}
>


More information about the Piglit mailing list