xref: /linux/tools/testing/selftests/bpf/prog_tests/arena_strsearch.c (revision 24f171c7e145f43b9f187578e89b0982ce87e54c)
1*63066b7aSAlexei Starovoitov // SPDX-License-Identifier: GPL-2.0
2*63066b7aSAlexei Starovoitov /* Copyright (c) 2025 Meta Platforms, Inc. and affiliates. */
3*63066b7aSAlexei Starovoitov #include <test_progs.h>
4*63066b7aSAlexei Starovoitov #include "arena_strsearch.skel.h"
5*63066b7aSAlexei Starovoitov 
6*63066b7aSAlexei Starovoitov static void test_arena_str(void)
7*63066b7aSAlexei Starovoitov {
8*63066b7aSAlexei Starovoitov 	LIBBPF_OPTS(bpf_test_run_opts, opts);
9*63066b7aSAlexei Starovoitov 	struct arena_strsearch *skel;
10*63066b7aSAlexei Starovoitov 	int ret;
11*63066b7aSAlexei Starovoitov 
12*63066b7aSAlexei Starovoitov 	skel = arena_strsearch__open_and_load();
13*63066b7aSAlexei Starovoitov 	if (!ASSERT_OK_PTR(skel, "arena_strsearch__open_and_load"))
14*63066b7aSAlexei Starovoitov 		return;
15*63066b7aSAlexei Starovoitov 
16*63066b7aSAlexei Starovoitov 	ret = bpf_prog_test_run_opts(bpf_program__fd(skel->progs.arena_strsearch), &opts);
17*63066b7aSAlexei Starovoitov 	ASSERT_OK(ret, "ret_add");
18*63066b7aSAlexei Starovoitov 	ASSERT_OK(opts.retval, "retval");
19*63066b7aSAlexei Starovoitov 	if (skel->bss->skip) {
20*63066b7aSAlexei Starovoitov 		printf("%s:SKIP:compiler doesn't support arena_cast\n", __func__);
21*63066b7aSAlexei Starovoitov 		test__skip();
22*63066b7aSAlexei Starovoitov 	}
23*63066b7aSAlexei Starovoitov 	arena_strsearch__destroy(skel);
24*63066b7aSAlexei Starovoitov }
25*63066b7aSAlexei Starovoitov 
26*63066b7aSAlexei Starovoitov void test_arena_strsearch(void)
27*63066b7aSAlexei Starovoitov {
28*63066b7aSAlexei Starovoitov 	if (test__start_subtest("arena_strsearch"))
29*63066b7aSAlexei Starovoitov 		test_arena_str();
30*63066b7aSAlexei Starovoitov }
31