Skip to content

Commit

Permalink
selftests/net: Use kselftest skip code for skipped tests
Browse files Browse the repository at this point in the history
There are several test cases in the net directory are still using
exit 0 or exit 1 when they need to be skipped. Use kselftest
framework skip code instead so it can help us to distinguish the
return status.

Criterion to filter out what should be fixed in net directory:
  grep -r "exit [01]" -B1 | grep -i skip

This change might cause some false-positives if people are running
these test scripts directly and only checking their return codes,
which will change from 0 to 4. However I think the impact should be
small as most of our scripts here are already using this skip code.
And there will be no such issue if running them with the kselftest
framework.

Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Tested-by: Ido Schimmel <idosch@nvidia.com>
Link: https://lore.kernel.org/r/20210823085854.40216-1-po-hsu.lin@canonical.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Po-Hsu Lin authored and Jakub Kicinski committed Aug 24, 2021
1 parent 3a62c33 commit 7844ec2
Show file tree
Hide file tree
Showing 12 changed files with 67 additions and 37 deletions.
5 changes: 4 additions & 1 deletion tools/testing/selftests/net/fcnal-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@
#
# server / client nomenclature relative to ns-A

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

VERBOSE=0

NSA_DEV=eth1
Expand Down Expand Up @@ -3974,7 +3977,7 @@ fi
which nettest >/dev/null
if [ $? -ne 0 ]; then
echo "'nettest' command not found; skipping tests"
exit 0
exit $ksft_skip
fi

declare -i nfail=0
Expand Down
7 changes: 5 additions & 2 deletions tools/testing/selftests/net/fib_rule_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

# This test is for checking IPv4 and IPv6 FIB rules API

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

ret=0

PAUSE_ON_FAIL=${PAUSE_ON_FAIL:=no}
Expand Down Expand Up @@ -238,12 +241,12 @@ run_fibrule_tests()

if [ "$(id -u)" -ne 0 ];then
echo "SKIP: Need root privileges"
exit 0
exit $ksft_skip
fi

if [ ! -x "$(command -v ip)" ]; then
echo "SKIP: Could not run test without ip tool"
exit 0
exit $ksft_skip
fi

# start clean
Expand Down
15 changes: 9 additions & 6 deletions tools/testing/selftests/net/forwarding/devlink_lib.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

##############################################################################
# Defines

Expand All @@ -9,11 +12,11 @@ if [[ ! -v DEVLINK_DEV ]]; then
| jq -r '.port | keys[]' | cut -d/ -f-2)
if [ -z "$DEVLINK_DEV" ]; then
echo "SKIP: ${NETIFS[p1]} has no devlink device registered for it"
exit 1
exit $ksft_skip
fi
if [[ "$(echo $DEVLINK_DEV | grep -c pci)" -eq 0 ]]; then
echo "SKIP: devlink device's bus is not PCI"
exit 1
exit $ksft_skip
fi

DEVLINK_VIDDID=$(lspci -s $(echo $DEVLINK_DEV | cut -d"/" -f2) \
Expand All @@ -22,7 +25,7 @@ elif [[ ! -z "$DEVLINK_DEV" ]]; then
devlink dev show $DEVLINK_DEV &> /dev/null
if [ $? -ne 0 ]; then
echo "SKIP: devlink device \"$DEVLINK_DEV\" not found"
exit 1
exit $ksft_skip
fi
fi

Expand All @@ -32,19 +35,19 @@ fi
devlink help 2>&1 | grep resource &> /dev/null
if [ $? -ne 0 ]; then
echo "SKIP: iproute2 too old, missing devlink resource support"
exit 1
exit $ksft_skip
fi

devlink help 2>&1 | grep trap &> /dev/null
if [ $? -ne 0 ]; then
echo "SKIP: iproute2 too old, missing devlink trap support"
exit 1
exit $ksft_skip
fi

devlink dev help 2>&1 | grep info &> /dev/null
if [ $? -ne 0 ]; then
echo "SKIP: iproute2 too old, missing devlink dev info support"
exit 1
exit $ksft_skip
fi

##############################################################################
Expand Down
27 changes: 15 additions & 12 deletions tools/testing/selftests/net/forwarding/lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
##############################################################################
# Defines

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

# Can be overridden by the configuration file.
PING=${PING:=ping}
PING6=${PING6:=ping6}
Expand Down Expand Up @@ -38,7 +41,7 @@ check_tc_version()
tc -j &> /dev/null
if [[ $? -ne 0 ]]; then
echo "SKIP: iproute2 too old; tc is missing JSON support"
exit 1
exit $ksft_skip
fi
}

