forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.3 KiB
67 lines
1.3 KiB
#!/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 |
|
|
|
if [ "$building_out_of_srctree" ]; then |
|
# We are in linux-build/kselftest/bpf |
|
OUTPUT=../../ |
|
else |
|
# We are in linux/tools/testing/selftests/bpf |
|
OUTPUT=../../../../ |
|
fi |
|
|
|
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 ${OUTPUT}/lib/test_bpf.ko ]; then |
|
insmod ${OUTPUT}/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
|
|
|