Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 // Copyright (c) 2020 Facebook
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 }