[Intel-gfx] [PATCH] drmtest: don't discard return value in do_ioctl()
Chris Wilson
chris at chris-wilson.co.uk
Thu May 5 15:59:44 UTC 2016
On Thu, May 05, 2016 at 04:06:02PM +0100, Robert Bragg wrote:
> 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); \
And now we have the unhelpful error message !(_ret >= 0)
For the single user, just don't use do_ioctl.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list