Commit cdfd9cc3 authored by Yonghong Song's avatar Yonghong Song Committed by Alexei Starovoitov
Browse files

selftests/bpf: Replace CHECK with ASSERT macros for ksyms test



Replace CHECK with ASSERT macros for ksyms tests.
This test failed earlier with clang lto kernel, but the
issue is gone with latest code base. But replacing
CHECK with ASSERT still improves code as ASSERT is
preferred in selftests.

Signed-off-by: default avatarYonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/r/20240326041448.1197812-1-yonghong.song@linux.dev


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 5da7fb04
Loading
Loading
Loading
Loading
+11 −19
Original line number Diff line number Diff line
@@ -5,8 +5,6 @@
#include "test_ksyms.skel.h"
#include <sys/stat.h>

static int duration;

void test_ksyms(void)
{
	const char *btf_path = "/sys/kernel/btf/vmlinux";
@@ -18,43 +16,37 @@ void test_ksyms(void)
	int err;

	err = kallsyms_find("bpf_link_fops", &link_fops_addr);
	if (CHECK(err == -EINVAL, "kallsyms_fopen", "failed to open: %d\n", errno))
	if (!ASSERT_NEQ(err, -EINVAL, "bpf_link_fops: kallsyms_fopen"))
		return;
	if (CHECK(err == -ENOENT, "ksym_find", "symbol 'bpf_link_fops' not found\n"))
	if (!ASSERT_NEQ(err, -ENOENT, "bpf_link_fops: ksym_find"))
		return;

	err = kallsyms_find("__per_cpu_start", &per_cpu_start_addr);
	if (CHECK(err == -EINVAL, "kallsyms_fopen", "failed to open: %d\n", errno))
	if (!ASSERT_NEQ(err, -EINVAL, "__per_cpu_start: kallsyms_fopen"))
		return;
	if (CHECK(err == -ENOENT, "ksym_find", "symbol 'per_cpu_start' not found\n"))
	if (!ASSERT_NEQ(err, -ENOENT, "__per_cpu_start: ksym_find"))
		return;

	if (CHECK(stat(btf_path, &st), "stat_btf", "err %d\n", errno))
	if (!ASSERT_OK(stat(btf_path, &st), "stat_btf"))
		return;
	btf_size = st.st_size;

	skel = test_ksyms__open_and_load();
	if (CHECK(!skel, "skel_open", "failed to open and load skeleton\n"))
	if (!ASSERT_OK_PTR(skel, "test_ksyms__open_and_load"))
		return;

	err = test_ksyms__attach(skel);
	if (CHECK(err, "skel_attach", "skeleton attach failed: %d\n", err))
	if (!ASSERT_OK(err, "test_ksyms__attach"))
		goto cleanup;

	/* trigger tracepoint */
	usleep(1);

	data = skel->data;
	CHECK(data->out__bpf_link_fops != link_fops_addr, "bpf_link_fops",
	      "got 0x%llx, exp 0x%llx\n",
	      data->out__bpf_link_fops, link_fops_addr);
	CHECK(data->out__bpf_link_fops1 != 0, "bpf_link_fops1",
	      "got %llu, exp %llu\n", data->out__bpf_link_fops1, (__u64)0);
	CHECK(data->out__btf_size != btf_size, "btf_size",
	      "got %llu, exp %llu\n", data->out__btf_size, btf_size);
	CHECK(data->out__per_cpu_start != per_cpu_start_addr, "__per_cpu_start",
	      "got %llu, exp %llu\n", data->out__per_cpu_start,
	      per_cpu_start_addr);
	ASSERT_EQ(data->out__bpf_link_fops, link_fops_addr, "bpf_link_fops");
	ASSERT_EQ(data->out__bpf_link_fops1, 0, "bpf_link_fops1");
	ASSERT_EQ(data->out__btf_size, btf_size, "btf_size");
	ASSERT_EQ(data->out__per_cpu_start, per_cpu_start_addr, "__per_cpu_start");

cleanup:
	test_ksyms__destroy(skel);