1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright (c) 2023 Meta Platforms, Inc. and affiliates. */ 3 4 #include <test_progs.h> 5 #include <network_helpers.h> 6 7 #include "refcounted_kptr.skel.h" 8 #include "refcounted_kptr_fail.skel.h" 9 10 void test_refcounted_kptr(void) 11 { 12 RUN_TESTS(refcounted_kptr); 13 } 14 15 void test_refcounted_kptr_fail(void) 16 { 17 RUN_TESTS(refcounted_kptr_fail); 18 } 19 20 void test_refcounted_kptr_wrong_owner(void) 21 { 22 LIBBPF_OPTS(bpf_test_run_opts, opts, 23 .data_in = &pkt_v4, 24 .data_size_in = sizeof(pkt_v4), 25 .repeat = 1, 26 ); 27 struct refcounted_kptr *skel; 28 int ret; 29 30 skel = refcounted_kptr__open_and_load(); 31 if (!ASSERT_OK_PTR(skel, "refcounted_kptr__open_and_load")) 32 return; 33 34 ret = bpf_prog_test_run_opts(bpf_program__fd(skel->progs.rbtree_wrong_owner_remove_fail_a1), &opts); 35 ASSERT_OK(ret, "rbtree_wrong_owner_remove_fail_a1"); 36 ASSERT_OK(opts.retval, "rbtree_wrong_owner_remove_fail_a1 retval"); 37 38 ret = bpf_prog_test_run_opts(bpf_program__fd(skel->progs.rbtree_wrong_owner_remove_fail_b), &opts); 39 ASSERT_OK(ret, "rbtree_wrong_owner_remove_fail_b"); 40 ASSERT_OK(opts.retval, "rbtree_wrong_owner_remove_fail_b retval"); 41 42 ret = bpf_prog_test_run_opts(bpf_program__fd(skel->progs.rbtree_wrong_owner_remove_fail_a2), &opts); 43 ASSERT_OK(ret, "rbtree_wrong_owner_remove_fail_a2"); 44 ASSERT_OK(opts.retval, "rbtree_wrong_owner_remove_fail_a2 retval"); 45 refcounted_kptr__destroy(skel); 46 } 47