mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:02:20 +00:00
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: Mykyta Yatsenko <yatsenko@meta.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20240621180324.238379-1-yatsenko@meta.com
This commit is contained in:
parent
2bb138cb20
commit
cd387ce548
@ -185,6 +185,39 @@ done:
|
||||
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 bool found;
|
||||
|
||||
@ -598,4 +631,6 @@ void test_bpf_tcp_ca(void)
|
||||
test_tcp_ca_kfunc();
|
||||
if (test__start_subtest("cc_cubic"))
|
||||
test_cc_cubic();
|
||||
if (test__start_subtest("dctcp_autoattach_map"))
|
||||
test_dctcp_autoattach_map();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user