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@xxxxxxxxx> > --- > 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) A new igt_assert_cmp_t? #define igt_assert_cmp_t(T, n1, cmp, ncmp, n2) do {\ T __n1 = (n1), __n2 = (n2); \ if (!(__n1 cmp __n2)) \ __igt_fail_assert(IGT_LOG_DOMAIN, __FILE__, __LINE__, __func__, \ #n1 " " #cmp " " #n2, \ "error: %#llx " #ncmp " %#llx\n", __n1, __n2); \ } while (0) #define igt_assert_cmpint(n1, cmp, ncmp, n2) \ igt_assert_cmp_t(int, n1, cmp, ncmp, n2) #define igt_assert_cmp64(n1, cmp, ncmp, n2) \ igt_assert_cmp_t(long long, n1, cmp, ncmp, n2) That at least hides the ugliest of macros and stops it reproducing at an alarming rate. Whether it is worth creating igt_assert_eq_t and friends just to avoid duplicating the (cmp, ncmp) is debatable. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx