0001
0002
0003
0004 #include <test_progs.h>
0005 #include <network_helpers.h>
0006
0007 #include "map_ptr_kern.lskel.h"
0008
0009 void test_map_ptr(void)
0010 {
0011 struct map_ptr_kern_lskel *skel;
0012 char buf[128];
0013 int err;
0014 int page_size = getpagesize();
0015 LIBBPF_OPTS(bpf_test_run_opts, topts,
0016 .data_in = &pkt_v4,
0017 .data_size_in = sizeof(pkt_v4),
0018 .data_out = buf,
0019 .data_size_out = sizeof(buf),
0020 .repeat = 1,
0021 );
0022
0023 skel = map_ptr_kern_lskel__open();
0024 if (!ASSERT_OK_PTR(skel, "skel_open"))
0025 return;
0026
0027 skel->maps.m_ringbuf.max_entries = page_size;
0028
0029 err = map_ptr_kern_lskel__load(skel);
0030 if (!ASSERT_OK(err, "skel_load"))
0031 goto cleanup;
0032
0033 skel->bss->page_size = page_size;
0034
0035 err = bpf_prog_test_run_opts(skel->progs.cg_skb.prog_fd, &topts);
0036
0037 if (!ASSERT_OK(err, "test_run"))
0038 goto cleanup;
0039
0040 if (!ASSERT_NEQ(topts.retval, 0, "test_run retval"))
0041 goto cleanup;
0042
0043 cleanup:
0044 map_ptr_kern_lskel__destroy(skel);
0045 }