From 02b1706e8b1ca93a53d4ef0f9c484a6f1a0d18f2 Mon Sep 17 00:00:00 2001 From: Arkadiusz Hiler Date: Thu, 4 Apr 2019 16:17:40 +0300 Subject: 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 Cc: Daniel Vetter Signed-off-by: Arkadiusz Hiler Reviewed-by: Petri Latvala --- lib/igt_kms.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'lib') 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); } -- cgit v1.2.3