Commit 4f2511e1 authored by Andrii Nakryiko's avatar Andrii Nakryiko Committed by Alexei Starovoitov

selftests/bpf: Switch to ".bss"/".rodata"/".data" lookups for internal maps

Utilize libbpf's feature of allowing to lookup internal maps by their
ELF section names. No need to guess or calculate the exact truncated
prefix taken from the object name.
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Acked-by: default avatarSong Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/20211021014404.2635234-11-andrii@kernel.org
parent 26071635
...@@ -163,7 +163,7 @@ void test_core_autosize(void) ...@@ -163,7 +163,7 @@ void test_core_autosize(void)
usleep(1); usleep(1);
bss_map = bpf_object__find_map_by_name(skel->obj, "test_cor.bss"); bss_map = bpf_object__find_map_by_name(skel->obj, ".bss");
if (!ASSERT_OK_PTR(bss_map, "bss_map_find")) if (!ASSERT_OK_PTR(bss_map, "bss_map_find"))
goto cleanup; goto cleanup;
......
...@@ -867,7 +867,7 @@ void test_core_reloc(void) ...@@ -867,7 +867,7 @@ void test_core_reloc(void)
goto cleanup; goto cleanup;
} }
data_map = bpf_object__find_map_by_name(obj, "test_cor.bss"); data_map = bpf_object__find_map_by_name(obj, ".bss");
if (CHECK(!data_map, "find_data_map", "data map not found\n")) if (CHECK(!data_map, "find_data_map", "data map not found\n"))
goto cleanup; goto cleanup;
......
...@@ -103,11 +103,18 @@ static void test_global_data_struct(struct bpf_object *obj, __u32 duration) ...@@ -103,11 +103,18 @@ static void test_global_data_struct(struct bpf_object *obj, __u32 duration)
static void test_global_data_rdonly(struct bpf_object *obj, __u32 duration) static void test_global_data_rdonly(struct bpf_object *obj, __u32 duration)
{ {
int err = -ENOMEM, map_fd, zero = 0; int err = -ENOMEM, map_fd, zero = 0;
struct bpf_map *map; struct bpf_map *map, *map2;
__u8 *buff; __u8 *buff;
map = bpf_object__find_map_by_name(obj, "test_glo.rodata"); map = bpf_object__find_map_by_name(obj, "test_glo.rodata");
if (CHECK_FAIL(!map || !bpf_map__is_internal(map))) if (!ASSERT_OK_PTR(map, "map"))
return;
if (!ASSERT_TRUE(bpf_map__is_internal(map), "is_internal"))
return;
/* ensure we can lookup internal maps by their ELF names */
map2 = bpf_object__find_map_by_name(obj, ".rodata");
if (!ASSERT_EQ(map, map2, "same_maps"))
return; return;
map_fd = bpf_map__fd(map); map_fd = bpf_map__fd(map);
......
...@@ -16,7 +16,7 @@ void test_global_data_init(void) ...@@ -16,7 +16,7 @@ void test_global_data_init(void)
if (CHECK_FAIL(err)) if (CHECK_FAIL(err))
return; return;
map = bpf_object__find_map_by_name(obj, "test_glo.rodata"); map = bpf_object__find_map_by_name(obj, ".rodata");
if (CHECK_FAIL(!map || !bpf_map__is_internal(map))) if (CHECK_FAIL(!map || !bpf_map__is_internal(map)))
goto out; goto out;
......
...@@ -93,7 +93,7 @@ void serial_test_kfree_skb(void) ...@@ -93,7 +93,7 @@ void serial_test_kfree_skb(void)
if (CHECK(!fexit, "find_prog", "prog eth_type_trans not found\n")) if (CHECK(!fexit, "find_prog", "prog eth_type_trans not found\n"))
goto close_prog; goto close_prog;
global_data = bpf_object__find_map_by_name(obj2, "kfree_sk.bss"); global_data = bpf_object__find_map_by_name(obj2, ".bss");
if (CHECK(!global_data, "find global data", "not found\n")) if (CHECK(!global_data, "find global data", "not found\n"))
goto close_prog; goto close_prog;
......
...@@ -37,7 +37,7 @@ void test_rdonly_maps(void) ...@@ -37,7 +37,7 @@ void test_rdonly_maps(void)
if (CHECK(err, "obj_load", "err %d errno %d\n", err, errno)) if (CHECK(err, "obj_load", "err %d errno %d\n", err, errno))
goto cleanup; goto cleanup;
bss_map = bpf_object__find_map_by_name(obj, "test_rdo.bss"); bss_map = bpf_object__find_map_by_name(obj, ".bss");
if (CHECK(!bss_map, "find_bss_map", "failed\n")) if (CHECK(!bss_map, "find_bss_map", "failed\n"))
goto cleanup; goto cleanup;
......
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