selftests: mptcp: join: check for tools only if needed
authorMatthieu Baerts <matthieu.baerts@tessares.net>
Fri, 18 Feb 2022 03:03:10 +0000 (19:03 -0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 18 Feb 2022 03:59:59 +0000 (19:59 -0800)
To allow showing the 'help' menu even if these tools are not available.

While at it, also avoid launching the command then checking $?. Instead,
the check is directly done in the 'if'.

Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/mptcp/mptcp_join.sh

index 63340bb..7259240 100755 (executable)
@@ -99,9 +99,29 @@ cleanup_partial()
        done
 }
 
+check_tools()
+{
+       if ! ip -Version &> /dev/null; then
+               echo "SKIP: Could not run test without ip tool"
+               exit $ksft_skip
+       fi
+
+       if ! iptables -V &> /dev/null; then
+               echo "SKIP: Could not run all tests without iptables tool"
+               exit $ksft_skip
+       fi
+
+       if ! ip6tables -V &> /dev/null; then
+               echo "SKIP: Could not run all tests without ip6tables tool"
+               exit $ksft_skip
+       fi
+}
+
 init() {
        init=1
 
+       check_tools
+
        sin=$(mktemp)
        sout=$(mktemp)
        cin=$(mktemp)
@@ -183,24 +203,6 @@ reset_with_allow_join_id0()
        ip netns exec $ns2 sysctl -q net.mptcp.allow_join_initial_addr_port=$ns2_enable
 }
 
-ip -Version > /dev/null 2>&1
-if [ $? -ne 0 ];then
-       echo "SKIP: Could not run test without ip tool"
-       exit $ksft_skip
-fi
-
-iptables -V > /dev/null 2>&1
-if [ $? -ne 0 ];then
-       echo "SKIP: Could not run all tests without iptables tool"
-       exit $ksft_skip
-fi
-
-ip6tables -V > /dev/null 2>&1
-if [ $? -ne 0 ];then
-       echo "SKIP: Could not run all tests without ip6tables tool"
-       exit $ksft_skip
-fi
-
 print_file_err()
 {
        ls -l "$1" 1>&2