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

test_bpftool_metadata.sh (1597B)


      1#!/bin/sh
      2# SPDX-License-Identifier: GPL-2.0
      3
      4# Kselftest framework requirement - SKIP code is 4.
      5ksft_skip=4
      6
      7TESTNAME=bpftool_metadata
      8BPF_FS=$(awk '$3 == "bpf" {print $2; exit}' /proc/mounts)
      9BPF_DIR=$BPF_FS/test_$TESTNAME
     10
     11_cleanup()
     12{
     13	set +e
     14	rm -rf $BPF_DIR 2> /dev/null
     15}
     16
     17cleanup_skip()
     18{
     19	echo "selftests: $TESTNAME [SKIP]"
     20	_cleanup
     21
     22	exit $ksft_skip
     23}
     24
     25cleanup()
     26{
     27	if [ "$?" = 0 ]; then
     28		echo "selftests: $TESTNAME [PASS]"
     29	else
     30		echo "selftests: $TESTNAME [FAILED]"
     31	fi
     32	_cleanup
     33}
     34
     35if [ $(id -u) -ne 0 ]; then
     36	echo "selftests: $TESTNAME [SKIP] Need root privileges"
     37	exit $ksft_skip
     38fi
     39
     40if [ -z "$BPF_FS" ]; then
     41	echo "selftests: $TESTNAME [SKIP] Could not run test without bpffs mounted"
     42	exit $ksft_skip
     43fi
     44
     45if ! bpftool version > /dev/null 2>&1; then
     46	echo "selftests: $TESTNAME [SKIP] Could not run test without bpftool"
     47	exit $ksft_skip
     48fi
     49
     50set -e
     51
     52trap cleanup_skip EXIT
     53
     54mkdir $BPF_DIR
     55
     56trap cleanup EXIT
     57
     58bpftool prog load metadata_unused.o $BPF_DIR/unused
     59
     60METADATA_PLAIN="$(bpftool prog)"
     61echo "$METADATA_PLAIN" | grep 'a = "foo"' > /dev/null
     62echo "$METADATA_PLAIN" | grep 'b = 1' > /dev/null
     63
     64bpftool prog --json | grep '"metadata":{"a":"foo","b":1}' > /dev/null
     65
     66bpftool map | grep 'metadata.rodata' > /dev/null
     67
     68rm $BPF_DIR/unused
     69
     70bpftool prog load metadata_used.o $BPF_DIR/used
     71
     72METADATA_PLAIN="$(bpftool prog)"
     73echo "$METADATA_PLAIN" | grep 'a = "bar"' > /dev/null
     74echo "$METADATA_PLAIN" | grep 'b = 2' > /dev/null
     75
     76bpftool prog --json | grep '"metadata":{"a":"bar","b":2}' > /dev/null
     77
     78bpftool map | grep 'metadata.rodata' > /dev/null
     79
     80rm $BPF_DIR/used
     81
     82exit 0