Commit 0a930662 authored by Alexei Starovoitov's avatar Alexei Starovoitov Committed by Daniel Borkmann
Browse files

selftests/bpf: Convert atomics test to light skeleton.

parent 4d1b6298
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -313,7 +313,7 @@ LINKED_SKELS := test_static_linked.skel.h linked_funcs.skel.h \
		linked_vars.skel.h linked_maps.skel.h

LSKELS := kfunc_call_test.c fentry_test.c fexit_test.c fexit_sleep.c \
	test_ksyms_module.c test_ringbuf.c
	test_ksyms_module.c test_ringbuf.c atomics.c
SKEL_BLACKLIST += $$(LSKELS)

test_static_linked.skel.h-deps := test_static_linked1.o test_static_linked2.o
+36 −36
Original line number Diff line number Diff line
@@ -2,19 +2,19 @@

#include <test_progs.h>

#include "atomics.skel.h"
#include "atomics.lskel.h"

static void test_add(struct atomics *skel)
{
	int err, prog_fd;
	__u32 duration = 0, retval;
	struct bpf_link *link;
	int link_fd;

	link = bpf_program__attach(skel->progs.add);
	if (CHECK(IS_ERR(link), "attach(add)", "err: %ld\n", PTR_ERR(link)))
	link_fd = atomics__add__attach(skel);
	if (!ASSERT_GT(link_fd, 0, "attach(add)"))
		return;

	prog_fd = bpf_program__fd(skel->progs.add);
	prog_fd = skel->progs.add.prog_fd;
	err = bpf_prog_test_run(prog_fd, 1, NULL, 0,
				NULL, NULL, &retval, &duration);
	if (CHECK(err || retval, "test_run add",
@@ -33,20 +33,20 @@ static void test_add(struct atomics *skel)
	ASSERT_EQ(skel->data->add_noreturn_value, 3, "add_noreturn_value");

cleanup:
	bpf_link__destroy(link);
	close(link_fd);
}

static void test_sub(struct atomics *skel)
{
	int err, prog_fd;
	__u32 duration = 0, retval;
	struct bpf_link *link;
	int link_fd;

	link = bpf_program__attach(skel->progs.sub);
	if (CHECK(IS_ERR(link), "attach(sub)", "err: %ld\n", PTR_ERR(link)))
	link_fd = atomics__sub__attach(skel);
	if (!ASSERT_GT(link_fd, 0, "attach(sub)"))
		return;

	prog_fd = bpf_program__fd(skel->progs.sub);
	prog_fd = skel->progs.sub.prog_fd;
	err = bpf_prog_test_run(prog_fd, 1, NULL, 0,
				NULL, NULL, &retval, &duration);
	if (CHECK(err || retval, "test_run sub",
@@ -66,20 +66,20 @@ static void test_sub(struct atomics *skel)
	ASSERT_EQ(skel->data->sub_noreturn_value, -1, "sub_noreturn_value");

cleanup:
	bpf_link__destroy(link);
	close(link_fd);
}

static void test_and(struct atomics *skel)
{
	int err, prog_fd;
	__u32 duration = 0, retval;
	struct bpf_link *link;
	int link_fd;

	link = bpf_program__attach(skel->progs.and);
	if (CHECK(IS_ERR(link), "attach(and)", "err: %ld\n", PTR_ERR(link)))
	link_fd = atomics__and__attach(skel);
	if (!ASSERT_GT(link_fd, 0, "attach(and)"))
		return;

	prog_fd = bpf_program__fd(skel->progs.and);
	prog_fd = skel->progs.and.prog_fd;
	err = bpf_prog_test_run(prog_fd, 1, NULL, 0,
				NULL, NULL, &retval, &duration);
	if (CHECK(err || retval, "test_run and",
@@ -94,20 +94,20 @@ static void test_and(struct atomics *skel)

	ASSERT_EQ(skel->data->and_noreturn_value, 0x010ull << 32, "and_noreturn_value");
cleanup:
	bpf_link__destroy(link);
	close(link_fd);
}

static void test_or(struct atomics *skel)
{
	int err, prog_fd;
	__u32 duration = 0, retval;
	struct bpf_link *link;
	int link_fd;

	link = bpf_program__attach(skel->progs.or);
	if (CHECK(IS_ERR(link), "attach(or)", "err: %ld\n", PTR_ERR(link)))
	link_fd = atomics__or__attach(skel);
	if (!ASSERT_GT(link_fd, 0, "attach(or)"))
		return;

	prog_fd = bpf_program__fd(skel->progs.or);
	prog_fd = skel->progs.or.prog_fd;
	err = bpf_prog_test_run(prog_fd, 1, NULL, 0,
				NULL, NULL, &retval, &duration);
	if (CHECK(err || retval, "test_run or",
@@ -123,20 +123,20 @@ static void test_or(struct atomics *skel)

	ASSERT_EQ(skel->data->or_noreturn_value, 0x111ull << 32, "or_noreturn_value");
cleanup:
	bpf_link__destroy(link);
	close(link_fd);
}

static void test_xor(struct atomics *skel)
{
	int err, prog_fd;
	__u32 duration = 0, retval;
	struct bpf_link *link;
	int link_fd;

	link = bpf_program__attach(skel->progs.xor);
	if (CHECK(IS_ERR(link), "attach(xor)", "err: %ld\n", PTR_ERR(link)))
	link_fd = atomics__xor__attach(skel);
	if (!ASSERT_GT(link_fd, 0, "attach(xor)"))
		return;

	prog_fd = bpf_program__fd(skel->progs.xor);
	prog_fd = skel->progs.xor.prog_fd;
	err = bpf_prog_test_run(prog_fd, 1, NULL, 0,
				NULL, NULL, &retval, &duration);
	if (CHECK(err || retval, "test_run xor",
@@ -151,20 +151,20 @@ static void test_xor(struct atomics *skel)

	ASSERT_EQ(skel->data->xor_noreturn_value, 0x101ull << 32, "xor_nxoreturn_value");
cleanup:
	bpf_link__destroy(link);
	close(link_fd);
}

static void test_cmpxchg(struct atomics *skel)
{
	int err, prog_fd;
	__u32 duration = 0, retval;
	struct bpf_link *link;
	int link_fd;

	link = bpf_program__attach(skel->progs.cmpxchg);
	if (CHECK(IS_ERR(link), "attach(cmpxchg)", "err: %ld\n", PTR_ERR(link)))
	link_fd = atomics__cmpxchg__attach(skel);
	if (!ASSERT_GT(link_fd, 0, "attach(cmpxchg)"))
		return;

	prog_fd = bpf_program__fd(skel->progs.cmpxchg);
	prog_fd = skel->progs.cmpxchg.prog_fd;
	err = bpf_prog_test_run(prog_fd, 1, NULL, 0,
				NULL, NULL, &retval, &duration);
	if (CHECK(err || retval, "test_run add",
@@ -180,20 +180,20 @@ static void test_cmpxchg(struct atomics *skel)
	ASSERT_EQ(skel->bss->cmpxchg32_result_succeed, 1, "cmpxchg_result_succeed");

cleanup:
	bpf_link__destroy(link);
	close(link_fd);
}

static void test_xchg(struct atomics *skel)
{
	int err, prog_fd;
	__u32 duration = 0, retval;
	struct bpf_link *link;
	int link_fd;

	link = bpf_program__attach(skel->progs.xchg);
	if (CHECK(IS_ERR(link), "attach(xchg)", "err: %ld\n", PTR_ERR(link)))
	link_fd = atomics__xchg__attach(skel);
	if (!ASSERT_GT(link_fd, 0, "attach(xchg)"))
		return;

	prog_fd = bpf_program__fd(skel->progs.xchg);
	prog_fd = skel->progs.xchg.prog_fd;
	err = bpf_prog_test_run(prog_fd, 1, NULL, 0,
				NULL, NULL, &retval, &duration);
	if (CHECK(err || retval, "test_run add",
@@ -207,7 +207,7 @@ static void test_xchg(struct atomics *skel)
	ASSERT_EQ(skel->bss->xchg32_result, 1, "xchg32_result");

cleanup:
	bpf_link__destroy(link);
	close(link_fd);
}

void test_atomics(void)