tests/gem_cacheing: convert to subtest infrastructure
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 28 Nov 2012 10:41:33 +0000 (11:41 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 28 Nov 2012 10:57:58 +0000 (11:57 +0100)
tests/Makefile.am
tests/gem_cacheing.c

index c882766..78953bd 100644 (file)
@@ -14,6 +14,7 @@ endif
 
 TESTS_progs_M = \
        gem_basic \
+       gem_cacheing \
        flip_test \
        $(NULL)
 
@@ -21,7 +22,6 @@ TESTS_progs = \
        getversion \
        getclient \
        getstats \
-       gem_cacheing \
        gem_cpu_concurrent_blit \
        gem_cs_tlb \
        gem_gtt_concurrent_blit \
index ccc8ef1..93983a2 100644 (file)
@@ -110,6 +110,9 @@ int main(int argc, char **argv)
        int i, j;
        uint8_t *cpu_ptr;
        uint8_t *gtt_ptr;
+       bool skipped_all = true;
+
+       drmtest_subtest_init(argc, argv);
 
        srandom(0xdeadbeef);
 
@@ -129,9 +132,6 @@ int main(int argc, char **argv)
                flags = 0;
        }
 
-       if (flags == 0)
-               return 77;
-
        bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
        batch = intel_batchbuffer_alloc(bufmgr, devid);
 
@@ -144,8 +144,10 @@ int main(int argc, char **argv)
        drmtest_init_aperture_trashers(bufmgr);
        mappable_gtt_limit = gem_mappable_aperture_size();
 
-       if (flags & TEST_READ) {
+       if (drmtest_run_subtest("reads") && (flags & TEST_READ)) {
                printf("checking partial reads\n");
+               skipped_all = false;
+
                for (i = 0; i < ROUNDS; i++) {
                        uint8_t val0 = i;
                        int start, len;
@@ -170,8 +172,10 @@ int main(int argc, char **argv)
                }
        }
 
-       if (flags & TEST_WRITE) {
+       if (drmtest_run_subtest("writes") && (flags & TEST_WRITE)) {
                printf("checking partial writes\n");
+               skipped_all = false;
+
                for (i = 0; i < ROUNDS; i++) {
                        uint8_t val0 = i, val1;
                        int start, len;
@@ -218,8 +222,10 @@ int main(int argc, char **argv)
                }
        }
 
-       if ((flags & TEST_BOTH) == TEST_BOTH) {
+       if (drmtest_run_subtest("read-writes") && (flags & TEST_BOTH) == TEST_BOTH) {
                printf("checking partial writes after partial reads\n");
+               skipped_all = false;
+
                for (i = 0; i < ROUNDS; i++) {
                        uint8_t val0 = i, val1, val2;
                        int start, len;
@@ -292,5 +298,5 @@ int main(int argc, char **argv)
 
        close(fd);
 
-       return 0;
+       return skipped_all ? 77 : 0;
 }