Commit cd387ce5 authored by Mykyta Yatsenko's avatar Mykyta Yatsenko Committed by Andrii Nakryiko

selftests/bpf: Test struct_ops bpf map auto-attach

Adding selftest to verify that struct_ops maps are auto attached by
bpf skeleton's `*__attach` function.
Signed-off-by: default avatarMykyta Yatsenko <yatsenko@meta.com>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20240621180324.238379-1-yatsenko@meta.com
parent 2bb138cb
...@@ -185,6 +185,39 @@ static void test_dctcp(void) ...@@ -185,6 +185,39 @@ static void test_dctcp(void)
close(fd); close(fd);
} }
static void test_dctcp_autoattach_map(void)
{
struct cb_opts cb_opts = {
.cc = "bpf_dctcp",
};
struct network_helper_opts opts = {
.post_socket_cb = cc_cb,
.cb_opts = &cb_opts,
};
struct bpf_dctcp *dctcp_skel;
struct bpf_link *link;
dctcp_skel = bpf_dctcp__open_and_load();
if (!ASSERT_OK_PTR(dctcp_skel, "bpf_dctcp__open_and_load"))
return;
bpf_map__set_autoattach(dctcp_skel->maps.dctcp, true);
bpf_map__set_autoattach(dctcp_skel->maps.dctcp_nouse, false);
if (!ASSERT_OK(bpf_dctcp__attach(dctcp_skel), "bpf_dctcp__attach"))
goto destroy;
/* struct_ops is auto-attached */
link = dctcp_skel->links.dctcp;
if (!ASSERT_OK_PTR(link, "link"))
goto destroy;
do_test(&opts);
destroy:
bpf_dctcp__destroy(dctcp_skel);
}
static char *err_str; static char *err_str;
static bool found; static bool found;
...@@ -598,4 +631,6 @@ void test_bpf_tcp_ca(void) ...@@ -598,4 +631,6 @@ void test_bpf_tcp_ca(void)
test_tcp_ca_kfunc(); test_tcp_ca_kfunc();
if (test__start_subtest("cc_cubic")) if (test__start_subtest("cc_cubic"))
test_cc_cubic(); test_cc_cubic();
if (test__start_subtest("dctcp_autoattach_map"))
test_dctcp_autoattach_map();
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment