diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-08-14 12:45:05 +0200 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-08-14 12:45:05 +0200 |
commit | c8a963a94c19b6d965454d09810e6d6c6b3db7f7 (patch) | |
tree | 00092581e7d3a2004154b2a19e6d73dabfe06fc4 | |
parent | 1532af19d9bf962412bb150393aa10d13fae91d6 (diff) |
tests: add igt_subtest_f for snprintf'ing testnamessnprintf
Useful when stitching together combinatorial testnames.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | lib/drmtest.h | 7 | ||||
-rw-r--r-- | tests/gem_partial_pwrite_pread.c | 11 | ||||
-rw-r--r-- | tests/gem_write_read_ring_switch.c | 12 |
3 files changed, 14 insertions, 16 deletions
diff --git a/lib/drmtest.h b/lib/drmtest.h index d9a11e18..fb447b89 100644 --- a/lib/drmtest.h +++ b/lib/drmtest.h @@ -100,6 +100,13 @@ void igt_progress(const char *header, uint64_t i, uint64_t total); jmp_buf igt_subtest_jmpbuf; void igt_subtest_init(int argc, char **argv); bool __igt_run_subtest(const char *subtest_name); +#define igt_subtest_f(format, args...) \ + for (char __tmpchar ## __LINE__ [256]; \ + snprintf(__tmpchar ## __LINE__, sizeof(__tmpchar ## __LINE__), \ + format, args), \ + __igt_run_subtest((__tmpchar ## __LINE__)) && \ + (setjmp(igt_subtest_jmpbuf) == 0); \ + igt_success()) #define igt_subtest(name) for (; __igt_run_subtest((name)) && \ (setjmp(igt_subtest_jmpbuf) == 0); \ igt_success()) diff --git a/tests/gem_partial_pwrite_pread.c b/tests/gem_partial_pwrite_pread.c index ce2f1c81..814c552b 100644 --- a/tests/gem_partial_pwrite_pread.c +++ b/tests/gem_partial_pwrite_pread.c @@ -254,21 +254,16 @@ static void test_partial_read_writes(void) static void do_tests(int cache_level, const char *suffix) { - char name[80]; - if (cache_level != -1) gem_set_caching(fd, scratch_bo->handle, cache_level); - snprintf(name, sizeof(name), "reads%s", suffix); - igt_subtest(name) + igt_subtest_f("reads%s", suffix) test_partial_reads(); - snprintf(name, sizeof(name), "writes%s", suffix); - igt_subtest(name) + igt_subtest_f("write%s", suffix) test_partial_writes(); - snprintf(name, sizeof(name), "writes-after-reads%s", suffix); - igt_subtest(name) + igt_subtest_f("writes-after-reads%s", suffix) test_partial_read_writes(); } diff --git a/tests/gem_write_read_ring_switch.c b/tests/gem_write_read_ring_switch.c index 21eef64a..76644ea2 100644 --- a/tests/gem_write_read_ring_switch.c +++ b/tests/gem_write_read_ring_switch.c @@ -56,7 +56,7 @@ int fd; */ #define COLOR 0xffffffff -static void run_test(int ring, const char *testname) +static void run_test(int ring) { uint32_t *ptr; int i; @@ -66,8 +66,6 @@ static void run_test(int ring, const char *testname) if (ring == I915_EXEC_RENDER) gem_require_ring(fd, I915_EXEC_BLT); - printf("running subtest %s\n", testname); - target_bo = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096); if (!target_bo) { fprintf(stderr, "failed to alloc target buffer\n"); @@ -194,15 +192,13 @@ int main(int argc, char **argv) for (i = 0; i < ARRAY_SIZE(tests); i++) { igt_subtest(tests[i].name) - run_test(tests[i].ring, tests[i].name); + run_test(tests[i].ring); } igt_fork_signal_helper(); for (i = 0; i < ARRAY_SIZE(tests); i++) { - char name[180]; - snprintf(name, sizeof(name), "%s-interruptible", tests[i].name); - igt_subtest(name) - run_test(tests[i].ring, name); + igt_subtest_f("%s-interruptible", tests[i].name); + run_test(tests[i].ring); } igt_stop_signal_helper(); |