1*84a62b44SKrister Johansen // SPDX-License-Identifier: GPL-2.0
2*84a62b44SKrister Johansen 
3*84a62b44SKrister Johansen #include <test_progs.h>
4*84a62b44SKrister Johansen #include "test_subprogs_extable.skel.h"
5*84a62b44SKrister Johansen 
test_subprogs_extable(void)6*84a62b44SKrister Johansen void test_subprogs_extable(void)
7*84a62b44SKrister Johansen {
8*84a62b44SKrister Johansen 	const int read_sz = 456;
9*84a62b44SKrister Johansen 	struct test_subprogs_extable *skel;
10*84a62b44SKrister Johansen 	int err;
11*84a62b44SKrister Johansen 
12*84a62b44SKrister Johansen 	skel = test_subprogs_extable__open_and_load();
13*84a62b44SKrister Johansen 	if (!ASSERT_OK_PTR(skel, "skel_open_and_load"))
14*84a62b44SKrister Johansen 		return;
15*84a62b44SKrister Johansen 
16*84a62b44SKrister Johansen 	err = test_subprogs_extable__attach(skel);
17*84a62b44SKrister Johansen 	if (!ASSERT_OK(err, "skel_attach"))
18*84a62b44SKrister Johansen 		goto cleanup;
19*84a62b44SKrister Johansen 
20*84a62b44SKrister Johansen 	/* trigger tracepoint */
21*84a62b44SKrister Johansen 	ASSERT_OK(trigger_module_test_read(read_sz), "trigger_read");
22*84a62b44SKrister Johansen 
23*84a62b44SKrister Johansen 	ASSERT_NEQ(skel->bss->triggered, 0, "verify at least one program ran");
24*84a62b44SKrister Johansen 
25*84a62b44SKrister Johansen 	test_subprogs_extable__detach(skel);
26*84a62b44SKrister Johansen 
27*84a62b44SKrister Johansen cleanup:
28*84a62b44SKrister Johansen 	test_subprogs_extable__destroy(skel);
29*84a62b44SKrister Johansen }
30