diff options
author | Arkadiusz Hiler <arkadiusz.hiler@intel.com> | 2019-04-04 16:17:40 +0300 |
---|---|---|
committer | Arkadiusz Hiler <arkadiusz.hiler@intel.com> | 2019-04-05 10:26:26 +0300 |
commit | 02b1706e8b1ca93a53d4ef0f9c484a6f1a0d18f2 (patch) | |
tree | c52dc7f4086e7ba120f789415c82460b76fe7b17 | |
parent | 8770e24fe4008404da769c16b7edac6142225ad7 (diff) |
lib/igt_kms: Be more verbose about failure in kmstest_wait_for_pageflip
First, we set errno to 0 before doing select() to avoid random pollution
of the assert message with things like:
"Last errno: 25, Inappropriate ioctl for device"
Second, we log explicitly if we exceeded the timeout (ret == 0).
Third, if we fail the select() we log that with some explanation.
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-rw-r--r-- | lib/igt_kms.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/igt_kms.c b/lib/igt_kms.c index a975ff14..f8b0dab2 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -1504,9 +1504,17 @@ void kmstest_wait_for_pageflip(int fd) FD_ZERO(&fds); FD_SET(fd, &fds); do { + errno = 0; ret = select(fd + 1, &fds, NULL, NULL, &timeout); } while (ret < 0 && errno == EINTR); - igt_assert_eq(ret, 1); + + igt_fail_on_f(ret == 0, + "Exceeded timeout (50ms) while waiting for a pageflip\n"); + + igt_assert_f(ret == 1, + "Waiting for pageflip failed with %d from select(drmfd)\n", + ret); + igt_assert(drmHandleEvent(fd, &evctx) == 0); } |