OSDN Git Service

selftests: bpf: test_kmod.sh: check the module path before insmod
authorNaresh Kamboju <naresh.kamboju@linaro.org>
Wed, 7 Feb 2018 18:15:34 +0000 (23:45 +0530)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 7 Feb 2018 23:24:55 +0000 (00:24 +0100)
test_kmod.sh reported false failure when module not present.
Check test_bpf.ko is present in the path before loading it.

Two cases to be addressed here,
In the development process of test_bpf.c unit testing will be done by
developers by using "insmod $SRC_TREE/lib/test_bpf.ko"

On the other hand testers run full tests by installing modules on device
under test (DUT) and followed by modprobe to insert the modules accordingly.

Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
tools/testing/selftests/bpf/test_kmod.sh

index ed4774d..35669cc 100755 (executable)
@@ -10,9 +10,21 @@ test_run()
 
        echo "[ JIT enabled:$1 hardened:$2 ]"
        dmesg -C
-       insmod $SRC_TREE/lib/test_bpf.ko 2> /dev/null
-       if [ $? -ne 0 ]; then
-               rc=1
+       if [ -f ${SRC_TREE}/lib/test_bpf.ko ]; then
+               insmod ${SRC_TREE}/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