cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

snprintf_btf.c (1555B)


      1// SPDX-License-Identifier: GPL-2.0
      2#include <test_progs.h>
      3#include <linux/btf.h>
      4#include "netif_receive_skb.skel.h"
      5
      6/* Demonstrate that bpf_snprintf_btf succeeds and that various data types
      7 * are formatted correctly.
      8 */
      9void serial_test_snprintf_btf(void)
     10{
     11	struct netif_receive_skb *skel;
     12	struct netif_receive_skb__bss *bss;
     13	int err, duration = 0;
     14
     15	skel = netif_receive_skb__open();
     16	if (CHECK(!skel, "skel_open", "failed to open skeleton\n"))
     17		return;
     18
     19	err = netif_receive_skb__load(skel);
     20	if (CHECK(err, "skel_load", "failed to load skeleton: %d\n", err))
     21		goto cleanup;
     22
     23	bss = skel->bss;
     24
     25	err = netif_receive_skb__attach(skel);
     26	if (CHECK(err, "skel_attach", "skeleton attach failed: %d\n", err))
     27		goto cleanup;
     28
     29	/* generate receive event */
     30	err = system("ping -c 1 127.0.0.1 > /dev/null");
     31	if (CHECK(err, "system", "ping failed: %d\n", err))
     32		goto cleanup;
     33
     34	if (bss->skip) {
     35		printf("%s:SKIP:no __builtin_btf_type_id\n", __func__);
     36		test__skip();
     37		goto cleanup;
     38	}
     39
     40	/*
     41	 * Make sure netif_receive_skb program was triggered
     42	 * and it set expected return values from bpf_trace_printk()s
     43	 * and all tests ran.
     44	 */
     45	if (!ASSERT_GT(bss->ret, 0, "bpf_snprintf_ret"))
     46		goto cleanup;
     47
     48	if (CHECK(bss->ran_subtests == 0, "check if subtests ran",
     49		  "no subtests ran, did BPF program run?"))
     50		goto cleanup;
     51
     52	if (CHECK(bss->num_subtests != bss->ran_subtests,
     53		  "check all subtests ran",
     54		  "only ran %d of %d tests\n", bss->num_subtests,
     55		  bss->ran_subtests))
     56		goto cleanup;
     57
     58cleanup:
     59	netif_receive_skb__destroy(skel);
     60}