From a35dcac0ff7310bc431c14419874e9653d0d2725 Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Wed, 30 May 2012 20:16:24 +0200 Subject: [PATCH] tests/gem_wait_rendering_timeout: check polling behaviour ... with timeout=0. We have special code in the kernel to optimize that one. --- tests/gem_wait_render_timeout.c | 13 +++++++++++-- 1 file 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);