| #!/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 |