summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-05-30 20:16:24 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-05-30 20:16:24 +0200
commita35dcac0ff7310bc431c14419874e9653d0d2725 (patch)
treedc829a3feb1f0863c942333f96d68a47b49bccdb
parentb8e00110a0556fb7edde5dcb3ed0ff3d728c5552 (diff)
tests/gem_wait_rendering_timeout: check polling behaviour
... with timeout=0. We have special code in the kernel to optimize that one.
-rw-r--r--tests/gem_wait_render_timeout.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/tests/gem_wait_render_timeout.c b/tests/gem_wait_render_timeout.c
index 0da5122e..e19b3c44 100644
--- a/tests/gem_wait_render_timeout.c
+++ b/tests/gem_wait_render_timeout.c
@@ -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);