]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/bpf: Add a test for kprobe multi with unique_match
authorYonghong Song <yonghong.song@linux.dev>
Thu, 9 Jan 2025 17:40:28 +0000 (09:40 -0800)
committerAndrii Nakryiko <andrii@kernel.org>
Fri, 10 Jan 2025 21:11:44 +0000 (13:11 -0800)
Add a kprobe multi subtest to test kprobe multi unique_match option.

Signed-off-by: Yonghong Song <yonghong.song@linux.dev>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20250109174028.3368967-1-yonghong.song@linux.dev
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c

index 66ab1cae923e059b36d420b08956b277a2f5e9b1..e19ef509ebf85eecca4a614f4fcb99f745035015 100644 (file)
@@ -397,6 +397,31 @@ cleanup:
        kprobe_multi_session_cookie__destroy(skel);
 }
 
+static void test_unique_match(void)
+{
+       LIBBPF_OPTS(bpf_kprobe_multi_opts, opts);
+       struct kprobe_multi *skel = NULL;
+       struct bpf_link *link = NULL;
+
+       skel = kprobe_multi__open_and_load();
+       if (!ASSERT_OK_PTR(skel, "kprobe_multi__open_and_load"))
+               return;
+
+       opts.unique_match = true;
+       skel->bss->pid = getpid();
+       link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
+                                                    "bpf_fentry_test*", &opts);
+       if (!ASSERT_ERR_PTR(link, "bpf_program__attach_kprobe_multi_opts"))
+               bpf_link__destroy(link);
+
+       link = bpf_program__attach_kprobe_multi_opts(skel->progs.test_kprobe_manual,
+                                                    "bpf_fentry_test8*", &opts);
+       if (ASSERT_OK_PTR(link, "bpf_program__attach_kprobe_multi_opts"))
+               bpf_link__destroy(link);
+
+       kprobe_multi__destroy(skel);
+}
+
 static size_t symbol_hash(long key, void *ctx __maybe_unused)
 {
        return str_hash((const char *) key);
@@ -765,5 +790,7 @@ void test_kprobe_multi_test(void)
                test_session_skel_api();
        if (test__start_subtest("session_cookie"))
                test_session_cookie_skel_api();
+       if (test__start_subtest("unique_match"))
+               test_unique_match();
        RUN_TESTS(kprobe_multi_verifier);
 }