Linux Audio

Check our new training course

Yocto / OpenEmbedded training

Feb 10-13, 2025
Register
Loading...
v6.13.7
 1// SPDX-License-Identifier: GPL-2.0
 2/* Copyright (c) 2021 Facebook */
 3
 4#include <test_progs.h>
 5#include <network_helpers.h>
 
 6#include "test_ksyms_module.lskel.h"
 7#include "test_ksyms_module.skel.h"
 8
 9static void test_ksyms_module_lskel(void)
 
 
10{
11	struct test_ksyms_module_lskel *skel;
12	int err;
13	LIBBPF_OPTS(bpf_test_run_opts, topts,
14		.data_in = &pkt_v4,
15		.data_size_in = sizeof(pkt_v4),
16		.repeat = 1,
17	);
18
19	if (!env.has_testmod) {
20		test__skip();
21		return;
22	}
23
24	skel = test_ksyms_module_lskel__open_and_load();
25	if (!ASSERT_OK_PTR(skel, "test_ksyms_module_lskel__open_and_load"))
26		return;
27	err = bpf_prog_test_run_opts(skel->progs.load.prog_fd, &topts);
28	if (!ASSERT_OK(err, "bpf_prog_test_run"))
29		goto cleanup;
30	ASSERT_EQ(topts.retval, 0, "retval");
31	ASSERT_EQ(skel->bss->out_bpf_testmod_ksym, 42, "bpf_testmod_ksym");
32cleanup:
33	test_ksyms_module_lskel__destroy(skel);
34}
35
36static void test_ksyms_module_libbpf(void)
37{
38	struct test_ksyms_module *skel;
39	int err;
40	LIBBPF_OPTS(bpf_test_run_opts, topts,
41		.data_in = &pkt_v4,
42		.data_size_in = sizeof(pkt_v4),
43		.repeat = 1,
44	);
45
46	if (!env.has_testmod) {
47		test__skip();
48		return;
49	}
50
51	skel = test_ksyms_module__open_and_load();
52	if (!ASSERT_OK_PTR(skel, "test_ksyms_module__open"))
53		return;
54	err = bpf_prog_test_run_opts(bpf_program__fd(skel->progs.load), &topts);
55	if (!ASSERT_OK(err, "bpf_prog_test_run"))
56		goto cleanup;
57	ASSERT_EQ(topts.retval, 0, "retval");
58	ASSERT_EQ(skel->bss->out_bpf_testmod_ksym, 42, "bpf_testmod_ksym");
59cleanup:
60	test_ksyms_module__destroy(skel);
61}
62
63void test_ksyms_module(void)
64{
65	if (test__start_subtest("lskel"))
66		test_ksyms_module_lskel();
67	if (test__start_subtest("libbpf"))
68		test_ksyms_module_libbpf();
69}
v5.14.15
 1// SPDX-License-Identifier: GPL-2.0
 2/* Copyright (c) 2021 Facebook */
 3
 4#include <test_progs.h>
 5#include <bpf/libbpf.h>
 6#include <bpf/btf.h>
 7#include "test_ksyms_module.lskel.h"
 
 8
 9static int duration;
10
11void test_ksyms_module(void)
12{
13	struct test_ksyms_module* skel;
14	int err;
 
 
 
 
 
15
16	skel = test_ksyms_module__open_and_load();
17	if (CHECK(!skel, "skel_open", "failed to open skeleton\n"))
18		return;
 
19
20	err = test_ksyms_module__attach(skel);
21	if (CHECK(err, "skel_attach", "skeleton attach failed: %d\n", err))
 
 
 
22		goto cleanup;
 
 
 
 
 
23
24	usleep(1);
 
 
 
 
 
 
 
 
25
26	ASSERT_EQ(skel->bss->triggered, true, "triggered");
27	ASSERT_EQ(skel->bss->out_mod_ksym_global, 123, "global_ksym_val");
 
 
28
 
 
 
 
 
 
 
 
29cleanup:
30	test_ksyms_module__destroy(skel);
 
 
 
 
 
 
 
 
31}