Commit Graph

10 Commits

Author SHA1 Message Date
Yauheni Kaliuta 1f9c955dc0 selftests/bpf: Test new enum kflag and enum64 API functions
Bugzilla: http://bugzilla.redhat.com/2120968

commit 2b7301457ffe7be085744fa49f1244a71c1c6f1d
Author: Yonghong Song <yhs@fb.com>
Date:   Mon Jun 6 23:27:03 2022 -0700

    selftests/bpf: Test new enum kflag and enum64 API functions
    
    Add tests to use the new enum kflag and enum64 API functions
    in selftest btf_write.
    
    Acked-by: Andrii Nakryiko <andrii@kernel.org>
    Signed-off-by: Yonghong Song <yhs@fb.com>
    Link: https://lore.kernel.org/r/20220607062703.3724287-1-yhs@fb.com
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>

Signed-off-by: Yauheni Kaliuta <ykaliuta@redhat.com>
2022-11-30 12:47:12 +02:00
Artem Savkov 04136d1f37 selftests/bpf: Test libbpf API function btf__add_type_tag()
Bugzilla: https://bugzilla.redhat.com/2069046

Upstream Status: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

commit 0dc85872203bf7b15c56c7eb228b8f3fabb17ac2
Author: Yonghong Song <yhs@fb.com>
Date:   Thu Nov 11 17:26:25 2021 -0800

    selftests/bpf: Test libbpf API function btf__add_type_tag()

    Add unit tests for btf__add_type_tag().

    Signed-off-by: Yonghong Song <yhs@fb.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20211112012625.1505748-1-yhs@fb.com

Signed-off-by: Artem Savkov <asavkov@redhat.com>
2022-08-24 12:53:36 +02:00
Artem Savkov 4528dd7007 selftests/bpf: Update btf_dump__new() uses to v1.0+ variant
Bugzilla: https://bugzilla.redhat.com/2069046

Upstream Status: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

commit 60ba87bb6bafaaa6e8ef9a73834cf701194d1923
Author: Andrii Nakryiko <andrii@kernel.org>
Date:   Wed Nov 10 21:36:22 2021 -0800

    selftests/bpf: Update btf_dump__new() uses to v1.0+ variant

    Update to-be-deprecated forms of btf_dump__new().

    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20211111053624.190580-8-andrii@kernel.org

Signed-off-by: Artem Savkov <asavkov@redhat.com>
2022-08-24 12:53:35 +02:00
Artem Savkov f0280e2ad8 selftests/bpf: Fix memory leaks in btf_type_c_dump() helper
Bugzilla: https://bugzilla.redhat.com/2069046

Upstream Status: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

commit 8ba285874913da21ca39a46376e9cc5ce0f45f94
Author: Andrii Nakryiko <andrii@kernel.org>
Date:   Sun Nov 7 08:55:15 2021 -0800

    selftests/bpf: Fix memory leaks in btf_type_c_dump() helper

    Free up memory and resources used by temporary allocated memstream and
    btf_dump instance.

    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Reviewed-by: Hengqi Chen <hengqi.chen@gmail.com>
    Link: https://lore.kernel.org/bpf/20211107165521.9240-4-andrii@kernel.org

Signed-off-by: Artem Savkov <asavkov@redhat.com>
2022-08-24 12:53:33 +02:00
Yauheni Kaliuta 0946d363ca selftests/bpf: Switch to new btf__type_cnt/btf__raw_data APIs
Bugzilla: http://bugzilla.redhat.com/2069045

commit 487ef148cf17730442444c07a4c56f16578ec73e
Author: Hengqi Chen <hengqi.chen@gmail.com>
Date:   Fri Oct 22 21:06:23 2021 +0800

    selftests/bpf: Switch to new btf__type_cnt/btf__raw_data APIs
    
    Replace the calls to btf__get_nr_types/btf__get_raw_data in
    selftests with new APIs btf__type_cnt/btf__raw_data. The old
    APIs will be deprecated in libbpf v0.7+.
    
    Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20211022130623.1548429-6-hengqi.chen@gmail.com

