Rolf Eike Beer | d979e13 | 2016-12-14 11:58:20 +0100 | [diff] [blame] | 1 | #!/bin/sh |
Greg Kroah-Hartman | b244131 | 2017-11-01 15:07:57 +0100 | [diff] [blame] | 2 | # SPDX-License-Identifier: GPL-2.0 |
Daniel Borkmann | 5aa5bd1 | 2016-10-17 14:28:36 +0200 | [diff] [blame] | 3 | |
Jeffrin Jose T | 81e167c | 2018-06-21 22:30:20 +0530 | [diff] [blame] | 4 | # Kselftest framework requirement - SKIP code is 4. |
| 5 | ksft_skip=4 |
| 6 | |
| 7 | msg="skip all tests:" |
| 8 | if [ "$(id -u)" != "0" ]; then |
| 9 | echo $msg please run this as root >&2 |
| 10 | exit $ksft_skip |
| 11 | fi |
| 12 | |
Ilya Leoshkevich | 2ea4859 | 2020-07-17 18:53:22 +0200 | [diff] [blame] | 13 | if [ "$building_out_of_srctree" ]; then |
| 14 | # We are in linux-build/kselftest/bpf |
| 15 | OUTPUT=../../ |
| 16 | else |
| 17 | # We are in linux/tools/testing/selftests/bpf |
| 18 | OUTPUT=../../../../ |
| 19 | fi |
Daniel Borkmann | 5aa5bd1 | 2016-10-17 14:28:36 +0200 | [diff] [blame] | 20 | |
| 21 | test_run() |
| 22 | { |
| 23 | sysctl -w net.core.bpf_jit_enable=$1 2>&1 > /dev/null |
| 24 | sysctl -w net.core.bpf_jit_harden=$2 2>&1 > /dev/null |
| 25 | |
| 26 | echo "[ JIT enabled:$1 hardened:$2 ]" |
| 27 | dmesg -C |
Ilya Leoshkevich | 2ea4859 | 2020-07-17 18:53:22 +0200 | [diff] [blame] | 28 | if [ -f ${OUTPUT}/lib/test_bpf.ko ]; then |
| 29 | insmod ${OUTPUT}/lib/test_bpf.ko 2> /dev/null |
Naresh Kamboju | 035d808 | 2018-02-07 23:45:34 +0530 | [diff] [blame] | 30 | if [ $? -ne 0 ]; then |
| 31 | rc=1 |
| 32 | fi |
| 33 | else |
| 34 | # Use modprobe dry run to check for missing test_bpf module |
| 35 | if ! /sbin/modprobe -q -n test_bpf; then |
| 36 | echo "test_bpf: [SKIP]" |
| 37 | elif /sbin/modprobe -q test_bpf; then |
| 38 | echo "test_bpf: ok" |
| 39 | else |
| 40 | echo "test_bpf: [FAIL]" |
| 41 | rc=1 |
| 42 | fi |
Daniel Borkmann | 5aa5bd1 | 2016-10-17 14:28:36 +0200 | [diff] [blame] | 43 | fi |
| 44 | rmmod test_bpf 2> /dev/null |
| 45 | dmesg | grep FAIL |
| 46 | } |
| 47 | |
| 48 | test_save() |
| 49 | { |
| 50 | JE=`sysctl -n net.core.bpf_jit_enable` |
| 51 | JH=`sysctl -n net.core.bpf_jit_harden` |
| 52 | } |
| 53 | |
| 54 | test_restore() |
| 55 | { |
| 56 | sysctl -w net.core.bpf_jit_enable=$JE 2>&1 > /dev/null |
| 57 | sysctl -w net.core.bpf_jit_harden=$JH 2>&1 > /dev/null |
| 58 | } |
| 59 | |
| 60 | rc=0 |
| 61 | test_save |
| 62 | test_run 0 0 |
| 63 | test_run 1 0 |
| 64 | test_run 1 1 |
| 65 | test_run 1 2 |
| 66 | test_restore |
| 67 | exit $rc |