lib: add igt_main macro
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 31 Oct 2013 15:23:26 +0000 (16:23 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 1 Nov 2013 20:10:59 +0000 (21:10 +0100)
In the past new testcases with subtest often forgot to add the call to
igt_exit at the end of their main() function. That is now caught with
a bit more obnoxious asserts, but it's still a nuissance.

This little igt_main macro takes care of that (and also of calling the
subtest machinery initialization code correctly).

If no one objects I'll roll this out for all the simple cases (i.e.
those tests that don't have additional argv parsing on top of the
subtest machinery).

v2: Roll it out across the board.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
40 files changed:
lib/drmtest.h
tests/debugfs_pipe_crc.c
tests/gem_basic.c
tests/gem_caching.c
tests/gem_close_race.c
tests/gem_concurrent_blit.c
tests/gem_cs_tlb.c
tests/gem_ctx_bad_exec.c
tests/gem_dummy_reloc_loop.c
tests/gem_evict_alignment.c
tests/gem_evict_everything.c
tests/gem_exec_bad_domains.c
tests/gem_exec_faulting_reloc.c
tests/gem_exec_nop.c
tests/gem_fence_thrash.c
tests/gem_fenced_exec_thrash.c
tests/gem_flink.c
tests/gem_flink_race.c
tests/gem_mmap.c
tests/gem_mmap_gtt.c
tests/gem_partial_pwrite_pread.c
tests/gem_persistent_relocs.c
tests/gem_pipe_control_store_loop.c
tests/gem_pread_after_blit.c
tests/gem_readwrite.c
tests/gem_reloc_overflow.c
tests/gem_reloc_vs_gpu.c
tests/gem_ringfill.c
tests/gem_set_tiling_vs_blt.c
tests/gem_storedw_batches_loop.c
tests/gem_suspend.c
tests/gem_tiled_partial_pwrite_pread.c
tests/gem_write_read_ring_switch.c
tests/kms_addfb.c
tests/kms_cursor_crc.c
tests/kms_render.c
tests/prime_nv_api.c
tests/prime_nv_pcopy.c
tests/prime_nv_test.c
tests/prime_self_import.c

index be0632f..a9fd0bc 100644 (file)
@@ -138,6 +138,16 @@ bool __igt_run_subtest(const char *subtest_name);
                                   (setjmp(igt_subtest_jmpbuf) == 0); \
                                   igt_success())
 const char *igt_subtest_name(void);