Signed-off-by: Yauheni Kaliuta <ykaliuta@redhat.com>
2022-06-03 17:23:45 +03:00
Yauheni Kaliuta fdbdd94ffe bpf: Rename BTF_KIND_TAG to BTF_KIND_DECL_TAG
Bugzilla: http://bugzilla.redhat.com/2069045

commit 223f903e9c832699f4e5f422281a60756c1c6cfe
Author: Yonghong Song <yhs@fb.com>
Date:   Tue Oct 12 09:48:38 2021 -0700

    bpf: Rename BTF_KIND_TAG to BTF_KIND_DECL_TAG
    
    Patch set [1] introduced BTF_KIND_TAG to allow tagging
    declarations for struct/union, struct/union field, var, func
    and func arguments and these tags will be encoded into
    dwarf. They are also encoded to btf by llvm for the bpf target.
    
    After BTF_KIND_TAG is introduced, we intended to use it
    for kernel __user attributes. But kernel __user is actually
    a type attribute. Upstream and internal discussion showed
    it is not a good idea to mix declaration attribute and
    type attribute. So we proposed to introduce btf_type_tag
    as a type attribute and existing btf_tag renamed to
    btf_decl_tag ([2]).
    
    This patch renamed BTF_KIND_TAG to BTF_KIND_DECL_TAG and some
    other declarations with *_tag to *_decl_tag to make it clear
    the tag is for declaration. In the future, BTF_KIND_TYPE_TAG
    might be introduced per [3].
    
     [1] https://lore.kernel.org/bpf/20210914223004.244411-1-yhs@fb.com/
     [2] https://reviews.llvm.org/D111588
     [3] https://reviews.llvm.org/D111199
    
    Fixes: b5ea834dde6b ("bpf: Support for new btf kind BTF_KIND_TAG")
    Fixes: 5b84bd10363e ("libbpf: Add support for BTF_KIND_TAG")
    Fixes: 5c07f2fec003 ("bpftool: Add support for BTF_KIND_TAG")
    Signed-off-by: Yonghong Song <yhs@fb.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20211012164838.3345699-1-yhs@fb.com

Signed-off-by: Yauheni Kaliuta <ykaliuta@redhat.com>
2022-06-03 17:23:42 +03:00
Yauheni Kaliuta d9dca2f227 selftests/bpf: Test libbpf API function btf__add_tag()
Bugzilla: http://bugzilla.redhat.com/2069045

commit 71d29c2d47d112404fe23e31cf33f7cccde75a8c
Author: Yonghong Song <yhs@fb.com>
Date:   Tue Sep 14 15:30:36 2021 -0700

    selftests/bpf: Test libbpf API function btf__add_tag()
    
    Add btf_write tests with btf__add_tag() function.
    
    Signed-off-by: Yonghong Song <yhs@fb.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20210914223036.247560-1-yhs@fb.com

Signed-off-by: Yauheni Kaliuta <ykaliuta@redhat.com>
2022-06-03 17:16:12 +03:00
Ilya Leoshkevich 7e72aad3a1 selftest/bpf: Add BTF_KIND_FLOAT tests
Test the good variants as well as the potential malformed ones.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Yonghong Song <yhs@fb.com>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210226202256.116518-8-iii@linux.ibm.com
2021-03-04 17:58:16 -08:00
Andrii Nakryiko 232338fa2f selftests/bpf: Add split BTF dedup selftests
Add selftests validating BTF deduplication for split BTF case. Add a helper
macro that allows to validate entire BTF with raw BTF dump, not just
type-by-type. This saves tons of code and complexity.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Song Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/20201105043402.2530976-11-andrii@kernel.org
2020-11-05 18:37:31 -08:00
Andrii Nakryiko 1306c980cf selftests/bpf: Add checking of raw type dump in BTF writer APIs selftests
Add re-usable btf_helpers.{c,h} to provide BTF-related testing routines. Start
with adding a raw BTF dumping helpers.

Raw BTF dump is the most succinct and at the same time a very human-friendly
way to validate exact contents of BTF types. Cross-validate raw BTF dump and
writable BTF in a single selftest. Raw type dump checks also serve as a good
self-documentation.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Song Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/20201105043402.2530976-7-andrii@kernel.org
2020-11-05 18:37:30 -08:00