diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-04-25 07:40:34 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-04-25 07:45:56 +0100 |
commit | b918a3ba15b510edfeb37a375ffacd5bdb5e1410 (patch) | |
tree | 8212d92bc231cf3ed11f4abf6c318f6836362be7 /lib/drmtest.h | |
parent | 5d7649690c80b531a4949e275926315a749455e3 (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.h | 6 |
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 */ |