Expand All @@ -51,7 +54,7 @@ check_tc_mpls_support()
matchall action pipe &> /dev/null
if [[ $? -ne 0 ]]; then
echo "SKIP: iproute2 too old; tc is missing MPLS support"
return 1
return $ksft_skip
fi
tc filter del dev $dev ingress protocol mpls_uc pref 1 handle 1 \
matchall
Expand All @@ -69,7 +72,7 @@ check_tc_mpls_lse_stats()

if [[ $? -ne 0 ]]; then
echo "SKIP: iproute2 too old; tc-flower is missing extended MPLS support"
return 1
return $ksft_skip
fi

tc -j filter show dev $dev ingress protocol mpls_uc | jq . &> /dev/null
Expand All @@ -79,7 +82,7 @@ check_tc_mpls_lse_stats()

if [[ $ret -ne 0 ]]; then
echo "SKIP: iproute2 too old; tc-flower produces invalid json output for extended MPLS filters"
return 1
return $ksft_skip
fi
}

Expand All @@ -88,7 +91,7 @@ check_tc_shblock_support()
tc filter help 2>&1 | grep block &> /dev/null
if [[ $? -ne 0 ]]; then
echo "SKIP: iproute2 too old; tc is missing shared block support"
exit 1
exit $ksft_skip
fi
}

Expand All @@ -97,7 +100,7 @@ check_tc_chain_support()
tc help 2>&1|grep chain &> /dev/null
if [[ $? -ne 0 ]]; then
echo "SKIP: iproute2 too old; tc is missing chain support"
exit 1
exit $ksft_skip
fi
}

Expand All @@ -106,7 +109,7 @@ check_tc_action_hw_stats_support()
tc actions help 2>&1 | grep -q hw_stats
if [[ $? -ne 0 ]]; then
echo "SKIP: iproute2 too old; tc is missing action hw_stats support"
exit 1
exit $ksft_skip
fi
}

Expand All @@ -115,13 +118,13 @@ check_ethtool_lanes_support()
ethtool --help 2>&1| grep lanes &> /dev/null
if [[ $? -ne 0 ]]; then
echo "SKIP: ethtool too old; it is missing lanes support"
exit 1
exit $ksft_skip
fi
}

if [[ "$(id -u)" -ne 0 ]]; then
echo "SKIP: need root privileges"
exit 0
exit $ksft_skip
fi

if [[ "$CHECK_TC" = "yes" ]]; then
Expand All @@ -134,7 +137,7 @@ require_command()

if [[ ! -x "$(command -v "$cmd")" ]]; then
echo "SKIP: $cmd not installed"
exit 1
exit $ksft_skip
fi
}

Expand All @@ -143,7 +146,7 @@ require_command $MZ

if [[ ! -v NUM_NETIFS ]]; then
echo "SKIP: importer does not define \"NUM_NETIFS\""
exit 1
exit $ksft_skip
fi

##############################################################################
Expand Down Expand Up @@ -203,7 +206,7 @@ for ((i = 1; i <= NUM_NETIFS; ++i)); do
ip link show dev ${NETIFS[p$i]} &> /dev/null
if [[ $? -ne 0 ]]; then
echo "SKIP: could not find all required interfaces"
exit 1
exit $ksft_skip
fi
done

Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/net/forwarding/router_mpath_nh.sh
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ ping_ipv6()
ip nexthop ls >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "Nexthop objects not supported; skipping tests"
exit 0
exit $ksft_skip
fi

trap cleanup EXIT
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ ping_ipv6()
ip nexthop ls >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "Nexthop objects not supported; skipping tests"
exit 0
exit $ksft_skip
fi

trap cleanup EXIT
Expand Down
5 changes: 4 additions & 1 deletion tools/testing/selftests/net/run_afpackettests
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

if [ $(id -u) != 0 ]; then
echo $msg must be run as root >&2
exit 0
exit $ksft_skip
fi

