Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 57aefc7c authored by Shuah Khan (Samsung OSG)'s avatar Shuah Khan (Samsung OSG)
Browse files

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
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -5,6 +5,8 @@
# different events.

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

VERBOSE=${VERBOSE:=0}
PAUSE_ON_FAIL=${PAUSE_ON_FAIL:=no}
@@ -579,18 +581,18 @@ fib_test()

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

ip route help 2>&1 | grep -q fibmatch
if [ $? -ne 0 ]; then
	echo "SKIP: iproute2 too old, missing fibmatch"
	exit 0
	exit $ksft_skip
fi

# start clean
+10 −6
Original line number Diff line number Diff line
@@ -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
#

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

# this function will try to up the interface
# if already up, nothing done
# arg1: network interface name
@@ -18,7 +21,7 @@ kci_net_start()
	ip link show "$netdev" |grep -q UP
	if [ $? -eq 0 ];then
		echo "SKIP: $netdev: interface already up"
		return 0
		return $ksft_skip
	fi

	ip link set "$netdev" up
@@ -61,12 +64,12 @@ kci_net_setup()
	ip address show "$netdev" |grep '^[[:space:]]*inet'
	if [ $? -eq 0 ];then
		echo "SKIP: $netdev: already have an IP"
		return 0
		return $ksft_skip
	fi

	# TODO what ipaddr to set ? DHCP ?
	echo "SKIP: $netdev: set IP address"
	return 0
	return $ksft_skip
}

# test an ethtool command
@@ -84,6 +87,7 @@ kci_netdev_ethtool_test()
	if [ $ret -ne 0 ];then
		if [ $ret -eq "$1" ];then
			echo "SKIP: $netdev: ethtool $2 not supported"
			return $ksft_skip
		else
			echo "FAIL: $netdev: ethtool $2"
			return 1
@@ -104,7 +108,7 @@ kci_netdev_ethtool()
	ethtool --version 2>/dev/null >/dev/null
	if [ $? -ne 0 ];then
		echo "SKIP: ethtool not present"
		return 1
		return $ksft_skip
	fi

	TMP_ETHTOOL_FEATURES="$(mktemp)"
@@ -176,13 +180,13 @@ kci_test_netdev()
#check for needed privileges
if [ "$(id -u)" -ne 0 ];then
	echo "SKIP: Need root privileges"
	exit 0
	exit $ksft_skip
fi

ip link show 2>/dev/null >/dev/null
if [ $? -ne 0 ];then
	echo "SKIP: Could not run test without the ip tool"
	exit 0
	exit $ksft_skip
fi

TMP_LIST_NETDEV="$(mktemp)"
+4 −1
Original line number Diff line number Diff line
@@ -43,6 +43,9 @@
#	that MTU is properly calculated instead when MTU is not configured from
#	userspace

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

tests="
	pmtu_vti6_exception		vti6: PMTU exceptions
	pmtu_vti4_exception		vti4: PMTU exceptions
@@ -162,7 +165,7 @@ setup_xfrm6() {
}

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
	for arg do
+3 −1
Original line number Diff line number Diff line
@@ -60,6 +60,8 @@

#include "psock_lib.h"

#include "../kselftest.h"

#ifndef bug_on
# define bug_on(cond)		assert(!(cond))
#endif
@@ -825,7 +827,7 @@ static int test_tpacket(int version, int type)
		fprintf(stderr, "test: skip %s %s since user and kernel "
			"space have different bit width\n",
			tpacket_str[version], type_str[type]);
		return 0;
		return KSFT_SKIP;
	}

	sock = pfsocket(version);
+17 −14
Original line number Diff line number Diff line
@@ -7,6 +7,9 @@
devdummy="test-dummy0"
ret=0

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

# set global exit status, but never reset nonzero one.
check_err()
{
@@ -333,7 +336,7 @@ kci_test_vrf()
	ip link show type vrf 2>/dev/null
	if [ $? -ne 0 ]; then
		echo "SKIP: vrf: iproute2 too old"
		return 0
		return $ksft_skip
	fi

	ip link add "$vrfname" type vrf table 10
@@ -409,7 +412,7 @@ kci_test_encap_fou()
	ip fou help 2>&1 |grep -q 'Usage: ip fou'
	if [ $? -ne 0 ];then
		echo "SKIP: fou: iproute2 too old"
		return 1
		return $ksft_skip
	fi

	ip netns exec "$testns" ip fou add port 7777 ipproto 47 2>/dev/null
@@ -444,7 +447,7 @@ kci_test_encap()
	ip netns add "$testns"
	if [ $? -ne 0 ]; then
		echo "SKIP encap tests: cannot add net namespace $testns"
		return 1
		return $ksft_skip
	fi

	ip netns exec "$testns" ip link set lo up
@@ -469,7 +472,7 @@ kci_test_macsec()
	ip macsec help 2>&1 | grep -q "^Usage: ip macsec"
	if [ $? -ne 0 ]; then
		echo "SKIP: macsec: iproute2 too old"
		return 0
		return $ksft_skip
	fi

	ip link add link "$devdummy" "$msname" type macsec port 42 encrypt on
@@ -511,14 +514,14 @@ kci_test_gretap()
	ip netns add "$testns"
	if [ $? -ne 0 ]; then
		echo "SKIP gretap tests: cannot add net namespace $testns"
		return 1
		return $ksft_skip
	fi

	ip link help gretap 2>&1 | grep -q "^Usage:"
	if [ $? -ne 0 ];then
		echo "SKIP: gretap: iproute2 too old"
		ip netns del "$testns"
		return 1
		return $ksft_skip
	fi

	# test native tunnel
@@ -561,14 +564,14 @@ kci_test_ip6gretap()
	ip netns add "$testns"
	if [ $? -ne 0 ]; then
		echo "SKIP ip6gretap tests: cannot add net namespace $testns"
		return 1
		return $ksft_skip
	fi

	ip link help ip6gretap 2>&1 | grep -q "^Usage:"
	if [ $? -ne 0 ];then
		echo "SKIP: ip6gretap: iproute2 too old"
		ip netns del "$testns"
		return 1
		return $ksft_skip
	fi

	# test native tunnel
@@ -611,13 +614,13 @@ kci_test_erspan()
	ip link help erspan 2>&1 | grep -q "^Usage:"
	if [ $? -ne 0 ];then
		echo "SKIP: erspan: iproute2 too old"
		return 1
		return $ksft_skip
	fi

	ip netns add "$testns"
	if [ $? -ne 0 ]; then
		echo "SKIP erspan tests: cannot add net namespace $testns"
		return 1
		return $ksft_skip
	fi

	# test native tunnel erspan v1
@@ -676,13 +679,13 @@ kci_test_ip6erspan()
	ip link help ip6erspan 2>&1 | grep -q "^Usage:"
	if [ $? -ne 0 ];then
		echo "SKIP: ip6erspan: iproute2 too old"
		return 1
		return $ksft_skip
	fi

	ip netns add "$testns"
	if [ $? -ne 0 ]; then
		echo "SKIP ip6erspan tests: cannot add net namespace $testns"
		return 1
		return $ksft_skip
	fi

	# test native tunnel ip6erspan v1
@@ -762,14 +765,14 @@ kci_test_rtnl()
#check for needed privileges
if [ "$(id -u)" -ne 0 ];then
	echo "SKIP: Need root privileges"
	exit 0
	exit $ksft_skip
fi

for x in ip tc;do
	$x -Version 2>/dev/null >/dev/null
	if [ $? -ne 0 ];then
		echo "SKIP: Could not run test without the $x tool"
		exit 0
		exit $ksft_skip
	fi
done