diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2018-06-29 13:38:07 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2018-12-10 15:34:01 -0800 |
commit | 4c293d8bc6103239fcb27c25ed1cb4e198235ec5 (patch) | |
tree | dcf7aa7a7affab79f71569a4d7bd3ce8b3abcf48 | |
parent | 4b7f06b7cf962c86a9737977b519a2f1f3adc913 (diff) |
tests/ext_semaphore-api-errors: Use subtest mechanism
-rw-r--r-- | tests/spec/ext_semaphore/api-errors.c | 110 |
1 files 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; } |