[Intel-gfx] [PATCH] drmtest: don't discard return value in do_ioctl()
Robert Bragg
robert at sixbynine.org
Thu May 5 15:06:02 UTC 2016
Fixed a rebase mistake where I dropped the use of the igt_ioctl wrapper in
do_ioctl().
I'm not entirely sure a.t.m whether the assertion change from ret == 0 to
ret >= 0 will break anything, though comparing run-tests.sh -s -t basic
before/after didn't seem to highlight a problem for me.
--- >8 ---
In preparation for testing DRM_IOCTL_I915_PERF_OPEN which returns a file
descriptor this allows us to get the return value of ioctl called by the
do_ioctl() utility.
Signed-off-by: Robert Bragg <robert at sixbynine.org>
---
lib/drmtest.h | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/lib/drmtest.h b/lib/drmtest.h
index c391464..b917ecb 100644
--- a/lib/drmtest.h
+++ b/lib/drmtest.h
@@ -104,11 +104,16 @@ bool is_i915_device(int fd);
*
* This macro wraps drmIoctl() and uses igt_assert to check that it has been
* successfully executed.
+ *
+ * It's implemented using a gcc statement expression to still be able to
+ * assign the ioctl's return value after the assertion too.
*/
-#define do_ioctl(fd, ioc, ioc_data) do { \
- igt_assert_eq(igt_ioctl((fd), (ioc), (ioc_data)), 0); \
+#define do_ioctl(fd, ioc, ioc_data) ({ \
+ int _ret = igt_ioctl((fd), (ioc), (ioc_data)); \
+ igt_assert(_ret >= 0); \
errno = 0; \
-} while (0)
+ _ret; \
+})
/**
* do_ioctl_err:
--
2.7.1
More information about the Intel-gfx
mailing list