diff options
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/ksyms_module.c')
| -rw-r--r-- | tools/testing/selftests/bpf/prog_tests/ksyms_module.c | 57 | 
1 files changed, 44 insertions, 13 deletions
| diff --git a/tools/testing/selftests/bpf/prog_tests/ksyms_module.c b/tools/testing/selftests/bpf/prog_tests/ksyms_module.c index 2cd5cded543f..d490ad80eccb 100644 --- a/tools/testing/selftests/bpf/prog_tests/ksyms_module.c +++ b/tools/testing/selftests/bpf/prog_tests/ksyms_module.c @@ -2,30 +2,61 @@  /* Copyright (c) 2021 Facebook */  #include <test_progs.h> -#include <bpf/libbpf.h> -#include <bpf/btf.h> +#include <network_helpers.h>  #include "test_ksyms_module.lskel.h" +#include "test_ksyms_module.skel.h" -static int duration; - -void test_ksyms_module(void) +void test_ksyms_module_lskel(void)  { -	struct test_ksyms_module* skel; +	struct test_ksyms_module_lskel *skel; +	int retval;  	int err; -	skel = test_ksyms_module__open_and_load(); -	if (CHECK(!skel, "skel_open", "failed to open skeleton\n")) +	if (!env.has_testmod) { +		test__skip();  		return; +	} -	err = test_ksyms_module__attach(skel); -	if (CHECK(err, "skel_attach", "skeleton attach failed: %d\n", err)) +	skel = test_ksyms_module_lskel__open_and_load(); +	if (!ASSERT_OK_PTR(skel, "test_ksyms_module_lskel__open_and_load")) +		return; +	err = bpf_prog_test_run(skel->progs.load.prog_fd, 1, &pkt_v4, sizeof(pkt_v4), +				NULL, NULL, (__u32 *)&retval, NULL); +	if (!ASSERT_OK(err, "bpf_prog_test_run"))  		goto cleanup; +	ASSERT_EQ(retval, 0, "retval"); +	ASSERT_EQ(skel->bss->out_bpf_testmod_ksym, 42, "bpf_testmod_ksym"); +cleanup: +	test_ksyms_module_lskel__destroy(skel); +} -	usleep(1); +void test_ksyms_module_libbpf(void) +{ +	struct test_ksyms_module *skel; +	int retval, err; -	ASSERT_EQ(skel->bss->triggered, true, "triggered"); -	ASSERT_EQ(skel->bss->out_mod_ksym_global, 123, "global_ksym_val"); +	if (!env.has_testmod) { +		test__skip(); +		return; +	} +	skel = test_ksyms_module__open_and_load(); +	if (!ASSERT_OK_PTR(skel, "test_ksyms_module__open")) +		return; +	err = bpf_prog_test_run(bpf_program__fd(skel->progs.load), 1, &pkt_v4, +				sizeof(pkt_v4), NULL, NULL, (__u32 *)&retval, NULL); +	if (!ASSERT_OK(err, "bpf_prog_test_run")) +		goto cleanup; +	ASSERT_EQ(retval, 0, "retval"); +	ASSERT_EQ(skel->bss->out_bpf_testmod_ksym, 42, "bpf_testmod_ksym");  cleanup:  	test_ksyms_module__destroy(skel);  } + +void test_ksyms_module(void) +{ +	if (test__start_subtest("lskel")) +		test_ksyms_module_lskel(); +	if (test__start_subtest("libbpf")) +		test_ksyms_module_libbpf(); +} |