summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-09-29 10:00:19 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2017-10-05 13:06:16 +0100
commit0af43d5e5932aaa3b65df17de723d4770677144e (patch)
tree5e0599b491cccab9ae7ea5d2900b235d38ec5aa4
parentc5b4eaa82b2f4bdd37a1ebbff0236a157209f412 (diff)
igt/gem_workarounds: Reduce manual list to combinatorial loops
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
-rw-r--r--tests/gem_workarounds.c50
1 files changed, 24 insertions, 26 deletions
diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c
index 99ae1782..41b58d5b 100644
--- a/tests/gem_workarounds.c
+++ b/tests/gem_workarounds.c
@@ -219,6 +219,24 @@ static void check_workarounds(int fd, enum operation op, unsigned int flags)
igt_main
{
int device = -1;
+ const struct {
+ const char *name;
+ enum operation op;
+ } ops[] = {
+ { "basic-read", SIMPLE_READ },
+ { "reset", GPU_RESET },
+ { "suspend-resume", SUSPEND_RESUME },
+ { }
+ }, *op;
+ const struct {
+ const char *name;
+ unsigned int flags;
+ } modes[] = {
+ { "", 0 },
+ { "-context", CONTEXT },
+ { "-fd", FD },
+ { }
+ }, *m;
igt_fixture {
FILE *file;
@@ -258,30 +276,10 @@ igt_main
close(fd);
}
- igt_subtest("basic-read")
- check_workarounds(device, SIMPLE_READ, 0);
-
- igt_subtest("basic-read-context")
- check_workarounds(device, SIMPLE_READ, CONTEXT);
-
- igt_subtest("basic-read-fd")
- check_workarounds(device, SIMPLE_READ, FD);
-
- igt_subtest("reset")
- check_workarounds(device, GPU_RESET, 0);
-
- igt_subtest("reset-context")
- check_workarounds(device, GPU_RESET, CONTEXT);
-
- igt_subtest("reset-fd")
- check_workarounds(device, GPU_RESET, FD);
-
- igt_subtest("suspend-resume")
- check_workarounds(device, SUSPEND_RESUME, 0);
-
- igt_subtest("suspend-resume-context")
- check_workarounds(device, SUSPEND_RESUME, CONTEXT);
-
- igt_subtest("suspend-resume-fd")
- check_workarounds(device, SUSPEND_RESUME, FD);
+ for (op = ops; op->name; op++) {
+ for (m = modes; m->name; m++) {
+ igt_subtest_f("%s%s", op->name, m->name)
+ check_workarounds(device, op->op, m->flags);
+ }
+ }
}