mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 18:46:53 +07:00
selftests/bpf: add btf_dedup test for VOID equivalence check
This patch adds specific test exposing bug in btf_dedup_is_equiv() when comparing candidate VOID type to a non-VOID canonical type. It's important for canonical type to be anonymous, otherwise name equality check will do the right thing and will exit early. Signed-off-by: Andrii Nakryiko <andriin@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
9ec71c1cdb
commit
eb76899ce7
@ -5776,6 +5776,53 @@ const struct btf_dedup_test dedup_tests[] = {
|
||||
.dedup_table_size = 1, /* force hash collisions */
|
||||
},
|
||||
},
|
||||
{
|
||||
.descr = "dedup: void equiv check",
|
||||
/*
|
||||
* // CU 1:
|
||||
* struct s {
|
||||
* struct {} *x;
|
||||
* };
|
||||
* // CU 2:
|
||||
* struct s {
|
||||
* int *x;
|
||||
* };
|
||||
*/
|
||||
.input = {
|
||||
.raw_types = {
|
||||
/* CU 1 */
|
||||
BTF_STRUCT_ENC(0, 0, 1), /* [1] struct {} */
|
||||
BTF_PTR_ENC(1), /* [2] ptr -> [1] */
|
||||
BTF_STRUCT_ENC(NAME_NTH(1), 1, 8), /* [3] struct s */
|
||||
BTF_MEMBER_ENC(NAME_NTH(2), 2, 0),
|
||||
/* CU 2 */
|
||||
BTF_PTR_ENC(0), /* [4] ptr -> void */
|
||||
BTF_STRUCT_ENC(NAME_NTH(1), 1, 8), /* [5] struct s */
|
||||
BTF_MEMBER_ENC(NAME_NTH(2), 4, 0),
|
||||
BTF_END_RAW,
|
||||
},
|
||||
BTF_STR_SEC("\0s\0x"),
|
||||
},
|
||||
.expect = {
|
||||
.raw_types = {
|
||||
/* CU 1 */
|
||||
BTF_STRUCT_ENC(0, 0, 1), /* [1] struct {} */
|
||||
BTF_PTR_ENC(1), /* [2] ptr -> [1] */
|
||||
BTF_STRUCT_ENC(NAME_NTH(1), 1, 8), /* [3] struct s */
|
||||
BTF_MEMBER_ENC(NAME_NTH(2), 2, 0),
|
||||
/* CU 2 */
|
||||
BTF_PTR_ENC(0), /* [4] ptr -> void */
|
||||
BTF_STRUCT_ENC(NAME_NTH(1), 1, 8), /* [5] struct s */
|
||||
BTF_MEMBER_ENC(NAME_NTH(2), 4, 0),
|
||||
BTF_END_RAW,
|
||||
},
|
||||
BTF_STR_SEC("\0s\0x"),
|
||||
},
|
||||
.opts = {
|
||||
.dont_resolve_fwds = false,
|
||||
.dedup_table_size = 1, /* force hash collisions */
|
||||
},
|
||||
},
|
||||
{
|
||||
.descr = "dedup: all possible kinds (no duplicates)",
|
||||
.input = {
|
||||
|
Loading…
Reference in New Issue
Block a user