summaryrefslogtreecommitdiff
path: root/lib/drmtest.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-04-25 07:40:34 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2014-04-25 07:45:56 +0100
commitb918a3ba15b510edfeb37a375ffacd5bdb5e1410 (patch)
tree8212d92bc231cf3ed11f4abf6c318f6836362be7 /lib/drmtest.h
parent5d7649690c80b531a4949e275926315a749455e3 (diff)
Reset errno to 0 after success
errno is only valid after a syscall wrapper (e.g. ioctl()) reports an error. However, we report the last errno value as a part of the igt_assert() output and so we display spurious values such as: Test requirement not met in function gem_require_ring, file ioctl_wrappers.c:802: Last errno: 11, Resource temporarily unavailable Test requirement: (!((((intel_get_drm_devid(fd)) == 0x0102 || ... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'lib/drmtest.h')
-rw-r--r--lib/drmtest.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/drmtest.h b/lib/drmtest.h
index 84f80dc6..40ac1461 100644
--- a/lib/drmtest.h
+++ b/lib/drmtest.h
@@ -32,6 +32,7 @@
#include <stdbool.h>
#include <stdint.h>
#include <sys/mman.h>
+#include <errno.h>
#include <xf86drm.h>
@@ -94,6 +95,9 @@ void gem_quiescent_gpu(int fd);
* This macro wraps drmIoctl() and uses igt_assert to check that it has been
* successfully executed.
*/
-#define do_ioctl(fd, ioc, ioc_data) igt_assert(drmIoctl((fd), (ioc), (ioc_data)) == 0)
+#define do_ioctl(fd, ioc, ioc_data) do { \
+ igt_assert(drmIoctl((fd), (ioc), (ioc_data)) == 0); \
+ errno = 0; \
+} while (0)
#endif /* DRMTEST_H */