summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Ekstrand <jason.ekstrand@intel.com>2017-04-14 12:20:08 -0700
committerJason Ekstrand <jason.ekstrand@intel.com>2017-04-14 12:29:46 -0700
commit74e28ea4fd1f7df2aee195417917842af3991cdb (patch)
tree0189e24736fba4ca6410c707e2aba84e5aa6a282
parentcb7eae747be81b4572d3980c953fea01462dd6de (diff)
framework: Add a helper for requiring an extension
-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)
{