[Intel-gfx] [PATCH i-g-t] lib: Add 64-bit version of igt_assert_cmp
Daniel Vetter
daniel at ffwll.ch
Tue Jun 30 04:48:49 PDT 2015
On Tue, Jun 30, 2015 at 12:31:46PM +0100, Michel Thierry wrote:
> igt_assert_cmp64 and its derivatives:
> - igt_assert_eq64
> - igt_assert_neq64
> - igt_assert_lte64
> - igt_assert_lt64
>
> Signed-off-by: Michel Thierry <michel.thierry at intel.com>
Care to update the lib/igt.coccie script and run in and add those changes
in a 2nd patch? Always good to keep the refactoring tools updated too.
-Daniel
> ---
> lib/igt_core.h | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
> 1 file changed, 63 insertions(+), 6 deletions(-)
>
> diff --git a/lib/igt_core.h b/lib/igt_core.h
> index 2b2b6e9..dd39521 100644
> --- a/lib/igt_core.h
> +++ b/lib/igt_core.h
> @@ -333,6 +333,7 @@ void igt_exit(void) __attribute__((noreturn));
> * Fails (sub-)test if the condition is not met
> *
> * Should be used everywhere where a test compares two integer values.
> + * For 64-bit values use igt_assert_cmp64().
> *
> * Like igt_assert(), but displays the values being compared on failure instead
> * of simply printing the stringified expression.
> @@ -365,6 +366,24 @@ void igt_exit(void) __attribute__((noreturn));
> } while (0)
>
> /**
> + * igt_assert_cmp64:
> + * @n1: first value
> + * @cmp: compare operator
> + * @ncmp: negated version of @cmp
> + * @n2: second value
> + *
> + * Like igt_assert_cmpint(), but for long longs;
> + */
> +#define igt_assert_cmp64(n1, cmp, ncmp, n2) \
> + do { \
> + long long __n1 = (n1), __n2 = (n2); \
> + if (__n1 cmp __n2) ; else \
> + __igt_fail_assert(IGT_LOG_DOMAIN, __FILE__, __LINE__, __func__, \
> + #n1 " " #cmp " " #n2, \
> + "error: %#llx " #ncmp " %#llx\n", __n1, __n2); \
> + } while (0)
> +
> +/**
> * igt_assert_cmpdouble:
> * @n1: first value
> * @cmp: compare operator
> @@ -387,8 +406,8 @@ void igt_exit(void) __attribute__((noreturn));
> * @n1: first integer
> * @n2: second integer
> *
> - * Fails (sub-)test if the two integers are not equal. Beware that for now this
> - * only works on integers.
> + * Fails (sub-)test if the two integers are not equal. Beware that this only
> + * works on integers. For 64-bit values, use igt_assert_eq64().
> *
> * Like igt_assert(), but displays the values being compared on failure instead
> * of simply printing the stringified expression.
> @@ -405,6 +424,15 @@ void igt_exit(void) __attribute__((noreturn));
> #define igt_assert_eq_u32(n1, n2) igt_assert_cmpuint(n1, ==, !=, n2)
>
> /**
> + * igt_assert_eq64:
> + * @n1: first value
> + * @n2: second value
> + *
> + * Like igt_assert_eq(), but for long long.
> + */
> +#define igt_assert_eq64(n1, n2) igt_assert_cmp64(n1, ==, !=, n2)
> +
> +/**
> * igt_assert_eq_double:
> * @n1: first double
> * @n2: second double
> @@ -418,8 +446,8 @@ void igt_exit(void) __attribute__((noreturn));
> * @n1: first integer
> * @n2: second integer
> *
> - * Fails (sub-)test if the two integers are equal. Beware that for now this
> - * only works on integers.
> + * Fails (sub-)test if the two integers are equal. Beware that this only works
> + * on integers. For 64-bit values, use igt_assert_neq64().
> *
> * Like igt_assert(), but displays the values being compared on failure instead
> * of simply printing the stringified expression.
> @@ -427,12 +455,22 @@ void igt_exit(void) __attribute__((noreturn));
> #define igt_assert_neq(n1, n2) igt_assert_cmpint(n1, !=, ==, n2)
>
> /**
> + * igt_assert_neq64:
> + * @n1: first value
> + * @n2: second value
> + *
> + * Like igt_assert_neq(), but for long long.
> + */
> +#define igt_assert_neq64(n1, n2) igt_assert_cmp64(n1, !=, ==, n2)
> +
> +/**
> * igt_assert_lte:
> * @n1: first integer
> * @n2: second integer
> *
> * Fails (sub-)test if the second integers is greater than the first.
> - * Beware that for now this only works on integers.
> + * Beware that this only works on integers, for 64-bit values, use
> + * igt_assert_lte64().
> *
> * Like igt_assert(), but displays the values being compared on failure instead
> * of simply printing the stringified expression.
> @@ -440,12 +478,22 @@ void igt_exit(void) __attribute__((noreturn));
> #define igt_assert_lte(n1, n2) igt_assert_cmpint(n1, <=, >, n2)
>
> /**
> + * igt_assert_lte64:
> + * @n1: first value
> + * @n2: second value
> + *
> + * Like igt_assert_lte(), but for long long.
> + */
> +#define igt_assert_lte64(n1, n2) igt_assert_cmp64(n1, <=, >, n2)
> +
> +/**
> * igt_assert_lt:
> * @n1: first integer
> * @n2: second integer
> *
> * Fails (sub-)test if the second integers is strictly smaller than the first.
> - * Beware that for now this only works on integers.
> + * Beware that this only works on integers. For 64-bit values, use
> + * igt_assert_lt64().
> *
> * Like igt_assert(), but displays the values being compared on failure instead
> * of simply printing the stringified expression.
> @@ -453,6 +501,15 @@ void igt_exit(void) __attribute__((noreturn));
> #define igt_assert_lt(n1, n2) igt_assert_cmpint(n1, <, >=, n2)
>
> /**
> + * igt_assert_lt64:
> + * @n1: first value
> + * @n2: second value
> + *
> + * Like igt_assert_lt(), but for long long.
> + */
> +#define igt_assert_lt64(n1, n2) igt_assert_cmp64(n1, <, >=, n2)
> +
> +/**
> * igt_require:
> * @expr: condition to test
> *
> --
> 2.4.5
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list