selftests: net: return Kselftest Skip code for skipped tests

When net test is skipped because of unmet dependencies and/or unsupported
configuration, it returns 0 which is treated as a pass by the Kselftest
framework. This leads to false positive result even when the test could
not be run.

Change it to return kselftest skip code when a test gets skipped to
clearly report that the test could not be run.

Kselftest framework SKIP code is 4 and the framework prints appropriate
messages to indicate that the test is skipped.

Change psock_tpacket to use ksft_exit_skip() when a non-root user runs
the test and add an explicit check for root and a clear message, instead
of failing the test when /sys/power/state file open fails.
Signed-off-by: default avatarShuah Khan (Samsung OSG) <shuah@kernel.org>
parent e6ee6ae4
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
# different events. # different events.
ret=0 ret=0
# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4
VERBOSE=${VERBOSE:=0} VERBOSE=${VERBOSE:=0}
PAUSE_ON_FAIL=${PAUSE_ON_FAIL:=no} PAUSE_ON_FAIL=${PAUSE_ON_FAIL:=no}
...@@ -579,18 +581,18 @@ fib_test() ...@@ -579,18 +581,18 @@ fib_test()
if [ "$(id -u)" -ne 0 ];then if [ "$(id -u)" -ne 0 ];then
echo "SKIP: Need root privileges" echo "SKIP: Need root privileges"
exit 0 exit $ksft_skip;
fi fi
if [ ! -x "$(command -v ip)" ]; then if [ ! -x "$(command -v ip)" ]; then
echo "SKIP: Could not run test without ip tool" echo "SKIP: Could not run test without ip tool"
exit 0 exit $ksft_skip
fi fi
ip route help 2>&1 | grep -q fibmatch ip route help 2>&1 | grep -q fibmatch
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "SKIP: iproute2 too old, missing fibmatch" echo "SKIP: iproute2 too old, missing fibmatch"
exit 0 exit $ksft_skip
fi fi
# start clean # start clean
......
...@@ -8,6 +8,9 @@ ...@@ -8,6 +8,9 @@
# if not they probably have failed earlier in the boot process and their logged error will be catched by another test # if not they probably have failed earlier in the boot process and their logged error will be catched by another test
# #
# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4
# this function will try to up the interface # this function will try to up the interface
# if already up, nothing done # if already up, nothing done
# arg1: network interface name # arg1: network interface name
...@@ -18,7 +21,7 @@ kci_net_start() ...@@ -18,7 +21,7 @@ kci_net_start()
ip link show "$netdev" |grep -q UP ip link show "$netdev" |grep -q UP
if [ $? -eq 0 ];then if [ $? -eq 0 ];then
echo "SKIP: $netdev: interface already up" echo "SKIP: $netdev: interface already up"
return 0 return $ksft_skip
fi fi
ip link set "$netdev" up ip link set "$netdev" up
...@@ -61,12 +64,12 @@ kci_net_setup() ...@@ -61,12 +64,12 @@ kci_net_setup()
ip address show "$netdev" |grep '^[[:space:]]*inet' ip address show "$netdev" |grep '^[[:space:]]*inet'
if [ $? -eq 0 ];then if [ $? -eq 0 ];then
echo "SKIP: $netdev: already have an IP" echo "SKIP: $netdev: already have an IP"
return 0 return $ksft_skip
fi fi
# TODO what ipaddr to set ? DHCP ? # TODO what ipaddr to set ? DHCP ?
echo "SKIP: $netdev: set IP address" echo "SKIP: $netdev: set IP address"
return 0 return $ksft_skip
} }
# test an ethtool command # test an ethtool command
...@@ -84,6 +87,7 @@ kci_netdev_ethtool_test() ...@@ -84,6 +87,7 @@ kci_netdev_ethtool_test()
if [ $ret -ne 0 ];then if [ $ret -ne 0 ];then
if [ $ret -eq "$1" ];then if [ $ret -eq "$1" ];then
echo "SKIP: $netdev: ethtool $2 not supported" echo "SKIP: $netdev: ethtool $2 not supported"
return $ksft_skip
else else
echo "FAIL: $netdev: ethtool $2" echo "FAIL: $netdev: ethtool $2"
return 1 return 1
...@@ -104,7 +108,7 @@ kci_netdev_ethtool() ...@@ -104,7 +108,7 @@ kci_netdev_ethtool()
ethtool --version 2>/dev/null >/dev/null ethtool --version 2>/dev/null >/dev/null
if [ $? -ne 0 ];then if [ $? -ne 0 ];then
echo "SKIP: ethtool not present" echo "SKIP: ethtool not present"
return 1 return $ksft_skip
fi fi
TMP_ETHTOOL_FEATURES="$(mktemp)" TMP_ETHTOOL_FEATURES="$(mktemp)"
...@@ -176,13 +180,13 @@ kci_test_netdev() ...@@ -176,13 +180,13 @@ kci_test_netdev()
#check for needed privileges #check for needed privileges
if [ "$(id -u)" -ne 0 ];then if [ "$(id -u)" -ne 0 ];then
echo "SKIP: Need root privileges" echo "SKIP: Need root privileges"
exit 0 exit $ksft_skip
fi fi
ip link show 2>/dev/null >/dev/null ip link show 2>/dev/null >/dev/null
if [ $? -ne 0 ];then if [ $? -ne 0 ];then
echo "SKIP: Could not run test without the ip tool" echo "SKIP: Could not run test without the ip tool"
exit 0 exit $ksft_skip
fi fi
TMP_LIST_NETDEV="$(mktemp)" TMP_LIST_NETDEV="$(mktemp)"
......
...@@ -43,6 +43,9 @@ ...@@ -43,6 +43,9 @@
# that MTU is properly calculated instead when MTU is not configured from # that MTU is properly calculated instead when MTU is not configured from
# userspace # userspace
# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4
tests=" tests="
pmtu_vti6_exception vti6: PMTU exceptions pmtu_vti6_exception vti6: PMTU exceptions
pmtu_vti4_exception vti4: PMTU exceptions pmtu_vti4_exception vti4: PMTU exceptions
...@@ -162,7 +165,7 @@ setup_xfrm6() { ...@@ -162,7 +165,7 @@ setup_xfrm6() {
} }
setup() { setup() {
[ "$(id -u)" -ne 0 ] && echo " need to run as root" && return 1 [ "$(id -u)" -ne 0 ] && echo " need to run as root" && return $ksft_skip
cleanup_done=0 cleanup_done=0
for arg do for arg do
......
...@@ -60,6 +60,8 @@ ...@@ -60,6 +60,8 @@
#include "psock_lib.h" #include "psock_lib.h"
#include "../kselftest.h"
#ifndef bug_on #ifndef bug_on
# define bug_on(cond) assert(!(cond)) # define bug_on(cond) assert(!(cond))
#endif #endif
...@@ -825,7 +827,7 @@ static int test_tpacket(int version, int type) ...@@ -825,7 +827,7 @@ static int test_tpacket(int version, int type)
fprintf(stderr, "test: skip %s %s since user and kernel " fprintf(stderr, "test: skip %s %s since user and kernel "
"space have different bit width\n", "space have different bit width\n",
tpacket_str[version], type_str[type]); tpacket_str[version], type_str[type]);
return 0; return KSFT_SKIP;
} }
sock = pfsocket(version); sock = pfsocket(version);
......
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
devdummy="test-dummy0" devdummy="test-dummy0"
ret=0 ret=0
# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4
# set global exit status, but never reset nonzero one. # set global exit status, but never reset nonzero one.
check_err() check_err()
{ {
...@@ -333,7 +336,7 @@ kci_test_vrf() ...@@ -333,7 +336,7 @@ kci_test_vrf()
ip link show type vrf 2>/dev/null ip link show type vrf 2>/dev/null
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "SKIP: vrf: iproute2 too old" echo "SKIP: vrf: iproute2 too old"
return 0 return $ksft_skip
fi fi
ip link add "$vrfname" type vrf table 10 ip link add "$vrfname" type vrf table 10
...@@ -409,7 +412,7 @@ kci_test_encap_fou() ...@@ -409,7 +412,7 @@ kci_test_encap_fou()
ip fou help 2>&1 |grep -q 'Usage: ip fou' ip fou help 2>&1 |grep -q 'Usage: ip fou'
if [ $? -ne 0 ];then if [ $? -ne 0 ];then
echo "SKIP: fou: iproute2 too old" echo "SKIP: fou: iproute2 too old"
return 1 return $ksft_skip
fi fi
ip netns exec "$testns" ip fou add port 7777 ipproto 47 2>/dev/null ip netns exec "$testns" ip fou add port 7777 ipproto 47 2>/dev/null
...@@ -444,7 +447,7 @@ kci_test_encap() ...@@ -444,7 +447,7 @@ kci_test_encap()
ip netns add "$testns" ip netns add "$testns"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "SKIP encap tests: cannot add net namespace $testns" echo "SKIP encap tests: cannot add net namespace $testns"
return 1 return $ksft_skip
fi fi
ip netns exec "$testns" ip link set lo up ip netns exec "$testns" ip link set lo up
...@@ -469,7 +472,7 @@ kci_test_macsec() ...@@ -469,7 +472,7 @@ kci_test_macsec()
ip macsec help 2>&1 | grep -q "^Usage: ip macsec" ip macsec help 2>&1 | grep -q "^Usage: ip macsec"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "SKIP: macsec: iproute2 too old" echo "SKIP: macsec: iproute2 too old"
return 0 return $ksft_skip
fi fi
ip link add link "$devdummy" "$msname" type macsec port 42 encrypt on ip link add link "$devdummy" "$msname" type macsec port 42 encrypt on
...@@ -511,14 +514,14 @@ kci_test_gretap() ...@@ -511,14 +514,14 @@ kci_test_gretap()
ip netns add "$testns" ip netns add "$testns"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "SKIP gretap tests: cannot add net namespace $testns" echo "SKIP gretap tests: cannot add net namespace $testns"
return 1 return $ksft_skip
fi fi
ip link help gretap 2>&1 | grep -q "^Usage:" ip link help gretap 2>&1 | grep -q "^Usage:"
if [ $? -ne 0 ];then if [ $? -ne 0 ];then
echo "SKIP: gretap: iproute2 too old" echo "SKIP: gretap: iproute2 too old"
ip netns del "$testns" ip netns del "$testns"
return 1 return $ksft_skip
fi fi
# test native tunnel # test native tunnel
...@@ -561,14 +564,14 @@ kci_test_ip6gretap() ...@@ -561,14 +564,14 @@ kci_test_ip6gretap()
ip netns add "$testns" ip netns add "$testns"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "SKIP ip6gretap tests: cannot add net namespace $testns" echo "SKIP ip6gretap tests: cannot add net namespace $testns"
return 1 return $ksft_skip
fi fi
ip link help ip6gretap 2>&1 | grep -q "^Usage:" ip link help ip6gretap 2>&1 | grep -q "^Usage:"
if [ $? -ne 0 ];then if [ $? -ne 0 ];then
echo "SKIP: ip6gretap: iproute2 too old" echo "SKIP: ip6gretap: iproute2 too old"
ip netns del "$testns" ip netns del "$testns"
return 1 return $ksft_skip
fi fi
# test native tunnel # test native tunnel
...@@ -611,13 +614,13 @@ kci_test_erspan() ...@@ -611,13 +614,13 @@ kci_test_erspan()
ip link help erspan 2>&1 | grep -q "^Usage:" ip link help erspan 2>&1 | grep -q "^Usage:"
if [ $? -ne 0 ];then if [ $? -ne 0 ];then
echo "SKIP: erspan: iproute2 too old" echo "SKIP: erspan: iproute2 too old"
return 1 return $ksft_skip
fi fi
ip netns add "$testns" ip netns add "$testns"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "SKIP erspan tests: cannot add net namespace $testns" echo "SKIP erspan tests: cannot add net namespace $testns"
return 1 return $ksft_skip
fi fi
# test native tunnel erspan v1 # test native tunnel erspan v1
...@@ -676,13 +679,13 @@ kci_test_ip6erspan() ...@@ -676,13 +679,13 @@ kci_test_ip6erspan()
ip link help ip6erspan 2>&1 | grep -q "^Usage:" ip link help ip6erspan 2>&1 | grep -q "^Usage:"
if [ $? -ne 0 ];then if [ $? -ne 0 ];then
echo "SKIP: ip6erspan: iproute2 too old" echo "SKIP: ip6erspan: iproute2 too old"
return 1 return $ksft_skip
fi fi
ip netns add "$testns" ip netns add "$testns"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "SKIP ip6erspan tests: cannot add net namespace $testns" echo "SKIP ip6erspan tests: cannot add net namespace $testns"
return 1 return $ksft_skip
fi fi
# test native tunnel ip6erspan v1 # test native tunnel ip6erspan v1
...@@ -762,14 +765,14 @@ kci_test_rtnl() ...@@ -762,14 +765,14 @@ kci_test_rtnl()
#check for needed privileges #check for needed privileges
if [ "$(id -u)" -ne 0 ];then if [ "$(id -u)" -ne 0 ];then
echo "SKIP: Need root privileges" echo "SKIP: Need root privileges"
exit 0 exit $ksft_skip
fi fi
for x in ip tc;do for x in ip tc;do
$x -Version 2>/dev/null >/dev/null $x -Version 2>/dev/null >/dev/null
if [ $? -ne 0 ];then if [ $? -ne 0 ];then
echo "SKIP: Could not run test without the $x tool" echo "SKIP: Could not run test without the $x tool"
exit 0 exit $ksft_skip
fi fi
done done
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment