[PATCH bpf v2] selftests/bpf: remove bash feature in test_xdp_redirect.sh

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

STALE2001d REVIEWED: 1 (0M)

1 review trailer.

5 messages, 4 authors, 2021-02-09 · open the first message on its own page

[PATCH bpf v2] selftests/bpf: remove bash feature in test_xdp_redirect.sh

From: Björn Töpel <hidden>
Date: 2021-02-06 09:28:00

From: Björn Töpel <redacted>

The test_xdp_redirect.sh script uses a bash redirect feature,
'&>/dev/null'. Use '>/dev/null 2>&1' instead.

Also remove the 'set -e' since the script actually relies on that the
return value can be used to determine pass/fail of the test.

Acked-by: William Tu <redacted>
Fixes: 996139e801fd ("selftests: bpf: add a test for XDP redirect")
Signed-off-by: Björn Töpel <redacted>
---
William, I kept your Acked-by.

v2: Kept /bin/sh and removed bashisms. (Randy)
---
 tools/testing/selftests/bpf/test_xdp_redirect.sh | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/tools/testing/selftests/bpf/test_xdp_redirect.sh b/tools/testing/selftests/bpf/test_xdp_redirect.sh
index dd80f0c84afb..4d4887da175c 100755
--- a/tools/testing/selftests/bpf/test_xdp_redirect.sh
+++ b/tools/testing/selftests/bpf/test_xdp_redirect.sh
@@ -46,20 +46,20 @@ test_xdp_redirect()
 
 	setup
 
-	ip link set dev veth1 $xdpmode off &> /dev/null
+	ip link set dev veth1 $xdpmode off >/dev/null 2>&1
 	if [ $? -ne 0 ];then
 		echo "selftests: test_xdp_redirect $xdpmode [SKIP]"
 		return 0
 	fi
 
-	ip -n ns1 link set veth11 $xdpmode obj xdp_dummy.o sec xdp_dummy &> /dev/null
-	ip -n ns2 link set veth22 $xdpmode obj xdp_dummy.o sec xdp_dummy &> /dev/null
-	ip link set dev veth1 $xdpmode obj test_xdp_redirect.o sec redirect_to_222 &> /dev/null
-	ip link set dev veth2 $xdpmode obj test_xdp_redirect.o sec redirect_to_111 &> /dev/null
+	ip -n ns1 link set veth11 $xdpmode obj xdp_dummy.o sec xdp_dummy >/dev/null 2>&1
+	ip -n ns2 link set veth22 $xdpmode obj xdp_dummy.o sec xdp_dummy >/dev/null 2>&1
+	ip link set dev veth1 $xdpmode obj test_xdp_redirect.o sec redirect_to_222 >/dev/null 2>&1
+	ip link set dev veth2 $xdpmode obj test_xdp_redirect.o sec redirect_to_111 >/dev/null 2>&1
 
-	ip netns exec ns1 ping -c 1 10.1.1.22 &> /dev/null
+	ip netns exec ns1 ping -c 1 10.1.1.22 >/dev/null 2>&1
 	local ret1=$?
-	ip netns exec ns2 ping -c 1 10.1.1.11 &> /dev/null
+	ip netns exec ns2 ping -c 1 10.1.1.11 >/dev/null 2>&1
 	local ret2=$?
 
 	if [ $ret1 -eq 0 -a $ret2 -eq 0 ]; then
@@ -72,7 +72,6 @@ test_xdp_redirect()
 	cleanup
 }
 
-set -e
 trap cleanup 2 3 6 9
 
 test_xdp_redirect xdpgeneric
base-commit: 6183f4d3a0a2ad230511987c6c362ca43ec0055f
-- 
2.27.0

Re: [PATCH bpf v2] selftests/bpf: remove bash feature in test_xdp_redirect.sh

From: Randy Dunlap <hidden>
Date: 2021-02-06 16:27:16

On 2/6/21 1:26 AM, Björn Töpel wrote:
From: Björn Töpel <redacted>

The test_xdp_redirect.sh script uses a bash redirect feature,
'&>/dev/null'. Use '>/dev/null 2>&1' instead.

Also remove the 'set -e' since the script actually relies on that the
return value can be used to determine pass/fail of the test.

Acked-by: William Tu <redacted>
Fixes: 996139e801fd ("selftests: bpf: add a test for XDP redirect")
Signed-off-by: Björn Töpel <redacted>
Acked-by: Randy Dunlap <redacted>

Thanks.
quoted hunk
---
William, I kept your Acked-by.

