diff --git a/tests/Makefile.am b/tests/Makefile.am index 82ccb2b5..c665b66d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -27,6 +27,7 @@ TESTS_progs_M = \ gem_evict_everything \ gem_exec_bad_domains \ gem_exec_nop \ + gem_fenced_exec_thrash \ gem_fence_thrash \ gem_flink \ gem_flink_race \ @@ -74,7 +75,6 @@ TESTS_progs = \ gem_exec_blt \ gem_exec_faulting_reloc \ gem_exec_lut_handle \ - gem_fenced_exec_thrash \ gem_gtt_cpu_tlb \ gem_gtt_speed \ gem_hangcheck_forcewake \ diff --git a/tests/gem_fenced_exec_thrash.c b/tests/gem_fenced_exec_thrash.c index 125b77c8..cfcf2ee1 100644 --- a/tests/gem_fenced_exec_thrash.c +++ b/tests/gem_fenced_exec_thrash.c @@ -143,26 +143,35 @@ static void run_test(int fd, int num_fences, int expected_errno) } while (--loop); } +int fd; +int num_fences; +uint32_t devid; + int main(int argc, char **argv) { - int fd; - int num_fences; - uint32_t devid; + igt_subtest_init(argc, argv); igt_skip_on_simulation(); - fd = drm_open_any(); - num_fences = gem_available_fences(fd); - igt_assert(num_fences > 4); - devid = intel_get_drm_devid(fd); + igt_fixture { + fd = drm_open_any(); + num_fences = gem_available_fences(fd); + igt_assert(num_fences > 4); + devid = intel_get_drm_devid(fd); - igt_assert(num_fences <= MAX_FENCES); + igt_assert(num_fences <= MAX_FENCES); + } - run_test(fd, num_fences - 2, 0); - run_test(fd, num_fences + 1, intel_gen(devid) >= 4 ? 0 : EDEADLK); + igt_subtest("2-spare-fences") + run_test(fd, num_fences - 2, 0); + igt_subtest("no-spare-fences") + run_test(fd, num_fences, 0); + igt_subtest("too-many-fences") + run_test(fd, num_fences + 1, intel_gen(devid) >= 4 ? 0 : EDEADLK); - close(fd); + igt_fixture + close(fd); - return 0; + igt_exit(); }