From 7b3634364a1f5cf1797a55a1d0d042ec8d9f510c Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Thu, 12 Sep 2013 14:38:13 +0200 Subject: [PATCH] tests/gem_fenced_exec_thrash: New subtests that uses all fences igt runs under the assumption that nothing else (besides maybe fbcon) is using the gpu. So we should be able to use all fences. Keep the conservative testcase around though in case someone has a broken setup. Signed-off-by: Daniel Vetter --- tests/Makefile.am | 2 +- tests/gem_fenced_exec_thrash.c | 33 +++++++++++++++++++++------------ 2 files changed, 22 insertions(+), 13 deletions(-) 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(); }