tests/gem_wait_rendering_timeout: check polling behaviour
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 30 May 2012 18:16:24 +0000 (20:16 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 30 May 2012 18:16:24 +0000 (20:16 +0200)
... with timeout=0. We have special code in the kernel to optimize
that one.

tests/gem_wait_render_timeout.c

index 0da5122..e19b3c4 100644 (file)
@@ -180,15 +180,18 @@ int main(int argc, char **argv)
                exit(EXIT_FAILURE);
        }
        assert(gem_bo_busy(fd, dst2->handle) == false);
-
        assert(timeout != 0);
-
        if (timeout ==  (ENOUGH_WORK_IN_SECONDS * NSEC_PER_SEC))
                printf("Buffer was already done!\n");
        else {
                printf("Finished with %lu time remaining\n", timeout);
        }
 
+       /* check that polling with timeout=0 works. */
+       timeout = 0;
+       assert(gem_bo_wait_timeout(fd, dst2->handle, &timeout) == 0);
+       assert(timeout == 0);
+
        /* Now check that we correctly time out, twice the auto-tune load should
         * be good enough. */
        timeout = ENOUGH_WORK_IN_SECONDS * NSEC_PER_SEC;
@@ -202,6 +205,12 @@ int main(int argc, char **argv)
        assert(timeout == 0);
        assert(gem_bo_busy(fd, dst2->handle) == true);
 
+       /* check that polling with timeout=0 works. */
+       timeout = 0;
+       assert(gem_bo_wait_timeout(fd, dst2->handle, &timeout) == -ETIME);
+       assert(timeout == 0);
+
+
        if (do_signals)
                drmtest_stop_signal_helper();
        drm_intel_bo_unreference(dst2);