[Intel-gfx] [PATCH igt v2 4/5] igt/gem_workarounds: Reduce manual list to combinatorial loops
Chris Wilson
chris at chris-wilson.co.uk
Wed Oct 4 14:25:13 UTC 2017
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala at linux.intel.com>
---
tests/gem_workarounds.c | 50 ++++++++++++++++++++++++-------------------------
1 file changed, 24 insertions(+), 26 deletions(-)
diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c
index 3f0f7515..4263f1df 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", FDS },
+ { }
+ }, *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, FDS);
-
- 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, FDS);
-
- 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, FDS);
+ 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);
+ }
+ }
}
--
2.14.2
More information about the Intel-gfx
mailing list