[Piglit] [PATCH 1/2] util/egl: Change piglit_expect_egl_error to return a bool

Ian Romanick idr at freedesktop.org
Tue Nov 13 16:37:48 PST 2012


On 11/09/2012 11:45 AM, Chad Versace wrote:
> Previously, piglit_expect_egl_error() would terminate the test an
> unexpecgted error occurred. However, there are many cases when we would
> prefer to simply report the error and continue testing.
>
> Commit 83c8ef80 made an analagous change to piglit_check_gl_error(). For
> consistency with that function, this commit also renames
> piglit_expect_egl_error to piglit_check_egl_error.
>
> In all cases, I replaced
>      piglit_expect_egl_error(err, PIGLIT_FAIL)
> with
>      if (!piglit_check_egl_error(err))
>          piglit_report_result(PIGLIT_FAIL)
> or some equivalent.
>
> CC: Ian Romanick <idr at freedesktop.org>

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

> Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
> ---
>   tests/egl/egl-query-surface.c                             | 15 +++++++++++----
>   tests/egl/spec/egl_khr_create_context/core-profile.c      | 12 ++++++------
>   .../spec/egl_khr_create_context/invalid-attribute-gl.c    |  3 ++-
>   .../spec/egl_khr_create_context/invalid-attribute-gles.c  |  3 ++-
>   tests/egl/spec/egl_khr_create_context/invalid-flag-gl.c   |  3 ++-
>   tests/egl/spec/egl_khr_create_context/invalid-flag-gles.c |  3 ++-
>   .../egl/spec/egl_khr_create_context/invalid-gl-version.c  |  3 ++-
>   tests/egl/spec/egl_khr_create_context/invalid-profile.c   |  3 ++-
>   .../valid-flag-forward-compatible-gl.c                    |  4 ++--
>   tests/util/piglit-util-egl.c                              |  7 ++++---
>   tests/util/piglit-util-egl.h                              |  7 ++++---
>   11 files changed, 39 insertions(+), 24 deletions(-)
>
> diff --git a/tests/egl/egl-query-surface.c b/tests/egl/egl-query-surface.c
> index c61ab5e..d6424e4 100644
> --- a/tests/egl/egl-query-surface.c
> +++ b/tests/egl/egl-query-surface.c
> @@ -64,7 +64,9 @@ query_width(struct egl_state *state)
>
>   	assert(state->width == window_width);
>   	ok = eglQuerySurface(state->egl_dpy, state->surf, EGL_WIDTH, &width);
> -	piglit_expect_egl_error(EGL_SUCCESS, PIGLIT_FAIL);
> +	if (!piglit_check_egl_error(EGL_SUCCESS)) {
> +		piglit_report_result(PIGLIT_FAIL);
> +	}
>   	if (!ok) {
>   		fprintf(stderr, "error: eglQuerySurface() failed\n");
>   		return PIGLIT_FAIL;
> @@ -86,7 +88,9 @@ query_height(struct egl_state *state)
>
>   	assert(state->height == window_height);
>   	ok = eglQuerySurface(state->egl_dpy, state->surf, EGL_HEIGHT, &height);
> -	piglit_expect_egl_error(EGL_SUCCESS, PIGLIT_FAIL);
> +	if (!piglit_check_egl_error(EGL_SUCCESS)) {
> +		piglit_report_result(PIGLIT_FAIL);
> +	}
>   	if (!ok) {
>   		fprintf(stderr, "error: eglQuerySurface() failed\n");
>   		return PIGLIT_FAIL;
> @@ -112,7 +116,9 @@ query_bad_surface(struct egl_state *state)
>   		        "error: eglQuerySurface(surface=0) succeeded\n");
>   		return PIGLIT_FAIL;
>   	}
> -	piglit_expect_egl_error(EGL_BAD_SURFACE, PIGLIT_FAIL);
> +	if (!piglit_check_egl_error(EGL_BAD_SURFACE)) {
> +		piglit_report_result(PIGLIT_FAIL);
> +	}
>   	return PIGLIT_PASS;
>   }
>
> @@ -130,7 +136,8 @@ query_bad_parameter(struct egl_state *state)
>   		        "succeeded\n");
>   		return PIGLIT_FAIL;
>   	}
> -	piglit_expect_egl_error(EGL_BAD_ATTRIBUTE, PIGLIT_FAIL);
> +	if (!piglit_check_egl_error(EGL_BAD_ATTRIBUTE))
> +		piglit_report_result(PIGLIT_FAIL);
>   	return PIGLIT_PASS;
>   }
>
> diff --git a/tests/egl/spec/egl_khr_create_context/core-profile.c b/tests/egl/spec/egl_khr_create_context/core-profile.c
> index c63993a..85f4d2a 100644
> --- a/tests/egl/spec/egl_khr_create_context/core-profile.c
> +++ b/tests/egl/spec/egl_khr_create_context/core-profile.c
> @@ -74,7 +74,7 @@ int main(int argc, char **argv)
>   	if (ctx != EGL_NO_CONTEXT) {
>   		eglDestroyContext(egl_dpy, ctx);
>   		got_core_with_profile = true;
> -	} else {
> +	} else if (!piglit_check_egl_error(EGL_BAD_MATCH)) {
>   		/* The EGL_KHR_create_context spec says:
>   		 *
>   		 *     "* If <config> does not support a client API context
> @@ -84,7 +84,7 @@ int main(int argc, char **argv)
>   		 *        are supported), then an EGL_BAD_MATCH error is
>   		 *        generated."
>   		 */
> -		piglit_expect_egl_error(EGL_BAD_MATCH, PIGLIT_FAIL);
> +		piglit_report_result(PIGLIT_FAIL);
>   	}
>
>   	/* The EGL_KHR_create_context spec says:
> @@ -97,7 +97,7 @@ int main(int argc, char **argv)
>   	if (ctx != EGL_NO_CONTEXT) {
>   		eglDestroyContext(egl_dpy, ctx);
>   		got_core_without_profile = true;
> -	} else {
> +	} else if (!piglit_check_egl_error(EGL_BAD_MATCH)) {
>   		/* The EGL_KHR_create_context spec says:
>   		 *
>   		 *     "* If <config> does not support a client API context
> @@ -107,7 +107,7 @@ int main(int argc, char **argv)
>   		 *        are supported), then an EGL_BAD_MATCH error is
>   		 *        generated."
>   		 */
> -		piglit_expect_egl_error(EGL_BAD_MATCH, PIGLIT_FAIL);
> +		piglit_report_result(PIGLIT_FAIL);
>   	}
>
>   	ctx = eglCreateContext(egl_dpy, cfg, EGL_NO_CONTEXT, compatibility_attribs);
> @@ -115,7 +115,7 @@ int main(int argc, char **argv)
>   	if (ctx != EGL_NO_CONTEXT) {
>   		eglDestroyContext(egl_dpy, ctx);
>   		got_compatibility = true;
> -	} else {
> +	} else if (!piglit_check_egl_error(EGL_BAD_MATCH)) {
>   		/* The EGL_KHR_create_context spec says:
>   		 *
>   		 *     "* If <config> does not support a client API context
> @@ -125,7 +125,7 @@ int main(int argc, char **argv)
>   		 *        are supported), then an EGL_BAD_MATCH error is
>   		 *        generated."
>   		 */
> -		piglit_expect_egl_error(EGL_BAD_MATCH, PIGLIT_FAIL);
> +		piglit_report_result(PIGLIT_FAIL);
>   	}
>
>   	EGL_KHR_create_context_teardown();
> diff --git a/tests/egl/spec/egl_khr_create_context/invalid-attribute-gl.c b/tests/egl/spec/egl_khr_create_context/invalid-attribute-gl.c
> index b99dee8..d1c99ab 100644
> --- a/tests/egl/spec/egl_khr_create_context/invalid-attribute-gl.c
> +++ b/tests/egl/spec/egl_khr_create_context/invalid-attribute-gl.c
> @@ -47,7 +47,8 @@ static bool try_attribute(int attribute)
>   	 *        recognized (including unrecognized bits in bitmask attributes),
>   	 *        then an EGL_BAD_ATTRIBUTE error is generated."
>   	 */
> -	piglit_expect_egl_error(EGL_BAD_ATTRIBUTE, PIGLIT_FAIL);
> +	if (!piglit_check_egl_error(EGL_BAD_ATTRIBUTE))
> +		piglit_report_result(PIGLIT_FAIL);
>
>   	return pass;
>   }
> diff --git a/tests/egl/spec/egl_khr_create_context/invalid-attribute-gles.c b/tests/egl/spec/egl_khr_create_context/invalid-attribute-gles.c
> index d3e030c..0ee24de 100644
> --- a/tests/egl/spec/egl_khr_create_context/invalid-attribute-gles.c
> +++ b/tests/egl/spec/egl_khr_create_context/invalid-attribute-gles.c
> @@ -56,7 +56,8 @@ static bool try_attribute(int attribute)
>   	 *        recognized (including unrecognized bits in bitmask attributes),
>   	 *        then an EGL_BAD_ATTRIBUTE error is generated."
>   	 */
> -	piglit_expect_egl_error(EGL_BAD_ATTRIBUTE, PIGLIT_FAIL);
> +	if (!piglit_check_egl_error(EGL_BAD_ATTRIBUTE))
> +		piglit_report_result(PIGLIT_FAIL);
>
>   	return pass;
>   }
> diff --git a/tests/egl/spec/egl_khr_create_context/invalid-flag-gl.c b/tests/egl/spec/egl_khr_create_context/invalid-flag-gl.c
> index 1aac646..ce4fe2d 100644
> --- a/tests/egl/spec/egl_khr_create_context/invalid-flag-gl.c
> +++ b/tests/egl/spec/egl_khr_create_context/invalid-flag-gl.c
> @@ -47,7 +47,8 @@ static bool try_flag(uint32_t flag)
>   	 *        recognized (including unrecognized bits in bitmask attributes),
>   	 *        then an EGL_BAD_ATTRIBUTE error is generated."
>   	 */
> -	piglit_expect_egl_error(EGL_BAD_ATTRIBUTE, PIGLIT_FAIL);
> +	if (!piglit_check_egl_error(EGL_BAD_ATTRIBUTE))
> +		piglit_report_result(PIGLIT_FAIL);
>
>   	return pass;
>   }
> diff --git a/tests/egl/spec/egl_khr_create_context/invalid-flag-gles.c b/tests/egl/spec/egl_khr_create_context/invalid-flag-gles.c
> index 3618a91..b12db20 100644
> --- a/tests/egl/spec/egl_khr_create_context/invalid-flag-gles.c
> +++ b/tests/egl/spec/egl_khr_create_context/invalid-flag-gles.c
> @@ -47,7 +47,8 @@ static bool try_flag(uint32_t flag)
>   	 *        recognized (including unrecognized bits in bitmask attributes),
>   	 *        then an EGL_BAD_ATTRIBUTE error is generated."
>   	 */
> -	piglit_expect_egl_error(EGL_BAD_ATTRIBUTE, PIGLIT_FAIL);
> +	if (!piglit_check_egl_error(EGL_BAD_ATTRIBUTE))
> +		piglit_report_result(PIGLIT_FAIL);
>
>   	return pass;
>   }
> diff --git a/tests/egl/spec/egl_khr_create_context/invalid-gl-version.c b/tests/egl/spec/egl_khr_create_context/invalid-gl-version.c
> index ee33fb9..680b70b 100644
> --- a/tests/egl/spec/egl_khr_create_context/invalid-gl-version.c
> +++ b/tests/egl/spec/egl_khr_create_context/invalid-gl-version.c
> @@ -50,7 +50,8 @@ static bool try_version(int major, int minor)
>   	 *     version and feature set that are not defined, than an
>   	 *     EGL_BAD_MATCH error is generated."
>   	 */
> -	piglit_expect_egl_error(EGL_BAD_MATCH, PIGLIT_FAIL);
> +	if (!piglit_check_egl_error(EGL_BAD_MATCH))
> +		piglit_report_result(PIGLIT_FAIL);
>
>   	return pass;
>   }
> diff --git a/tests/egl/spec/egl_khr_create_context/invalid-profile.c b/tests/egl/spec/egl_khr_create_context/invalid-profile.c
> index d7aece8..fe4f429 100644
> --- a/tests/egl/spec/egl_khr_create_context/invalid-profile.c
> +++ b/tests/egl/spec/egl_khr_create_context/invalid-profile.c
> @@ -59,7 +59,8 @@ static bool try_profile(int profile)
>   	 *        support the requested profile, then an EGL_BAD_MATCH error is
>   	 *        generated."
>   	 */
> -	piglit_expect_egl_error(EGL_BAD_MATCH, PIGLIT_FAIL);
> +	if (!piglit_check_egl_error(EGL_BAD_MATCH))
> +		piglit_report_result(PIGLIT_FAIL);
>
>   	return pass;
>   }
> diff --git a/tests/egl/spec/egl_khr_create_context/valid-flag-forward-compatible-gl.c b/tests/egl/spec/egl_khr_create_context/valid-flag-forward-compatible-gl.c
> index b41fda0..2f2c0a7 100644
> --- a/tests/egl/spec/egl_khr_create_context/valid-flag-forward-compatible-gl.c
> +++ b/tests/egl/spec/egl_khr_create_context/valid-flag-forward-compatible-gl.c
> @@ -48,7 +48,7 @@ static bool try_flag(int flag)
>   			gl_version = piglit_get_gl_version();
>   		}
>   		eglDestroyContext(egl_dpy, ctx);
> -	} else {
> +	} else if (!piglit_check_egl_error(EGL_BAD_MATCH)) {
>   		/* The EGL_KHR_create_context spec says:
>   		 *
>   		 *     "* If <config> does not support a client API context compatible
> @@ -57,7 +57,7 @@ static bool try_flag(int flag)
>   		 *        where these attributes are supported), then an EGL_BAD_MATCH
>   		 *        error is generated.
>   		 */
> -		piglit_expect_egl_error(EGL_BAD_MATCH, PIGLIT_FAIL);
> +		piglit_report_result(PIGLIT_FAIL);
>   	}
>
>   	return true;
> diff --git a/tests/util/piglit-util-egl.c b/tests/util/piglit-util-egl.c
> index a7d37e5..1087429 100644
> --- a/tests/util/piglit-util-egl.c
> +++ b/tests/util/piglit-util-egl.c
> @@ -48,13 +48,14 @@ const char* piglit_get_egl_error_name(EGLint error) {
>   #undef CASE
>   }
>
> -void piglit_expect_egl_error(EGLint expected_error, enum piglit_result result)
> +bool
> +piglit_check_egl_error(EGLint expected_error)
>   {
>   	EGLint actual_error;
>
>   	actual_error = eglGetError();
>   	if (actual_error == expected_error) {
> -		return;
> +		return true;
>   	}
>
>   	/*
> @@ -72,7 +73,7 @@ void piglit_expect_egl_error(EGLint expected_error, enum piglit_result result)
>   		piglit_get_egl_error_name(expected_error), expected_error);
>           }
>
> -	piglit_report_result(result);
> +	return false;
>   }
>
>   bool
> diff --git a/tests/util/piglit-util-egl.h b/tests/util/piglit-util-egl.h
> index db94eeb..7faccf4 100644
> --- a/tests/util/piglit-util-egl.h
> +++ b/tests/util/piglit-util-egl.h
> @@ -41,14 +41,15 @@ extern "C" {
>   const char* piglit_get_egl_error_name(EGLint error);
>
>   /**
> - * \brief Check for unexpected EGL errors and possibly terminate the test.
> + * \brief Check for unexpected EGL errors.
>    *
>    * If eglGetError() returns an error other than \c expected_error, then
> - * print a diagnostic and terminate the test with the given result.
> + * print a diagnostic and return false.
>    *
>    * If you expect no error, then set \code expected_error = EGL_SUCCESS \endcode.
>    */
> -void piglit_expect_egl_error(EGLint expected_error, enum piglit_result result);
> +bool
> +piglit_check_egl_error(EGLint expected_error);
>
>   /**
>    * \brief Checks whether an EGL extension is supported.
>



More information about the Piglit mailing list