Lines Matching refs:skel

8 static void check_nr_loops(struct bpf_loop *skel)  in check_nr_loops()  argument
12 link = bpf_program__attach(skel->progs.test_prog); in check_nr_loops()
17 skel->bss->nr_loops = 0; in check_nr_loops()
21 ASSERT_EQ(skel->bss->nr_loops_returned, skel->bss->nr_loops, in check_nr_loops()
25 skel->bss->nr_loops = 500; in check_nr_loops()
29 ASSERT_EQ(skel->bss->nr_loops_returned, skel->bss->nr_loops, in check_nr_loops()
31 ASSERT_EQ(skel->bss->g_output, (500 * 499) / 2, "g_output"); in check_nr_loops()
34 skel->bss->nr_loops = -1; in check_nr_loops()
38 ASSERT_EQ(skel->bss->err, -E2BIG, "over max limit"); in check_nr_loops()
43 static void check_callback_fn_stop(struct bpf_loop *skel) in check_callback_fn_stop() argument
47 link = bpf_program__attach(skel->progs.test_prog); in check_callback_fn_stop()
52 skel->bss->nr_loops = 400; in check_callback_fn_stop()
53 skel->data->stop_index = 50; in check_callback_fn_stop()
57 ASSERT_EQ(skel->bss->nr_loops_returned, skel->data->stop_index + 1, in check_callback_fn_stop()
59 ASSERT_EQ(skel->bss->g_output, (50 * 49) / 2, in check_callback_fn_stop()
65 static void check_null_callback_ctx(struct bpf_loop *skel) in check_null_callback_ctx() argument
70 link = bpf_program__attach(skel->progs.prog_null_ctx); in check_null_callback_ctx()
74 skel->bss->nr_loops = 10; in check_null_callback_ctx()
78 ASSERT_EQ(skel->bss->nr_loops_returned, skel->bss->nr_loops, in check_null_callback_ctx()
84 static void check_invalid_flags(struct bpf_loop *skel) in check_invalid_flags() argument
89 link = bpf_program__attach(skel->progs.prog_invalid_flags); in check_invalid_flags()
95 ASSERT_EQ(skel->bss->err, -EINVAL, "err"); in check_invalid_flags()
100 static void check_nested_calls(struct bpf_loop *skel) in check_nested_calls() argument
106 link = bpf_program__attach(skel->progs.prog_nested_calls); in check_nested_calls()
110 skel->bss->nr_loops = nr_loops; in check_nested_calls()
111 skel->bss->nested_callback_nr_loops = nested_callback_nr_loops; in check_nested_calls()
115 ASSERT_EQ(skel->bss->nr_loops_returned, nr_loops * nested_callback_nr_loops in check_nested_calls()
117 ASSERT_EQ(skel->bss->g_output, (4 * 3) / 2 * nested_callback_nr_loops in check_nested_calls()
123 static void check_non_constant_callback(struct bpf_loop *skel) in check_non_constant_callback() argument
126 bpf_program__attach(skel->progs.prog_non_constant_callback); in check_non_constant_callback()
131 skel->bss->callback_selector = 0x0F; in check_non_constant_callback()
133 ASSERT_EQ(skel->bss->g_output, 0x0F, "g_output #1"); in check_non_constant_callback()
135 skel->bss->callback_selector = 0xF0; in check_non_constant_callback()
137 ASSERT_EQ(skel->bss->g_output, 0xF0, "g_output #2"); in check_non_constant_callback()
142 static void check_stack(struct bpf_loop *skel) in check_stack() argument
144 struct bpf_link *link = bpf_program__attach(skel->progs.stack_check); in check_stack()
152 map_fd = bpf_map__fd(skel->maps.map1); in check_stack()
183 struct bpf_loop *skel; in test_bpf_loop() local
185 skel = bpf_loop__open_and_load(); in test_bpf_loop()
186 if (!ASSERT_OK_PTR(skel, "bpf_loop__open_and_load")) in test_bpf_loop()
189 skel->bss->pid = getpid(); in test_bpf_loop()
192 check_nr_loops(skel); in test_bpf_loop()
194 check_callback_fn_stop(skel); in test_bpf_loop()
196 check_null_callback_ctx(skel); in test_bpf_loop()
198 check_invalid_flags(skel); in test_bpf_loop()
200 check_nested_calls(skel); in test_bpf_loop()
202 check_non_constant_callback(skel); in test_bpf_loop()
204 check_stack(skel); in test_bpf_loop()
206 bpf_loop__destroy(skel); in test_bpf_loop()