]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
selftests/bpf: Add cookies check for raw_tp fill_link_info test
authorTao Chen <chen.dylane@linux.dev>
Tue, 3 Jun 2025 15:43:08 +0000 (23:43 +0800)
committerAndrii Nakryiko <andrii@kernel.org>
Thu, 5 Jun 2025 18:44:52 +0000 (11:44 -0700)
Adding tests for getting cookie with fill_link_info for raw_tp.

Signed-off-by: Tao Chen <chen.dylane@linux.dev>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/bpf/20250603154309.3063644-2-chen.dylane@linux.dev
tools/testing/selftests/bpf/prog_tests/bpf_cookie.c

index 6befa870434bcbe423df957042f912f5a02a0aaa..0774ae6c1becfd818802f791838494ca8fd07507 100644 (file)
@@ -635,10 +635,29 @@ cleanup:
        bpf_link__destroy(link);
 }
 
+static int verify_raw_tp_link_info(int fd, u64 cookie)
+{
+       struct bpf_link_info info;
+       int err;
+       u32 len = sizeof(info);
+
+       memset(&info, 0, sizeof(info));
+       err = bpf_link_get_info_by_fd(fd, &info, &len);
+       if (!ASSERT_OK(err, "get_link_info"))
+               return -1;
+
+       if (!ASSERT_EQ(info.type, BPF_LINK_TYPE_RAW_TRACEPOINT, "link_type"))
+               return -1;
+
+       ASSERT_EQ(info.raw_tracepoint.cookie, cookie, "raw_tp_cookie");
+
+       return 0;
+}
+
 static void raw_tp_subtest(struct test_bpf_cookie *skel)
 {
        __u64 cookie;
-       int prog_fd, link_fd = -1;
+       int err, prog_fd, link_fd = -1;
        struct bpf_link *link = NULL;
        LIBBPF_OPTS(bpf_raw_tp_opts, raw_tp_opts);
        LIBBPF_OPTS(bpf_raw_tracepoint_opts, opts);
@@ -656,6 +675,11 @@ static void raw_tp_subtest(struct test_bpf_cookie *skel)
                goto cleanup;
 
        usleep(1); /* trigger */
+
+       err = verify_raw_tp_link_info(link_fd, cookie);
+       if (!ASSERT_OK(err, "verify_raw_tp_link_info"))
+               goto cleanup;
+
        close(link_fd); /* detach */
        link_fd = -1;