[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