--- tests/spec/ext_semaphore/api-errors.c | 110 +++++++++++++++----------- 1 file changed, 63 insertions(+), 47 deletions(-)
diff --git a/tests/spec/ext_semaphore/api-errors.c b/tests/spec/ext_semaphore/api-errors.c index a7fd93ade..be8a0c7cf 100644 --- a/tests/spec/ext_semaphore/api-errors.c +++ b/tests/spec/ext_semaphore/api-errors.c @@ -28,36 +28,32 @@ #include "piglit-util-gl.h" -PIGLIT_GL_TEST_CONFIG_BEGIN - - config.supports_gl_compat_version = 10; - config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE; - config.khr_no_error_support = PIGLIT_HAS_ERRORS; +static const struct piglit_gl_test_config * piglit_config; -PIGLIT_GL_TEST_CONFIG_END +#define RESULT(error) piglit_check_gl_error(error) ? PIGLIT_PASS : PIGLIT_FAIL -static bool -test_get_unsigned_byte_v_enum_errors() +static enum piglit_result +test_get_unsigned_byte_v_enum_errors(void * unused) { GLubyte data[GL_UUID_SIZE_EXT]; glGetUnsignedBytevEXT(UINT32_MAX, data); - return piglit_check_gl_error(GL_INVALID_ENUM); + return RESULT(GL_INVALID_ENUM); } -static bool -test_get_unsigned_byte_i_v_enum_errors() +static enum piglit_result +test_get_unsigned_byte_i_v_enum_errors(void * unused) { GLubyte data[GL_UUID_SIZE_EXT]; glGetUnsignedBytei_vEXT(UINT32_MAX, 0, data); - return piglit_check_gl_error(GL_INVALID_ENUM); + return RESULT(GL_INVALID_ENUM); } -static bool -test_get_unsigned_byte_i_v_value_errors() +static enum piglit_result +test_get_unsigned_byte_i_v_value_errors(void * unused) { GLubyte data[GL_UUID_SIZE_EXT]; GLint numDevices; @@ -66,31 +62,31 @@ test_get_unsigned_byte_i_v_value_errors() glGetUnsignedBytei_vEXT(GL_DEVICE_UUID_EXT, numDevices + 1, data); - return piglit_check_gl_error(GL_INVALID_VALUE); + return RESULT(GL_INVALID_VALUE); } -static bool -test_gen_semaphores_value_errors() +static enum piglit_result +test_gen_semaphores_value_errors(void * unused) { GLuint sem; glGenSemaphoresEXT(-1, &sem); - return piglit_check_gl_error(GL_INVALID_VALUE); + return RESULT(GL_INVALID_VALUE); } -static bool -test_delete_semaphores_value_errors() +static enum piglit_result +test_delete_semaphores_value_errors(void * unused) { GLuint sem; glDeleteSemaphoresEXT(-1, &sem); - return piglit_check_gl_error(GL_INVALID_VALUE); + return RESULT(GL_INVALID_VALUE); } -static bool -test_semaphore_parameter_enum_errors() +static enum piglit_result +test_semaphore_parameter_enum_errors(void * unused) { GLuint sem; GLuint64 param; @@ -103,11 +99,11 @@ test_semaphore_parameter_enum_errors() */ glSemaphoreParameterui64vEXT(0, sem, ¶m); - return piglit_check_gl_error(GL_INVALID_ENUM); + return RESULT(GL_INVALID_ENUM); } -static bool -test_get_semaphore_parameter_enum_errors() +static enum piglit_result +test_get_semaphore_parameter_enum_errors(void * unused) { GLuint sem; GLuint64 param; @@ -115,35 +111,55 @@ test_get_semaphore_parameter_enum_errors() glGenSemaphoresEXT(1, &sem); glGetSemaphoreParameterui64vEXT(0, sem, ¶m); - return piglit_check_gl_error(GL_INVALID_ENUM); + return RESULT(GL_INVALID_ENUM); } -#define X(f, desc) \ - do { \ - const bool subtest_pass = (f); \ - piglit_report_subtest_result(subtest_pass \ - ? PIGLIT_PASS : PIGLIT_FAIL, \ - (desc)); \ - pass = pass && subtest_pass; \ - } while (0) +#undef RESULT + +#define ADD_TEST(func, name) \ + { \ + name, \ + name, \ + func, \ + NULL \ + } +static const struct piglit_subtest tests[] = { + ADD_TEST(test_get_unsigned_byte_v_enum_errors, "usigned-byte-v-bad-enum"), + ADD_TEST(test_get_unsigned_byte_i_v_enum_errors, "usigned-byte-i-v-bad-enum"), + ADD_TEST(test_get_unsigned_byte_i_v_value_errors, "usigned-byte-i-v-bad-value"), + + ADD_TEST(test_gen_semaphores_value_errors, "gen-semaphores-bad-value"), + ADD_TEST(test_delete_semaphores_value_errors, "gen-semaphores-bad-value"), + ADD_TEST(test_delete_semaphores_value_errors, "gen-semaphores-bad-value"), + + ADD_TEST(test_semaphore_parameter_enum_errors, "semaphore-parameter-bad-enum"), + ADD_TEST(test_get_semaphore_parameter_enum_errors, "get-semaphore-parameter-bad-enum"), + { NULL }, +}; +#undef ADD_TEST + +PIGLIT_GL_TEST_CONFIG_BEGIN + + piglit_config = &config; + config.subtests = tests; + config.supports_gl_compat_version = 10; + config.window_visual = PIGLIT_GL_VISUAL_RGBA | PIGLIT_GL_VISUAL_DOUBLE; + config.khr_no_error_support = PIGLIT_HAS_ERRORS; + +PIGLIT_GL_TEST_CONFIG_END enum piglit_result piglit_display(void) { - bool pass = true; - - X(test_get_unsigned_byte_v_enum_errors(), "usigned-byte-v-bad-enum"); - X(test_get_unsigned_byte_i_v_enum_errors(), "usigned-byte-i-v-bad-enum"); - X(test_get_unsigned_byte_i_v_value_errors(), "usigned-byte-i-v-bad-value"); - - X(test_gen_semaphores_value_errors(), "gen-semaphores-bad-value"); - X(test_delete_semaphores_value_errors(), "gen-semaphores-bad-value"); - X(test_delete_semaphores_value_errors(), "gen-semaphores-bad-value"); + enum piglit_result result = PIGLIT_PASS; - X(test_semaphore_parameter_enum_errors(), "semaphore-parameter-bad-enum"); - X(test_get_semaphore_parameter_enum_errors(), "get-semaphore-parameter-bad-enum"); + piglit_run_selected_subtests( + tests, + piglit_config->selected_subtests, + piglit_config->num_selected_subtests, + result); - return pass ? PIGLIT_PASS : PIGLIT_FAIL; + return result; } -- 2.19.2 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit