diff options
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/rbtree.c')
| -rw-r--r-- | tools/testing/selftests/bpf/prog_tests/rbtree.c | 47 | 
1 files changed, 47 insertions, 0 deletions
| diff --git a/tools/testing/selftests/bpf/prog_tests/rbtree.c b/tools/testing/selftests/bpf/prog_tests/rbtree.c index e9300c96607d..9818f06c97c5 100644 --- a/tools/testing/selftests/bpf/prog_tests/rbtree.c +++ b/tools/testing/selftests/bpf/prog_tests/rbtree.c @@ -31,6 +31,28 @@ static void test_rbtree_add_nodes(void)  	rbtree__destroy(skel);  } +static void test_rbtree_add_nodes_nested(void) +{ +	LIBBPF_OPTS(bpf_test_run_opts, opts, +		    .data_in = &pkt_v4, +		    .data_size_in = sizeof(pkt_v4), +		    .repeat = 1, +	); +	struct rbtree *skel; +	int ret; + +	skel = rbtree__open_and_load(); +	if (!ASSERT_OK_PTR(skel, "rbtree__open_and_load")) +		return; + +	ret = bpf_prog_test_run_opts(bpf_program__fd(skel->progs.rbtree_add_nodes_nested), &opts); +	ASSERT_OK(ret, "rbtree_add_nodes_nested run"); +	ASSERT_OK(opts.retval, "rbtree_add_nodes_nested retval"); +	ASSERT_EQ(skel->data->less_callback_ran, 1, "rbtree_add_nodes_nested less_callback_ran"); + +	rbtree__destroy(skel); +} +  static void test_rbtree_add_and_remove(void)  {  	LIBBPF_OPTS(bpf_test_run_opts, opts, @@ -53,6 +75,27 @@ static void test_rbtree_add_and_remove(void)  	rbtree__destroy(skel);  } +static void test_rbtree_add_and_remove_array(void) +{ +	LIBBPF_OPTS(bpf_test_run_opts, opts, +		    .data_in = &pkt_v4, +		    .data_size_in = sizeof(pkt_v4), +		    .repeat = 1, +	); +	struct rbtree *skel; +	int ret; + +	skel = rbtree__open_and_load(); +	if (!ASSERT_OK_PTR(skel, "rbtree__open_and_load")) +		return; + +	ret = bpf_prog_test_run_opts(bpf_program__fd(skel->progs.rbtree_add_and_remove_array), &opts); +	ASSERT_OK(ret, "rbtree_add_and_remove_array"); +	ASSERT_OK(opts.retval, "rbtree_add_and_remove_array retval"); + +	rbtree__destroy(skel); +} +  static void test_rbtree_first_and_remove(void)  {  	LIBBPF_OPTS(bpf_test_run_opts, opts, @@ -104,8 +147,12 @@ void test_rbtree_success(void)  {  	if (test__start_subtest("rbtree_add_nodes"))  		test_rbtree_add_nodes(); +	if (test__start_subtest("rbtree_add_nodes_nested")) +		test_rbtree_add_nodes_nested();  	if (test__start_subtest("rbtree_add_and_remove"))  		test_rbtree_add_and_remove(); +	if (test__start_subtest("rbtree_add_and_remove_array")) +		test_rbtree_add_and_remove_array();  	if (test__start_subtest("rbtree_first_and_remove"))  		test_rbtree_first_and_remove();  	if (test__start_subtest("rbtree_api_release_aliasing")) |