Re: [PATCH bpf-next 01/10] selftests/bpf: add a macro to compare raw memory
From: Stanislav Fomichev
Date: Wed Nov 13 2024 - 12:58:09 EST
On 11/13, Alexis Lothoré (eBPF Foundation) wrote:
> We sometimes need to compare whole structures in an assert. It is
> possible to use the existing macros on each field, but when the whole
> structure has to be checked, it is more convenient to simply compare the
> whole structure memory
>
> Add a dedicated assert macro, ASSERT_MEMEQ, to allow bare memory
> comparision
>
> Signed-off-by: Alexis Lothoré (eBPF Foundation) <alexis.lothore@xxxxxxxxxxx>
> ---
> tools/testing/selftests/bpf/test_progs.h | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/tools/testing/selftests/bpf/test_progs.h b/tools/testing/selftests/bpf/test_progs.h
> index 74de33ae37e56c90646cd1e0bb58ed7e3f345ec0..bdde741543836991398daacfe5423e6af8ef9151 100644
> --- a/tools/testing/selftests/bpf/test_progs.h
> +++ b/tools/testing/selftests/bpf/test_progs.h
> @@ -186,6 +186,19 @@ void test__skip(void);
> void test__fail(void);
> int test__join_cgroup(const char *path);
[..]
> +#define DUMP_BUFFER(name, buf, len) \
> + ({ \
> + fprintf(stdout, "%s:\n", name); \
> + for (int i = 0; i < len; i++) { \
> + if (i && !(i % 16)) \
> + fprintf(stdout, "\n"); \
> + if (i && !(i % 8) && (i % 16)) \
> + fprintf(stdout, "\t"); \
> + fprintf(stdout, "%02X ", ((uint8_t *)(buf))[i]); \
> + } \
> + fprintf(stdout, "\n"); \
> + })
nit: should we rewrite this as a real function?
void hexdump(const char *prefix, void *buf, size_t len)
{
..
}