12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/bin/sh
- # SPDX-License-Identifier: GPL-2.0
- # Usage:
- # ./test_kmod.sh [module_param]...
- # Ex.: ./test_kmod.sh test_range=1,3
- # All the parameters are passed to the kernel module.
- # 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 ]"
- shift 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
|