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

Reply via email to