+#define igt_main \
+       static void igt_tokencat(__real_main, __LINE__)(void); \
+       int main(int argc, char **argv) { \
+               igt_subtest_init(argc, argv); \
+               igt_tokencat(__real_main, __LINE__)(); \
+               igt_exit(); \
+       } \
+       static void igt_tokencat(__real_main, __LINE__)(void) \
+
+
 /**
  * igt_skip - subtest aware test skipping
  *
index debc172..2545233 100644 (file)
@@ -206,12 +206,10 @@ static void test_read_crc(data_t *data, int pipe, unsigned flags)
 
 }
 
-int main(int argc, char **argv)
+igt_main
 {
        data_t data = {0, };
 
-       igt_subtest_init(argc, argv);
-
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -261,6 +259,4 @@ int main(int argc, char **argv)
                display_fini(&data);
                fclose(data.ctl);
        }
-
-       igt_exit();
 }
index 19065b1..5d8f840 100644 (file)
@@ -77,10 +77,8 @@ test_create_fd_close(int fd)
 
 int fd;
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_fixture
                fd = drm_open_any();
 
@@ -90,6 +88,4 @@ int main(int argc, char **argv)
                test_create_close(fd);
        igt_subtest("create-fd-close")
                test_create_fd_close(fd);
-
-       igt_exit();
 }
index 6c1d941..10ac7a4 100644 (file)
@@ -103,14 +103,13 @@ blt_bo_fill(drm_intel_bo *tmp_bo, drm_intel_bo *bo, uint8_t val)
 #define TEST_READ 0x1
 #define TEST_WRITE 0x2
 #define TEST_BOTH (TEST_READ | TEST_WRITE)
-int main(int argc, char **argv)
+igt_main
 {
        unsigned flags = TEST_BOTH;
        int i, j;
        uint8_t *cpu_ptr;
        uint8_t *gtt_ptr;
 
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -284,6 +283,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index db7cd1f..6064c02 100644 (file)
@@ -209,10 +209,9 @@ static void *thread_busy(void *_data)
        return 0;
 }
 
-int main(int argc, char *argv[])
+igt_main
 {
        igt_skip_on_simulation();
-       igt_subtest_init(argc, argv);
 
        sprintf(device, "/dev/dri/card%d", drm_get_card());
        {
@@ -263,6 +262,4 @@ int main(int argc, char *argv[])
                        close(data->fds[n]);
                free(data);
        }
-
-       igt_exit();
 }
index 0e20abf..fb56c25 100644 (file)
@@ -354,12 +354,10 @@ run_modes(struct access_mode *mode)
        run_basic_modes(mode, src, dst, dummy, "-forked", run_forked);
 }
 
-int
-main(int argc, char **argv)
+igt_main
 {
        int max, i;
 
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -372,6 +370,4 @@ main(int argc, char **argv)
 
        for (i = 0; i < ARRAY_SIZE(access_modes); i++)
                run_modes(&access_modes[i]);
-
-       igt_exit();
 }
index 490b6d3..6f1fd5b 100644 (file)
@@ -145,10 +145,9 @@ static void run_on_ring(int fd, unsigned ring_id, const char *ring_name)
 
 int fd;
 
-int main(int argc, char **argv)
+igt_main
 {
 
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -174,6 +173,4 @@ int main(int argc, char **argv)
 
        igt_fixture
                close(fd);
-
-       igt_exit();
 }
index c60e693..3f6f34d 100644 (file)
@@ -85,10 +85,9 @@ uint32_t batch[2] = {MI_BATCH_BUFFER_END};
 uint32_t ctx_id;
 int fd;
 
-int main(int argc, char *argv[])
+igt_main
 {
        igt_skip_on_simulation();
-       igt_subtest_init(argc, argv);
 
        igt_fixture {
                fd = drm_open_any_render();
@@ -110,6 +109,4 @@ int main(int argc, char *argv[])
        igt_subtest("vebox")
                igt_assert(exec(fd, handle, I915_EXEC_VEBOX, ctx_id) != 0);
 #endif
-
-       igt_exit();
 }
index 73eab89..955de96 100644 (file)
@@ -127,10 +127,8 @@ int fd;
 int devid;
 int num_rings;
 
-int main(int argc, char **argv)
+igt_main
 {
-
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -199,6 +197,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index 57eb586..50f241c 100644 (file)
@@ -177,12 +177,10 @@ static void major_evictions(int fd, int size, int count)
 
 int fd;
 
-int main(int argc, char **argv)
+igt_main
 {
        int size, count;
 
-       igt_subtest_init(argc, argv);
-
        igt_skip_on_simulation();
 
        igt_fixture
@@ -216,6 +214,4 @@ int main(int argc, char **argv)
 
        igt_fixture
                close(fd);
-
-       igt_exit();
 }
index ae856b0..dbf1582 100644 (file)
@@ -296,14 +296,12 @@ static void major_evictions(int fd, int size, int count)
        free(bo);
 }
 
-int main(int argc, char **argv)
+igt_main
 {
        int size, count, fd;
        size = count = 0;
        fd = -1;
 
-       igt_subtest_init(argc, argv);
-
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -359,6 +357,4 @@ int main(int argc, char **argv)
        igt_fixture {
                close(fd);
        }
-
-       igt_exit();
 }
index 51894f7..e0e13de 100644 (file)
@@ -150,10 +150,8 @@ static void multi_write_domain(int fd)
 int fd;
 drm_intel_bo *tmp;
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_fixture {
                fd = drm_open_any();
 
@@ -231,6 +229,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index ef801ed..b4518fd 100644 (file)
@@ -208,10 +208,8 @@ static void run(int object_size)
        close(fd);
 }
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_subtest("normal")
                run(OBJECT_SIZE);
        igt_subtest("no-prefault") {
@@ -219,6 +217,4 @@ int main(int argc, char **argv)
                run(OBJECT_SIZE);
                igt_enable_prefault();
        }
-
-       igt_exit();
 }
index 265220e..868f010 100644 (file)
@@ -109,10 +109,8 @@ uint32_t batch[2] = {MI_BATCH_BUFFER_END};
 uint32_t handle;
 int fd;
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_fixture {
                fd = drm_open_any();
 
@@ -137,6 +135,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index be196b0..bff73dd 100644 (file)
@@ -198,10 +198,8 @@ static int run_test(int threads_per_fence, void *f, int tiling,
        return 0;
 }
 
-int
-main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_subtest("bo-write-verify-none")
@@ -232,6 +230,4 @@ main(int argc, char **argv)
 
        igt_subtest("bo-copy")
                igt_assert(run_test(1, bo_copy, I915_TILING_X, 1) == 0);
-
-       igt_exit();
 }
index bca8f18..edab9f1 100644 (file)
@@ -218,11 +218,8 @@ static void run_test(int fd, int num_fences, int expected_errno,
 int fd;
 int num_fences;
 
-int
-main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -247,6 +244,4 @@ main(int argc, char **argv)
 
        igt_fixture
                close(fd);
-
-       igt_exit();
 }
index f822b9b..4b3b7c2 100644 (file)
@@ -151,10 +151,8 @@ test_flink_lifetime(int fd)
 
 int fd;
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_fixture
                fd = drm_open_any();
 
@@ -168,6 +166,4 @@ int main(int argc, char **argv)
                test_bad_open(fd);
        igt_subtest("flink-lifetime")
                test_flink_lifetime(fd);
-
-       igt_exit();
 }
index 2e97f76..b81007e 100644 (file)
@@ -190,17 +190,13 @@ static void test_flink_close(void)
        igt_assert(obj_count == 0);
 }
 
-int main(int argc, char **argv)
+igt_main
 {
        igt_skip_on_simulation();
 
-       igt_subtest_init(argc, argv);
-
        igt_subtest("flink_name")
                test_flink_name();
 
        igt_subtest("flink_close")
                test_flink_close();
-
-       igt_exit();
 }
index c812a5b..4c5be8f 100644 (file)
@@ -42,7 +42,7 @@
 int fd;
 int handle;
 
-int main(int argc, char **argv)
+igt_main
 {
        struct drm_i915_gem_mmap arg;
        uint8_t expected[OBJECT_SIZE];
@@ -50,8 +50,6 @@ int main(int argc, char **argv)
        uint8_t *addr;
        int ret;
 
-       igt_subtest_init(argc, argv);
-
        igt_fixture
                fd = drm_open_any();
 
@@ -96,6 +94,4 @@ int main(int argc, char **argv)
 
        igt_fixture
                close(fd);
-
-       igt_exit();
 }
index 79e34e2..34ca678 100644 (file)
@@ -191,13 +191,11 @@ run_without_prefault(int fd,
 
 int fd;
 
-int main(int argc, char **argv)
+igt_main
 {
        if (igt_run_in_simulation())
                OBJECT_SIZE = 1 * 1024 * 1024;
 
-       igt_subtest_init(argc, argv);
-
        igt_fixture
                fd = drm_open_any();
 
@@ -220,6 +218,4 @@ int main(int argc, char **argv)
 
        igt_fixture
                close(fd);
-
-       igt_exit();
 }
index af77243..d6d00dd 100644 (file)
@@ -253,11 +253,10 @@ static void do_tests(int cache_level, const char *suffix)
                test_partial_read_writes();
 }
 
-int main(int argc, char **argv)
+igt_main
 {
        srandom(0xdeadbeef);
 
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -289,6 +288,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index ffa4559..29b19ed 100644 (file)
@@ -328,9 +328,8 @@ static void do_forked_test(int fd, unsigned flags)
 int fd;
 
 #define MAX_BLT_SIZE 128
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        memset(blob, 'A', sizeof(blob));
@@ -371,6 +370,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index 5eae6ca..7a40091 100644 (file)
@@ -151,10 +151,8 @@ store_pipe_control_loop(bool preuse_buffer)
 
 int fd;
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_fixture {
                fd = drm_open_any();
                devid = intel_get_drm_devid(fd);
@@ -186,6 +184,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index d0f85fe..4faf104 100644 (file)
@@ -171,12 +171,10 @@ static void do_test(int fd, int cache_level,
 drm_intel_bo *src[2], *dst[2];
 int fd;
 
-int
-main(int argc, char **argv)
+igt_main
 {
        const uint32_t start[2] = {0, 1024 * 1024 / 4};
 
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -240,6 +238,4 @@ main(int argc, char **argv)
        }
 
        close(fd);
-
-       igt_exit();
 }
index adf4af2..149254a 100644 (file)
@@ -76,14 +76,13 @@ do_write(int fd, int handle, void *buf, int offset, int size)
 int fd;
 uint32_t handle;
 
-int main(int argc, char **argv)
+igt_main
 {
        uint8_t expected[OBJECT_SIZE];
        uint8_t buf[OBJECT_SIZE];
        int ret;
 
        igt_skip_on_simulation();
-       igt_subtest_init(argc, argv);
 
        igt_fixture {
                fd = drm_open_any();
@@ -145,6 +144,4 @@ int main(int argc, char **argv)
 
        igt_fixture
                close(fd);
-
-       igt_exit();
 }
index ccc0e75..f7ba1d7 100644 (file)
@@ -250,10 +250,8 @@ static void buffer_count_tests(void)
        }
 }
 
-int main(int argc, char *argv[])
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_fixture {
                int ring;
                uint32_t batch_data [2] = { MI_NOOP, MI_BATCH_BUFFER_END };
@@ -306,6 +304,4 @@ int main(int argc, char *argv[])
                gem_close(fd, batch_handle);
                close(fd);
        }
-
-       igt_exit();
 }
index 14d1104..ae7b446 100644 (file)
@@ -323,9 +323,8 @@ static void do_forked_test(int fd, unsigned flags)
 int fd;
 
 #define MAX_BLT_SIZE 128
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        memset(blob, 'A', sizeof(blob));
@@ -372,6 +371,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index 1290645..3130cde 100644 (file)
@@ -200,10 +200,8 @@ struct intel_batchbuffer *batch;
 render_copyfunc_t copy;
 int fd;
 
-int main(int argc, char **argv)
+igt_main
 {
-
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -234,6 +232,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index 9ecd2b5..2c074b7 100644 (file)
@@ -229,12 +229,11 @@ static void do_test(uint32_t tiling, unsigned stride,
 
 int fd;
 
-int main(int argc, char **argv)
+igt_main
 {
        int i;
        uint32_t tiling, tiling_after;
 
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -275,6 +274,4 @@ int main(int argc, char **argv)
                igt_assert(tiling == I915_TILING_X);
                igt_assert(tiling_after == I915_TILING_X);
        }
-
-       igt_exit();
 }
index eabc6f2..1b475f0 100644 (file)
@@ -122,9 +122,8 @@ cont:
 int fd;
 int devid;
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -166,6 +165,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index dfdb566..e526e2a 100644 (file)
@@ -147,10 +147,8 @@ test_sysfs_reader(void)
 
 int fd;
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_skip_on_simulation();
 
        igt_fixture
@@ -170,6 +168,4 @@ int main(int argc, char **argv)
 
        igt_fixture
                close(fd);
-
-       igt_exit();
 }
index d535e38..2e24105 100644 (file)
@@ -255,11 +255,10 @@ static void test_partial_read_writes(void)
        }
 }
 
-int main(int argc, char **argv)
+igt_main
 {
        uint32_t tiling_mode = I915_TILING_X;
 
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        srandom(0xdeadbeef);
@@ -303,6 +302,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index d04043b..9902531 100644 (file)
@@ -143,7 +143,7 @@ static void run_test(int ring)
        drm_intel_bo_unreference(target_bo);
 }
 
-int main(int argc, char **argv)
+igt_main
 {
        static const struct {
                const char *name;
@@ -155,7 +155,6 @@ int main(int argc, char **argv)
        };
        int i;
 
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -196,6 +195,4 @@ int main(int argc, char **argv)
 
                close(fd);
        }
-
-       igt_exit();
 }
index 11b0a86..3f727cc 100644 (file)
@@ -215,10 +215,8 @@ static void size_tests(int fd)
 
 int fd;
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_fixture
                fd = drm_open_any();
 
@@ -228,6 +226,4 @@ int main(int argc, char **argv)
 
        igt_fixture
                close(fd);
-
-       igt_exit();
 }
index 359825c..2c9ca35 100644 (file)
@@ -321,11 +321,10 @@ static void create_cursor_fb(data_t *data,
        igt_assert(cairo_status(cr) == 0);
 }
 
-int main(int argc, char **argv)
+igt_main
 {
        data_t data = {};
 
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -377,6 +376,4 @@ int main(int argc, char **argv)
                display_fini(&data);
                fclose(data.ctl);
        }
-
-       igt_exit();
 }
index 26ca8dc..dc00932 100644 (file)
@@ -221,7 +221,7 @@ static int run_test(const char *test_name, enum test_flags flags)
        return 1;
 }
 
-int main(int argc, char **argv)
+igt_main
 {
        struct {
                enum test_flags flags;
@@ -232,7 +232,6 @@ int main(int argc, char **argv)
        };
        int i;
 
-       igt_subtest_init(argc, argv);
        igt_skip_on_simulation();
 
        igt_fixture {
@@ -252,6 +251,4 @@ int main(int argc, char **argv)
 
        igt_fixture
                close(drm_fd);
-
-       igt_exit();
 }
index 8bb5091..e2448be 100644 (file)
@@ -510,10 +510,8 @@ static int test_nv_self_import_to_different_fd(void)
        return 0;
 }
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_fixture {
                igt_assert(find_and_open_devices() == 0);
 
@@ -574,6 +572,4 @@ int main(int argc, char **argv)
                close(intel_fd);
                close(nouveau_fd);
        }
-
-       igt_exit();
 }
index c6347dd..12578f7 100644 (file)
@@ -1263,10 +1263,8 @@ out:
        return ret;
 }
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_fixture {
                igt_assert(find_and_open_devices() == 0);
 
@@ -1318,6 +1316,4 @@ int main(int argc, char **argv)
                close(intel_fd);
                close(nouveau_fd);
        }
-
-       igt_exit();
 }
index 7b40652..18a13a0 100644 (file)
@@ -352,10 +352,8 @@ static void test_i915_blt_fill_nv_read(void)
 
 /* test 9 nouveau copy engine?? */
 
-int main(int argc, char **argv)
+igt_main
 {
-       igt_subtest_init(argc, argv);
-
        igt_fixture {
                igt_assert(find_and_open_devices() == 0);
 
@@ -399,6 +397,4 @@ int main(int argc, char **argv)
                close(intel_fd);
                close(nouveau_fd);
        }
-
-       igt_exit();
 }
index 481a809..2edc1f8 100644 (file)
@@ -420,7 +420,7 @@ static void test_llseek_bad(void)
        close(fd);
 }
 
-int main(int argc, char **argv)
+igt_main
 {
        struct {
                const char *name;
@@ -437,12 +437,8 @@ int main(int argc, char **argv)
        };
        int i;
 
-       igt_subtest_init(argc, argv);
-
        for (i = 0; i < ARRAY_SIZE(tests); i++) {
                igt_subtest(tests[i].name)
                        tests[i].fn();
        }
-
-       igt_exit();
 }