Re: [PATCH] libarena: use ARRAY_SIZE macro in test_rbtree.bpf.c

From: Emil Tsalapatis

Date: Fri Jul 17 2026 - 17:30:06 EST


On Fri Jul 17, 2026 at 3:32 AM EDT, longlong yan wrote:
> The ARRAY_SIZE macro is more compact and more formal in linux source.
>
> Fixes: 6c3e8a4d4765 ("selftests/bpf: libarena: Add rbtree data structure")
> Signed-off-by: longlong yan <yanlonglong@xxxxxxxxxx>

NACK, please see the exact same comment I made on the other thread
that made the same change for the ASAN buddy selftests.

pw-bot: cr

> ---
> .../bpf/libarena/selftests/test_rbtree.bpf.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/libarena/selftests/test_rbtree.bpf.c b/tools/testing/selftests/bpf/libarena/selftests/test_rbtree.bpf.c
> index 856c484a009a..2b4f519d6c4b 100644
> --- a/tools/testing/selftests/bpf/libarena/selftests/test_rbtree.bpf.c
> +++ b/tools/testing/selftests/bpf/libarena/selftests/test_rbtree.bpf.c
> @@ -4,6 +4,9 @@
>
> #include <libarena/asan.h>
> #include <libarena/rbtree.h>
> +#ifndef ARRAY_SIZE
> +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
> +#endif
>
> typedef struct node_ctx __arena *node_ctx;
>
> @@ -275,7 +278,7 @@ clean_up_noalloc_tree(struct rbtree __arena *rbtree)
>
> int insert_many(enum rbtree_alloc alloc, enum rbtree_insert_mode insert)
> {
> - const size_t numkeys = sizeof(keys) / sizeof(keys[0]);
> + const size_t numkeys = ARRAY_SIZE(keys);
> node_ctx nodec;
> u64 key, value;
> int ret;
> @@ -373,7 +376,7 @@ __weak int test_rbtree_remove_one(void)
>
> static __always_inline int remove_many_verify_all_present(struct rbtree __arena *rbtree)
> {
> - const size_t numkeys = sizeof(morekeys) / sizeof(morekeys[0]);
> + const size_t numkeys = ARRAY_SIZE(morekeys);
> u64 value;
> int ret;
> int i;
> @@ -394,7 +397,7 @@ static __always_inline int remove_many_verify_all_present(struct rbtree __arena
>
> static __always_inline int remove_many_verify_remaining(struct rbtree __arena *rbtree)
> {
> - const size_t numkeys = sizeof(morekeys) / sizeof(morekeys[0]);
> + const size_t numkeys = ARRAY_SIZE(morekeys);
> u64 value;
> int ret;
> int i;
> @@ -434,7 +437,7 @@ static __always_inline int remove_many_verify_remaining(struct rbtree __arena *r
>
> static __noinline int remove_many_alloc(struct rbtree __arena *rbtree)
> {
> - const size_t numkeys = sizeof(morekeys) / sizeof(morekeys[0]);
> + const size_t numkeys = ARRAY_SIZE(morekeys);
> u64 value;
> int ret;
> int i;
> @@ -482,7 +485,7 @@ static __noinline int remove_many_alloc(struct rbtree __arena *rbtree)
>
> static __noinline int remove_many_noalloc(struct rbtree __arena *rbtree)
> {
> - const size_t numkeys = sizeof(morekeys) / sizeof(morekeys[0]);
> + const size_t numkeys = ARRAY_SIZE(morekeys);
> node_ctx first = NULL, last = NULL;
> u64 value;
> int ret;