test_kmod.sh 996 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0
  3. SRC_TREE=../../../../
  4. test_run()
  5. {
  6. sysctl -w net.core.bpf_jit_enable=$1 2>&1 > /dev/null
  7. sysctl -w net.core.bpf_jit_harden=$2 2>&1 > /dev/null
  8. echo "[ JIT enabled:$1 hardened:$2 ]"
  9. dmesg -C
  10. if [ -f ${SRC_TREE}/lib/test_bpf.ko ]; then
  11. insmod ${SRC_TREE}/lib/test_bpf.ko 2> /dev/null
  12. if [ $? -ne 0 ]; then
  13. rc=1
  14. fi
  15. else
  16. # Use modprobe dry run to check for missing test_bpf module
  17. if ! /sbin/modprobe -q -n test_bpf; then
  18. echo "test_bpf: [SKIP]"
  19. elif /sbin/modprobe -q test_bpf; then
  20. echo "test_bpf: ok"
  21. else
  22. echo "test_bpf: [FAIL]"
  23. rc=1
  24. fi
  25. fi
  26. rmmod test_bpf 2> /dev/null
  27. dmesg | grep FAIL
  28. }
  29. test_save()
  30. {
  31. JE=`sysctl -n net.core.bpf_jit_enable`
  32. JH=`sysctl -n net.core.bpf_jit_harden`
  33. }
  34. test_restore()
  35. {
  36. sysctl -w net.core.bpf_jit_enable=$JE 2>&1 > /dev/null
  37. sysctl -w net.core.bpf_jit_harden=$JH 2>&1 > /dev/null
  38. }
  39. rc=0
  40. test_save
  41. test_run 0 0
  42. test_run 1 0
  43. test_run 1 1
  44. test_run 1 2
  45. test_restore
  46. exit $rc