selftests/bpf: Add BTF_KIND_DECL_TAG typedef unit tests
authorYonghong Song <yhs@fb.com>
Thu, 21 Oct 2021 19:56:33 +0000 (12:56 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Sat, 23 Oct 2021 00:04:43 +0000 (17:04 -0700)
Test good and bad variants of typedef BTF_KIND_DECL_TAG encoding.

Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20211021195633.4019472-1-yhs@fb.com
tools/testing/selftests/bpf/prog_tests/btf.c

index 557f948..8257ee0 100644 (file)
@@ -3903,6 +3903,42 @@ static struct btf_raw_test raw_tests[] = {
        .btf_load_err = true,
        .err_str = "Invalid component_idx",
 },
+{
+       .descr = "decl_tag test #13, typedef, well-formed",
+       .raw_types = {
+               BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4),  /* [1] */
+               BTF_TYPEDEF_ENC(NAME_TBD, 1),                   /* [2] */
+               BTF_DECL_TAG_ENC(NAME_TBD, 2, -1),
+               BTF_END_RAW,
+       },
+       BTF_STR_SEC("\0t\0tag"),
+       .map_type = BPF_MAP_TYPE_ARRAY,
+       .map_name = "tag_type_check_btf",
+       .key_size = sizeof(int),
+       .value_size = 4,
+       .key_type_id = 1,
+       .value_type_id = 1,
+       .max_entries = 1,
+},
+{
+       .descr = "decl_tag test #14, typedef, invalid component_idx",
+       .raw_types = {
+               BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4),  /* [1] */
+               BTF_TYPEDEF_ENC(NAME_TBD, 1),                   /* [2] */
+               BTF_DECL_TAG_ENC(NAME_TBD, 2, 0),
+               BTF_END_RAW,
+       },
+       BTF_STR_SEC("\0local\0tag"),
+       .map_type = BPF_MAP_TYPE_ARRAY,
+       .map_name = "tag_type_check_btf",
+       .key_size = sizeof(int),
+       .value_size = 4,
+       .key_type_id = 1,
+       .value_type_id = 1,
+       .max_entries = 1,
+       .btf_load_err = true,
+       .err_str = "Invalid component_idx",
+},
 
 }; /* struct btf_raw_test raw_tests[] */