v2: Kept /bin/sh and removed bashisms. (Randy)
---
 tools/testing/selftests/bpf/test_xdp_redirect.sh | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/tools/testing/selftests/bpf/test_xdp_redirect.sh b/tools/testing/selftests/bpf/test_xdp_redirect.sh
index dd80f0c84afb..4d4887da175c 100755
--- a/tools/testing/selftests/bpf/test_xdp_redirect.sh
+++ b/tools/testing/selftests/bpf/test_xdp_redirect.sh
@@ -46,20 +46,20 @@ test_xdp_redirect()
 
 	setup
 
-	ip link set dev veth1 $xdpmode off &> /dev/null
+	ip link set dev veth1 $xdpmode off >/dev/null 2>&1
 	if [ $? -ne 0 ];then
 		echo "selftests: test_xdp_redirect $xdpmode [SKIP]"
 		return 0
 	fi
 
-	ip -n ns1 link set veth11 $xdpmode obj xdp_dummy.o sec xdp_dummy &> /dev/null
-	ip -n ns2 link set veth22 $xdpmode obj xdp_dummy.o sec xdp_dummy &> /dev/null
-	ip link set dev veth1 $xdpmode obj test_xdp_redirect.o sec redirect_to_222 &> /dev/null
-	ip link set dev veth2 $xdpmode obj test_xdp_redirect.o sec redirect_to_111 &> /dev/null
+	ip -n ns1 link set veth11 $xdpmode obj xdp_dummy.o sec xdp_dummy >/dev/null 2>&1
+	ip -n ns2 link set veth22 $xdpmode obj xdp_dummy.o sec xdp_dummy >/dev/null 2>&1
+	ip link set dev veth1 $xdpmode obj test_xdp_redirect.o sec redirect_to_222 >/dev/null 2>&1
+	ip link set dev veth2 $xdpmode obj test_xdp_redirect.o sec redirect_to_111 >/dev/null 2>&1
 
-	ip netns exec ns1 ping -c 1 10.1.1.22 &> /dev/null
+	ip netns exec ns1 ping -c 1 10.1.1.22 >/dev/null 2>&1
 	local ret1=$?
-	ip netns exec ns2 ping -c 1 10.1.1.11 &> /dev/null
+	ip netns exec ns2 ping -c 1 10.1.1.11 >/dev/null 2>&1
 	local ret2=$?
 
 	if [ $ret1 -eq 0 -a $ret2 -eq 0 ]; then
@@ -72,7 +72,6 @@ test_xdp_redirect()
 	cleanup
 }
 
-set -e
 trap cleanup 2 3 6 9
 
 test_xdp_redirect xdpgeneric
base-commit: 6183f4d3a0a2ad230511987c6c362ca43ec0055f

-- 
~Randy

Re: [PATCH bpf v2] selftests/bpf: remove bash feature in test_xdp_redirect.sh

From: Andrii Nakryiko <hidden>
Date: 2021-02-09 05:53:25

On Sat, Feb 6, 2021 at 1:29 AM Björn Töpel [off-list ref] wrote:
From: Björn Töpel <redacted>

The test_xdp_redirect.sh script uses a bash redirect feature,
'&>/dev/null'. Use '>/dev/null 2>&1' instead.
We have plenty of explicit bash uses in selftest scripts, I'm not sure
it's a good idea to make scripts more verbose.
Also remove the 'set -e' since the script actually relies on that the
return value can be used to determine pass/fail of the test.
This sounds like a dubious decision. The script checks return results
only of last two commands, for which it's better to write and if
[<first command>] && [<second command>] check and leave set -e intact.
quoted hunk
Acked-by: William Tu <redacted>
Fixes: 996139e801fd ("selftests: bpf: add a test for XDP redirect")
Signed-off-by: Björn Töpel <redacted>
---
William, I kept your Acked-by.

v2: Kept /bin/sh and removed bashisms. (Randy)
---
 tools/testing/selftests/bpf/test_xdp_redirect.sh | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/tools/testing/selftests/bpf/test_xdp_redirect.sh b/tools/testing/selftests/bpf/test_xdp_redirect.sh
index dd80f0c84afb..4d4887da175c 100755
--- a/tools/testing/selftests/bpf/test_xdp_redirect.sh
+++ b/tools/testing/selftests/bpf/test_xdp_redirect.sh
@@ -46,20 +46,20 @@ test_xdp_redirect()

        setup

-       ip link set dev veth1 $xdpmode off &> /dev/null
+       ip link set dev veth1 $xdpmode off >/dev/null 2>&1
        if [ $? -ne 0 ];then
                echo "selftests: test_xdp_redirect $xdpmode [SKIP]"
                return 0
        fi

