summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/tapi/t_result.h2
-rw-r--r--src/framework/test/t_result.c18
2 files changed, 20 insertions, 0 deletions
diff --git a/include/tapi/t_result.h b/include/tapi/t_result.h
index 3858da5..71bc980 100644
--- a/include/tapi/t_result.h
+++ b/include/tapi/t_result.h
@@ -59,6 +59,8 @@ noreturn void t_pass(void);
#define t_assertf(cond, format, ...) __t_assertf(__FILE__, __LINE__, (cond), #cond, format, ##__VA_ARGS__)
#define t_assertfv(cond, format, va) __t_assertfv(__FILE__, __LINE__, (cond), #cond, format, va)
+void t_require_ext(const char *extension_name);
+
noreturn void __t_skip(const char *file, int line);
noreturn void __t_skipf(const char *file, int line, const char *format, ...) printflike(3, 4);
noreturn void __t_skipfv(const char *file, int line, const char *format, va_list va);
diff --git a/src/framework/test/t_result.c b/src/framework/test/t_result.c
index 949db25..6aae081 100644
--- a/src/framework/test/t_result.c
+++ b/src/framework/test/t_result.c
@@ -186,6 +186,24 @@ __t_assertfv(const char *file, int line, bool cond, const char *cond_string,
t_end(TEST_RESULT_FAIL);
}
+void
+t_require_ext(const char *name)
+{
+ GET_CURRENT_TEST(t);
+
+ for (uint32_t i = 0; i < t->vk.instance_extension_count; i++) {
+ if (!strcmp(name, t->vk.instance_extension_props[i].extensionName))
+ return;
+ }
+
+ for (uint32_t i = 0; i < t->vk.device_extension_count; i++) {
+ if (!strcmp(name, t->vk.device_extension_props[i].extensionName))
+ return;
+ }
+
+ t_skip();
+}
+
static bool
t_compare_color_image(void)
{