brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · 23552d3 Raw
42 lines · c
1// SPDX-License-Identifier: GPL-2.02/* Copyright (c) 2021 Facebook */3#include <test_progs.h>4#include "recursion.skel.h"5 6void test_recursion(void)7{8	struct bpf_prog_info prog_info = {};9	__u32 prog_info_len = sizeof(prog_info);10	struct recursion *skel;11	int key = 0;12	int err;13 14	skel = recursion__open_and_load();15	if (!ASSERT_OK_PTR(skel, "skel_open_and_load"))16		return;17 18	err = recursion__attach(skel);19	if (!ASSERT_OK(err, "skel_attach"))20		goto out;21 22	ASSERT_EQ(skel->bss->pass1, 0, "pass1 == 0");23	bpf_map_delete_elem(bpf_map__fd(skel->maps.hash1), &key);24	ASSERT_EQ(skel->bss->pass1, 1, "pass1 == 1");25	bpf_map_delete_elem(bpf_map__fd(skel->maps.hash1), &key);26	ASSERT_EQ(skel->bss->pass1, 2, "pass1 == 2");27 28	ASSERT_EQ(skel->bss->pass2, 0, "pass2 == 0");29	bpf_map_delete_elem(bpf_map__fd(skel->maps.hash2), &key);30	ASSERT_EQ(skel->bss->pass2, 1, "pass2 == 1");31	bpf_map_delete_elem(bpf_map__fd(skel->maps.hash2), &key);32	ASSERT_EQ(skel->bss->pass2, 2, "pass2 == 2");33 34	err = bpf_prog_get_info_by_fd(bpf_program__fd(skel->progs.on_delete),35				      &prog_info, &prog_info_len);36	if (!ASSERT_OK(err, "get_prog_info"))37		goto out;38	ASSERT_EQ(prog_info.recursion_misses, 2, "recursion_misses");39out:40	recursion__destroy(skel);41}42