diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2020-04-01 10:09:21 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2020-04-01 11:04:52 +0100 |
commit | d7beb89944467f9a32c00ba761aca625721a5f6d (patch) | |
tree | 324eb53b65da7e43de0e5e0854d6b4c0fc0369a6 /tests/i915/gem_exec_store.c | |
parent | dc2a58fac5d0002cfbe3c25a70f785a19fe231d4 (diff) |
i915/gem_exec_store: Dynamise per-engine discovery
Make the declaration of per-engine tests dynamic
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Diffstat (limited to 'tests/i915/gem_exec_store.c')
-rw-r--r-- | tests/i915/gem_exec_store.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/tests/i915/gem_exec_store.c b/tests/i915/gem_exec_store.c index eb511696..a6409c40 100644 --- a/tests/i915/gem_exec_store.c +++ b/tests/i915/gem_exec_store.c @@ -46,8 +46,6 @@ static void store_dword(int fd, const struct intel_execution_engine2 *e) uint32_t batch[16]; int i; - igt_require(gem_class_can_store_dword(fd, e->class)); - intel_detect_and_clear_missed_interrupts(fd); memset(&execbuf, 0, sizeof(execbuf)); execbuf.buffers_ptr = to_user_pointer(obj); @@ -110,8 +108,6 @@ static void store_cachelines(int fd, const struct intel_execution_engine2 *e, reloc = calloc(NCACHELINES, sizeof(*reloc)); igt_assert(reloc); - igt_require(gem_class_can_store_dword(fd, e->class)); - intel_detect_and_clear_missed_interrupts(fd); memset(&execbuf, 0, sizeof(execbuf)); execbuf.buffer_count = flags & PAGES ? NCACHELINES + 1 : 2; @@ -326,6 +322,11 @@ static int print_welcome(int fd) return ffs(info->gen); } +#define test_each_engine(T, i915, e) \ + igt_subtest_with_dynamic(T) __for_each_physical_engine(i915, e) \ + for_each_if(gem_class_can_store_dword(i915, (e)->class)) \ + igt_dynamic_f("%s", (e)->name) + igt_main { const struct intel_execution_engine2 *e; @@ -341,24 +342,21 @@ igt_main igt_device_set_master(fd); igt_require_gem(fd); - igt_require(gem_can_store_dword(fd, 0)); igt_fork_hang_detector(fd); } - __for_each_physical_engine(fd, e) { - igt_subtest_f("basic-%s", e->name) - store_dword(fd, e); + igt_subtest("basic") + store_all(fd); - igt_subtest_f("cachelines-%s", e->name) - store_cachelines(fd, e, 0); + test_each_engine("dword", fd, e) + store_dword(fd, e); - igt_subtest_f("pages-%s", e->name) - store_cachelines(fd, e, PAGES); - } + test_each_engine("cachelines", fd, e) + store_cachelines(fd, e, 0); - igt_subtest("basic-all") - store_all(fd); + test_each_engine("pages", fd, e) + store_cachelines(fd, e, PAGES); igt_fixture { igt_stop_hang_detector(); |