#!/bin/sh # SPDX-License-Identifier: GPL-2.0 # Kselftest framework requirement - SKIP code is 4. ksft_skip=4 msg="skip all tests:" if [ "$(id -u)" != "0" ]; then echo $msg please run this as root >&2 exit $ksft_skip fi SRC_TREE=../../../../ test_run() { sysctl -w net.core.bpf_jit_enable=$1 2>&1 > /dev/null sysctl -w net.core.bpf_jit_harden=$2 2>&1 > /dev/null echo "[ JIT enabled:$1 hardened:$2 ]" dmesg -C if [ -f ${SRC_TREE}/lib/test_bpf.ko ]; then insmod ${SRC_TREE}/lib/test_bpf.ko 2> /dev/null if [ $? -ne 0 ]; then rc=1 fi else # Use modprobe dry run to check for missing test_bpf module if ! /sbin/modprobe -q -n test_bpf; then echo "test_bpf: [SKIP]" elif /sbin/modprobe -q test_bpf; then echo "test_bpf: ok" else echo "test_bpf: [FAIL]" rc=1 fi fi rmmod test_bpf 2> /dev/null dmesg | grep FAIL } test_save() { JE=`sysctl -n net.core.bpf_jit_enable` JH=`sysctl -n net.core.bpf_jit_harden` } test_restore() { sysctl -w net.core.bpf_jit_enable=$JE 2>&1 > /dev/null sysctl -w net.core.bpf_jit_harden=$JH 2>&1 > /dev/null } rc=0 test_save test_run 0 0 test_run 1 0 test_run 1 1 test_run 1 2 test_restore exit $rc