[PATCH] selftests: bpf: test_kmod.sh: check the module path before insmod

Subsystems: bpf [general] (safe dynamic programs and tools), bpf [selftests] (test runners & infrastructure), kernel selftest framework, the rest

STALE3123d

3 messages, 2 authors, 2018-02-07 · open the first message on its own page

[PATCH] selftests: bpf: test_kmod.sh: check the module path before insmod

From: Naresh Kamboju <hidden>
Date: 2018-02-06 21:07:31

test_kmod.sh reported false failure when module not present.
Check test_bpf.ko is present in the path before loading it.

Stop using "insmod $SRC_TREE/lib/test_bpf.ko" instead use
"modprobe test_bpf"

Signed-off-by: Naresh Kamboju <redacted>
---
 tools/testing/selftests/bpf/test_kmod.sh | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/bpf/test_kmod.sh b/tools/testing/selftests/bpf/test_kmod.sh
index ed4774d..54177b1 100755
--- a/tools/testing/selftests/bpf/test_kmod.sh
+++ b/tools/testing/selftests/bpf/test_kmod.sh
@@ -1,8 +1,6 @@
 #!/bin/sh
 # SPDX-License-Identifier: GPL-2.0
 
-SRC_TREE=../../../../
-
 test_run()
 {
 	sysctl -w net.core.bpf_jit_enable=$1 2>&1 > /dev/null
@@ -10,8 +8,13 @@ test_run()
 
 	echo "[ JIT enabled:$1 hardened:$2 ]"
 	dmesg -C
-	insmod $SRC_TREE/lib/test_bpf.ko 2> /dev/null
-	if [ $? -ne 0 ]; then
+	# 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
 	rmmod  test_bpf 2> /dev/null
-- 
2.7.4

Re: [PATCH] selftests: bpf: test_kmod.sh: check the module path before insmod

From: Daniel Borkmann <daniel@iogearbox.net>
Date: 2018-02-07 13:32:47

Hi Naresh,

On 02/06/2018 10:07 PM, Naresh Kamboju wrote:
test_kmod.sh reported false failure when module not present.
Check test_bpf.ko is present in the path before loading it.

Stop using "insmod $SRC_TREE/lib/test_bpf.ko" instead use
"modprobe test_bpf"

Signed-off-by: Naresh Kamboju <redacted>
Thanks for looking into this! Could we have a way to be able to
support both? Say, when test_bpf.ko from SRC_TREE is not present,
we try with modprobe -q fallback? I would still like to support
the case where you can make local changes and add new tests to
test_bpf.c, recompile and then just rerun the test_kmod.sh w/o
having to install it first.

Thanks,
Daniel
quoted hunk
 tools/testing/selftests/bpf/test_kmod.sh | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/bpf/test_kmod.sh b/tools/testing/selftests/bpf/test_kmod.sh
index ed4774d..54177b1 100755
--- a/tools/testing/selftests/bpf/test_kmod.sh
+++ b/tools/testing/selftests/bpf/test_kmod.sh
@@ -1,8 +1,6 @@
 #!/bin/sh
 # SPDX-License-Identifier: GPL-2.0
 
-SRC_TREE=../../../../
-
 test_run()
 {
 	sysctl -w net.core.bpf_jit_enable=$1 2>&1 > /dev/null
@@ -10,8 +8,13 @@ test_run()
 
 	echo "[ JIT enabled:$1 hardened:$2 ]"
 	dmesg -C
-	insmod $SRC_TREE/lib/test_bpf.ko 2> /dev/null
-	if [ $? -ne 0 ]; then
+	# 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
 	rmmod  test_bpf 2> /dev/null

Re: [PATCH] selftests: bpf: test_kmod.sh: check the module path before insmod

From: Naresh Kamboju <hidden>
Date: 2018-02-07 18:17:18

Hi Daniel,

On 7 February 2018 at 19:02, Daniel Borkmann [off-list ref] wrote:
Hi Naresh,

On 02/06/2018 10:07 PM, Naresh Kamboju wrote:
quoted
test_kmod.sh reported false failure when module not present.
Check test_bpf.ko is present in the path before loading it.

Stop using "insmod $SRC_TREE/lib/test_bpf.ko" instead use
"modprobe test_bpf"

Signed-off-by: Naresh Kamboju <redacted>
Thanks for looking into this! Could we have a way to be able to
support both? Say, when test_bpf.ko from SRC_TREE is not present,
we try with modprobe -q fallback? I would still like to support
the case where you can make local changes and add new tests to
test_bpf.c, recompile and then just rerun the test_kmod.sh w/o
having to install it first.
Thanks for the review comments.
I have sent patch v2 with your comments addressed.

- Naresh
Thanks,
Daniel
quoted
 tools/testing/selftests/bpf/test_kmod.sh | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/bpf/test_kmod.sh b/tools/testing/selftests/bpf/test_kmod.sh
index ed4774d..54177b1 100755
--- a/tools/testing/selftests/bpf/test_kmod.sh
+++ b/tools/testing/selftests/bpf/test_kmod.sh
@@ -1,8 +1,6 @@
 #!/bin/sh
 # SPDX-License-Identifier: GPL-2.0

-SRC_TREE=../../../../
-
 test_run()
 {
      sysctl -w net.core.bpf_jit_enable=$1 2>&1 > /dev/null
@@ -10,8 +8,13 @@ test_run()

      echo "[ JIT enabled:$1 hardened:$2 ]"
      dmesg -C
-     insmod $SRC_TREE/lib/test_bpf.ko 2> /dev/null
-     if [ $? -ne 0 ]; then
+     # 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
      rmmod  test_bpf 2> /dev/null
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help