summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/gem_exec_fence.c60
1 files changed, 36 insertions, 24 deletions
diff --git a/tests/gem_exec_fence.c b/tests/gem_exec_fence.c
index 357ef19f..dc21134b 100644
--- a/tests/gem_exec_fence.c
+++ b/tests/gem_exec_fence.c
@@ -321,8 +321,6 @@ igt_main
igt_require_gem(i915);
igt_require(gem_has_exec_fence(i915));
gem_require_mmap_wc(i915);
-
- igt_allow_hang(i915, 0, 0);
}
for (e = intel_execution_engines; e->name; e++) {
@@ -331,28 +329,42 @@ igt_main
igt_require(gem_has_ring(i915, e->exec_id | e->flags));
}
- igt_subtest_f("%sbusy-%s",
- e->exec_id == 0 ? "basic-" : "",
- e->name)
- test_fence_busy(i915, e->exec_id | e->flags, 0);
- igt_subtest_f("%swait-%s",
- e->exec_id == 0 ? "basic-" : "",
- e->name)
- test_fence_busy(i915, e->exec_id | e->flags, WAIT);
- igt_subtest_f("%sawait-%s",
- e->exec_id == 0 ? "basic-" : "",
- e->name)
- test_fence_await(i915, e->exec_id | e->flags, 0);
- igt_subtest_f("nb-await-%s", e->name)
- test_fence_await(i915, e->exec_id | e->flags, NONBLOCK);
- igt_subtest_f("busy-hang-%s", e->name)
- test_fence_busy(i915, e->exec_id | e->flags, HANG);
- igt_subtest_f("wait-hang-%s", e->name)
- test_fence_busy(i915, e->exec_id | e->flags, HANG | WAIT);
- igt_subtest_f("await-hang-%s", e->name)
- test_fence_await(i915, e->exec_id | e->flags, HANG);
- igt_subtest_f("nb-await-hang-%s", e->name)
- test_fence_await(i915, e->exec_id | e->flags, NONBLOCK | HANG);
+ igt_subtest_group {
+ igt_subtest_f("%sbusy-%s",
+ e->exec_id == 0 ? "basic-" : "",
+ e->name)
+ test_fence_busy(i915, e->exec_id | e->flags, 0);
+ igt_subtest_f("%swait-%s",
+ e->exec_id == 0 ? "basic-" : "",
+ e->name)
+ test_fence_busy(i915, e->exec_id | e->flags, WAIT);
+ igt_subtest_f("%sawait-%s",
+ e->exec_id == 0 ? "basic-" : "",
+ e->name)
+ test_fence_await(i915, e->exec_id | e->flags, 0);
+ igt_subtest_f("nb-await-%s", e->name)
+ test_fence_await(i915, e->exec_id | e->flags, NONBLOCK);
+ }
+
+ igt_subtest_group {
+ igt_hang_t hang;
+
+ igt_fixture {
+ hang = igt_allow_hang(i915, 0, 0);
+ }
+
+ igt_subtest_f("busy-hang-%s", e->name)
+ test_fence_busy(i915, e->exec_id | e->flags, HANG);
+ igt_subtest_f("wait-hang-%s", e->name)
+ test_fence_busy(i915, e->exec_id | e->flags, HANG | WAIT);
+ igt_subtest_f("await-hang-%s", e->name)
+ test_fence_await(i915, e->exec_id | e->flags, HANG);
+ igt_subtest_f("nb-await-hang-%s", e->name)
+ test_fence_await(i915, e->exec_id | e->flags, NONBLOCK | HANG);
+ igt_fixture {
+ igt_disallow_hang(i915, hang);
+ }
+ }
}
}