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

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
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -163,7 +163,7 @@ void test_core_autosize(void)

	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"))
		goto cleanup;

+1 −1
Original line number Diff line number Diff line
@@ -867,7 +867,7 @@ void test_core_reloc(void)
			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"))
			goto cleanup;

+9 −2
Original line number Diff line number Diff line
@@ -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)
{
	int err = -ENOMEM, map_fd, zero = 0;
	struct bpf_map *map;
	struct bpf_map *map, *map2;
	__u8 *buff;

	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;

	map_fd = bpf_map__fd(map);
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ void test_global_data_init(void)
	if (CHECK_FAIL(err))
		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)))
		goto out;

+1 −1
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ void serial_test_kfree_skb(void)
	if (CHECK(!fexit, "find_prog", "prog eth_type_trans not found\n"))
		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"))
		goto close_prog;

Loading