On Mon, Jun 29, 2026 at 01:23:41PM +0100, Lorenzo Stoakes wrote: > Update the macros to output the compared values at hex for easier debugging > when test asserts fail. > > Also remove unused IS_SET() macro. > > Signed-off-by: Lorenzo Stoakes <[email protected]> > --- > tools/testing/vma/shared.h | 31 +++++++++++++++++++------------ > 1 file changed, 19 insertions(+), 12 deletions(-) > > diff --git a/tools/testing/vma/shared.h b/tools/testing/vma/shared.h > index ca4f1238f1c7..216be4cda369 100644 > --- a/tools/testing/vma/shared.h > +++ b/tools/testing/vma/shared.h > @@ -21,19 +21,28 @@ > } \ > } while (0) > > -#define ASSERT_TRUE(_expr) \ > - do { \ > - if (!(_expr)) { \ > - fprintf(stderr, \ > - "Assert FAILED at %s:%d:%s(): %s is FALSE.\n", \ > - __FILE__, __LINE__, __FUNCTION__, #_expr); \ > - return false; \ > - } \ > +#define __ASSERT_TRUE(_expr, _fmt, ...) > \ > + do { \ > + if (!(_expr)) { \ > + fprintf(stderr, \ > + "Assert FAILED at %s:%d:%s(): %s is FALSE" \ > + _fmt ".\n", \ > + __FILE__, __LINE__, __FUNCTION__, #_expr \ > + __VA_OPT__(,) __VA_ARGS__); \ > + return false; \ > + } \ > } while (0) > > +#define __TO_SCALAR(x) ((unsigned long long)(uintptr_t)(x))
There's a slight footgun here: this can truncate 64-bit types in 32-bit archs. Though it doesn't really matter in our case, I think. > + > +#define ASSERT_TRUE(_expr) __ASSERT_TRUE(_expr, "") > #define ASSERT_FALSE(_expr) ASSERT_TRUE(!(_expr)) > -#define ASSERT_EQ(_val1, _val2) ASSERT_TRUE((_val1) == (_val2)) > -#define ASSERT_NE(_val1, _val2) ASSERT_TRUE((_val1) != (_val2)) > +#define ASSERT_EQ(_val1, _val2) > \ > + __ASSERT_TRUE((_val1) == (_val2), " (0x%llx != 0x%llx)", \ > + __TO_SCALAR(_val1), __TO_SCALAR(_val2)) > +#define ASSERT_NE(_val1, _val2) \ > + __ASSERT_TRUE((_val1) != (_val2), " (0x%llx == 0x%llx)", \ > + __TO_SCALAR(_val1), __TO_SCALAR(_val2)) > > #define ASSERT_FLAGS_SAME_MASK(_flags, _flags_other) \ > ASSERT_TRUE(vma_flags_same_mask((_flags), (_flags_other))) > @@ -53,8 +62,6 @@ > #define ASSERT_FLAGS_NONEMPTY(_flags) \ > ASSERT_FALSE(vma_flags_empty(_flags)) > > -#define IS_SET(_val, _flags) ((_val & _flags) == _flags) > - > extern bool fail_prealloc; > > /* Override vma_iter_prealloc() so we can choose to fail it. */ > -- > 2.54.0 Acked-by: Pedro Falcato <[email protected]> -- Pedro
