selftests: rtnetlink: Make the set of tests to run configurable

Extract the list of all tests into a variable, ALL_TESTS. Then assume the
environment variable TESTS holds the list of tests to actually run, falling
back to ALL_TESTS if TESTS is empty. This is the same interface that
forwarding selftests use to make the set of tests to run configurable.
In addition to this, allow setting the value explicitly through a command
line option "-t" along the lines of what fib_nexthops.sh does.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Petr Machata 2023-03-21 12:52:00 +01:00 committed by David S. Miller
parent 5c4a9aa856
commit ecb3c1e675

View file

@ -4,6 +4,30 @@
#
# set -e
ALL_TESTS="
kci_test_polrouting
kci_test_route_get
kci_test_addrlft
kci_test_promote_secondaries
kci_test_tc
kci_test_gre
kci_test_gretap
kci_test_ip6gretap
kci_test_erspan
kci_test_ip6erspan
kci_test_bridge
kci_test_addrlabel
kci_test_ifalias
kci_test_vrf
kci_test_encap
kci_test_macsec
kci_test_ipsec
kci_test_ipsec_offload
kci_test_fdb_get
kci_test_neigh_get
kci_test_bridge_parent_id
"
devdummy="test-dummy0"
# Kselftest framework requirement - SKIP code is 4.
@ -1227,60 +1251,34 @@ kci_test_bridge_parent_id()
kci_test_rtnl()
{
local current_test
local ret=0
kci_add_dummy
if [ $ret -ne 0 ];then
echo "FAIL: cannot add dummy interface"
return 1
fi
kci_test_polrouting
check_err $?
kci_test_route_get
check_err $?
kci_test_addrlft
check_err $?
kci_test_promote_secondaries
check_err $?
kci_test_tc
check_err $?
kci_test_gre
check_err $?
kci_test_gretap
check_err $?
kci_test_ip6gretap
check_err $?
kci_test_erspan
check_err $?
kci_test_ip6erspan
check_err $?
kci_test_bridge
check_err $?
kci_test_addrlabel
check_err $?
kci_test_ifalias
check_err $?
kci_test_vrf
check_err $?
kci_test_encap
check_err $?
kci_test_macsec
check_err $?
kci_test_ipsec
check_err $?
kci_test_ipsec_offload
check_err $?
kci_test_fdb_get
check_err $?
kci_test_neigh_get
check_err $?
kci_test_bridge_parent_id
check_err $?
for current_test in ${TESTS:-$ALL_TESTS}; do
$current_test
check_err $?
done
kci_del_dummy
return $ret
}
usage()
{
cat <<EOF
usage: ${0##*/} OPTS
-t <test> Test(s) to run (default: all)
(options: $(echo $ALL_TESTS))
EOF
}
#check for needed privileges
if [ "$(id -u)" -ne 0 ];then
echo "SKIP: Need root privileges"
@ -1295,6 +1293,14 @@ for x in ip tc;do
fi
done
while getopts t:h o; do
case $o in
t) TESTS=$OPTARG;;
h) usage; exit 0;;
*) usage; exit 1;;
esac
done
kci_test_rtnl
exit $?