ret=0
Expand Down
9 changes: 6 additions & 3 deletions tools/testing/selftests/net/srv6_end_dt46_l3vpn_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,9 @@
# +---------------------------------------------------+
#

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

readonly LOCALSID_TABLE_ID=90
readonly IPv6_RT_NETWORK=fd00
readonly IPv6_HS_NETWORK=cafe
Expand Down Expand Up @@ -543,18 +546,18 @@ host_vpn_isolation_tests()

if [ "$(id -u)" -ne 0 ];then
echo "SKIP: Need root privileges"
exit 0
exit $ksft_skip
fi

if [ ! -x "$(command -v ip)" ]; then
echo "SKIP: Could not run test without ip tool"
exit 0
exit $ksft_skip
fi

modprobe vrf &>/dev/null
if [ ! -e /proc/sys/net/vrf/strict_mode ]; then
echo "SKIP: vrf sysctl does not exist"
exit 0
exit $ksft_skip
fi

cleanup &>/dev/null
Expand Down
9 changes: 6 additions & 3 deletions tools/testing/selftests/net/srv6_end_dt4_l3vpn_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,9 @@
# +---------------------------------------------------+
#

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

readonly LOCALSID_TABLE_ID=90
readonly IPv6_RT_NETWORK=fd00
readonly IPv4_HS_NETWORK=10.0.0
Expand Down Expand Up @@ -464,18 +467,18 @@ host_vpn_isolation_tests()

if [ "$(id -u)" -ne 0 ];then
echo "SKIP: Need root privileges"
exit 0
exit $ksft_skip
fi

if [ ! -x "$(command -v ip)" ]; then
echo "SKIP: Could not run test without ip tool"
exit 0
exit $ksft_skip
fi

modprobe vrf &>/dev/null
if [ ! -e /proc/sys/net/vrf/strict_mode ]; then
echo "SKIP: vrf sysctl does not exist"
exit 0
exit $ksft_skip
fi

cleanup &>/dev/null
Expand Down
9 changes: 6 additions & 3 deletions tools/testing/selftests/net/srv6_end_dt6_l3vpn_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,9 @@
# +---------------------------------------------------+
#

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

readonly LOCALSID_TABLE_ID=90
readonly IPv6_RT_NETWORK=fd00
readonly IPv6_HS_NETWORK=cafe
Expand Down Expand Up @@ -472,18 +475,18 @@ host_vpn_isolation_tests()

if [ "$(id -u)" -ne 0 ];then
echo "SKIP: Need root privileges"
exit 0
exit $ksft_skip
fi

if [ ! -x "$(command -v ip)" ]; then
echo "SKIP: Could not run test without ip tool"
exit 0
exit $ksft_skip
fi

modprobe vrf &>/dev/null
if [ ! -e /proc/sys/net/vrf/strict_mode ]; then
echo "SKIP: vrf sysctl does not exist"
exit 0
exit $ksft_skip
fi

cleanup &>/dev/null
Expand Down
5 changes: 4 additions & 1 deletion tools/testing/selftests/net/unicast_extensions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,15 @@
# These tests provide an easy way to flip the expected result of any
# of these behaviors for testing kernel patches that change them.

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

# nettest can be run from PATH or from same directory as this selftest
if ! which nettest >/dev/null; then
PATH=$PWD:$PATH
if ! which nettest >/dev/null; then
echo "'nettest' command not found; skipping tests"
exit 0
exit $ksft_skip
fi
fi

Expand Down
9 changes: 6 additions & 3 deletions tools/testing/selftests/net/vrf_strict_mode_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

# This test is designed for testing the new VRF strict_mode functionality.

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

ret=0

# identifies the "init" network namespace which is often called root network
Expand Down Expand Up @@ -371,18 +374,18 @@ vrf_strict_mode_check_support()

if [ "$(id -u)" -ne 0 ];then
echo "SKIP: Need root privileges"
exit 0
exit $ksft_skip
fi

if [ ! -x "$(command -v ip)" ]; then
echo "SKIP: Could not run test without ip tool"
exit 0
exit $ksft_skip
fi

modprobe vrf &>/dev/null
if [ ! -e /proc/sys/net/vrf/strict_mode ]; then
echo "SKIP: vrf sysctl does not exist"
exit 0
exit $ksft_skip
fi

cleanup &> /dev/null
Expand Down

0 comments on commit 7844ec2

Please sign in to comment.