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