-       ip -n ns1 link set veth11 $xdpmode obj xdp_dummy.o sec xdp_dummy &> /dev/null
-       ip -n ns2 link set veth22 $xdpmode obj xdp_dummy.o sec xdp_dummy &> /dev/null
-       ip link set dev veth1 $xdpmode obj test_xdp_redirect.o sec redirect_to_222 &> /dev/null
-       ip link set dev veth2 $xdpmode obj test_xdp_redirect.o sec redirect_to_111 &> /dev/null
+       ip -n ns1 link set veth11 $xdpmode obj xdp_dummy.o sec xdp_dummy >/dev/null 2>&1
+       ip -n ns2 link set veth22 $xdpmode obj xdp_dummy.o sec xdp_dummy >/dev/null 2>&1
+       ip link set dev veth1 $xdpmode obj test_xdp_redirect.o sec redirect_to_222 >/dev/null 2>&1
+       ip link set dev veth2 $xdpmode obj test_xdp_redirect.o sec redirect_to_111 >/dev/null 2>&1

-       ip netns exec ns1 ping -c 1 10.1.1.22 &> /dev/null
+       ip netns exec ns1 ping -c 1 10.1.1.22 >/dev/null 2>&1
        local ret1=$?
-       ip netns exec ns2 ping -c 1 10.1.1.11 &> /dev/null
+       ip netns exec ns2 ping -c 1 10.1.1.11 >/dev/null 2>&1
        local ret2=$?

        if [ $ret1 -eq 0 -a $ret2 -eq 0 ]; then
@@ -72,7 +72,6 @@ test_xdp_redirect()
        cleanup
 }

-set -e
 trap cleanup 2 3 6 9

 test_xdp_redirect xdpgeneric
base-commit: 6183f4d3a0a2ad230511987c6c362ca43ec0055f
--
2.27.0

Re: [PATCH bpf v2] selftests/bpf: remove bash feature in test_xdp_redirect.sh

From: Björn Töpel <hidden>
Date: 2021-02-09 06:42:33

On 2021-02-09 06:52, Andrii Nakryiko wrote:
On Sat, Feb 6, 2021 at 1:29 AM Björn Töpel [off-list ref] wrote:
quoted
From: Björn Töpel <redacted>

The test_xdp_redirect.sh script uses a bash redirect feature,
'&>/dev/null'. Use '>/dev/null 2>&1' instead.
We have plenty of explicit bash uses in selftest scripts, I'm not sure
it's a good idea to make scripts more verbose.
$ cd tools/testing/selftests
$ git grep '\#!/bin/bash'|wc -l
282
$ git grep '\#!/bin/sh'|wc -l
164

Andrii/Randy, I'm fine with whatever. I just want to be able to run the
test on Debian-derived systems. ;-)

quoted
Also remove the 'set -e' since the script actually relies on that the
return value can be used to determine pass/fail of the test.
This sounds like a dubious decision. The script checks return results
only of last two commands, for which it's better to write and if
[<first command>] && [<second command>] check and leave set -e intact.
Ok!

Please decide on the shell flavor, and I'll respin a v3.


Björn

Re: [PATCH bpf v2] selftests/bpf: remove bash feature in test_xdp_redirect.sh

From: Randy Dunlap <hidden>
Date: 2021-02-09 06:56:01

On 2/8/21 10:41 PM, Björn Töpel wrote:
On 2021-02-09 06:52, Andrii Nakryiko wrote:
quoted
On Sat, Feb 6, 2021 at 1:29 AM Björn Töpel [off-list ref] wrote:
quoted
From: Björn Töpel <redacted>

The test_xdp_redirect.sh script uses a bash redirect feature,
'&>/dev/null'. Use '>/dev/null 2>&1' instead.
We have plenty of explicit bash uses in selftest scripts, I'm not sure
it's a good idea to make scripts more verbose.
$ cd tools/testing/selftests
$ git grep '\#!/bin/bash'|wc -l
282
$ git grep '\#!/bin/sh'|wc -l
164

Andrii/Randy, I'm fine with whatever. I just want to be able to run the
test on Debian-derived systems. ;-)

quoted
quoted
Also remove the 'set -e' since the script actually relies on that the
return value can be used to determine pass/fail of the test.
This sounds like a dubious decision. The script checks return results
only of last two commands, for which it's better to write and if
[<first command>] && [<second command>] check and leave set -e intact.
Ok!

Please decide on the shell flavor, and I'll respin a v3.
In general shell scripts in the kernel try not to use bash (we have taken
several patches to convert from /bin/bash to /bin/sh scripts).
OTOH, perf and bpf seem to be large exceptions to this trend,
so it is apparently OK to use bash. :)
Sorry to sidetrack you.

-- 
~Randy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help