selftests/bpf: Test duplicate unique fields in nested structs

Add a raw BTF test with a spin lock directly in a struct and another in a
nested struct. The duplicate must now be rejected during BTF loading.

Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://patch.msgid.link/20260719153634.2908692-5-memxor@gmail.com
Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
This commit is contained in:
Kumar Kartikeya Dwivedi 2026-07-19 17:36:31 +02:00 committed by Eduard Zingerman
parent 61e655391c
commit 9f2afb635c

View File

@ -4250,6 +4250,33 @@ static struct btf_raw_test raw_tests[] = {
.max_entries = 1,
},
/*
* struct inner {
* struct bpf_spin_lock lock;
* };
*
* struct value {
* struct bpf_spin_lock lock;
* struct inner nested;
* };
*/
{
.descr = "struct test duplicate nested unique fields",
.raw_types = {
BTF_TYPE_INT_ENC(NAME_TBD, BTF_INT_SIGNED, 0, 32, 4), /* [1] */
BTF_STRUCT_ENC(NAME_TBD, 1, 4), /* [2] */
BTF_MEMBER_ENC(NAME_TBD, 1, 0),
BTF_STRUCT_ENC(NAME_TBD, 1, 4), /* [3] */
BTF_MEMBER_ENC(NAME_TBD, 2, 0),
BTF_STRUCT_ENC(NAME_TBD, 2, 8), /* [4] */
BTF_MEMBER_ENC(NAME_TBD, 2, 0),
BTF_MEMBER_ENC(NAME_TBD, 3, 32),
BTF_END_RAW,
},
BTF_STR_SEC("\0int\0bpf_spin_lock\0val\0inner\0lock\0value\0lock\0nested"),
.btf_load_err = true,
},
{
.descr = "struct test repeated fields count overflow",
.raw_types = {