mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-04 16:15:11 +00:00
selftests: sysctl: return Kselftest Skip code for skipped tests
[ Upstream commit c7db6ffb83
]
When sysctl test is skipped because of unmet dependencies and/or
unsupported configuration, it exits with error which is treated as
a fail by the Kselftest framework. This leads to false negative 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.
Changed return code to kselftest skip code in skip error legs that check
requirements and module probe test error leg.
Kselftest framework SKIP code is 4 and the framework prints appropriate
messages to indicate that the test is skipped.
Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bc5e458a9e
commit
d5f9d1d350
1 changed files with 13 additions and 7 deletions
|
@ -14,6 +14,9 @@
|
||||||
|
|
||||||
# This performs a series tests against the proc sysctl interface.
|
# This performs a series tests against the proc sysctl interface.
|
||||||
|
|
||||||
|
# Kselftest framework requirement - SKIP code is 4.
|
||||||
|
ksft_skip=4
|
||||||
|
|
||||||
TEST_NAME="sysctl"
|
TEST_NAME="sysctl"
|
||||||
TEST_DRIVER="test_${TEST_NAME}"
|
TEST_DRIVER="test_${TEST_NAME}"
|
||||||
TEST_DIR=$(dirname $0)
|
TEST_DIR=$(dirname $0)
|
||||||
|
@ -41,7 +44,7 @@ test_modprobe()
|
||||||
echo "$0: $DIR not present" >&2
|
echo "$0: $DIR not present" >&2
|
||||||
echo "You must have the following enabled in your kernel:" >&2
|
echo "You must have the following enabled in your kernel:" >&2
|
||||||
cat $TEST_DIR/config >&2
|
cat $TEST_DIR/config >&2
|
||||||
exit 1
|
exit $ksft_skip
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,28 +101,30 @@ test_reqs()
|
||||||
uid=$(id -u)
|
uid=$(id -u)
|
||||||
if [ $uid -ne 0 ]; then
|
if [ $uid -ne 0 ]; then
|
||||||
echo $msg must be run as root >&2
|
echo $msg must be run as root >&2
|
||||||
exit 0
|
exit $ksft_skip
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! which perl 2> /dev/null > /dev/null; then
|
if ! which perl 2> /dev/null > /dev/null; then
|
||||||
echo "$0: You need perl installed"
|
echo "$0: You need perl installed"
|
||||||
exit 1
|
exit $ksft_skip
|
||||||
fi
|
fi
|
||||||
if ! which getconf 2> /dev/null > /dev/null; then
|
if ! which getconf 2> /dev/null > /dev/null; then
|
||||||
echo "$0: You need getconf installed"
|
echo "$0: You need getconf installed"
|
||||||
exit 1
|
exit $ksft_skip
|
||||||
fi
|
fi
|
||||||
if ! which diff 2> /dev/null > /dev/null; then
|
if ! which diff 2> /dev/null > /dev/null; then
|
||||||
echo "$0: You need diff installed"
|
echo "$0: You need diff installed"
|
||||||
exit 1
|
exit $ksft_skip
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function load_req_mod()
|
function load_req_mod()
|
||||||
{
|
{
|
||||||
trap "test_modprobe" EXIT
|
|
||||||
|
|
||||||
if [ ! -d $DIR ]; then
|
if [ ! -d $DIR ]; then
|
||||||
|
if ! modprobe -q -n $TEST_DRIVER; then
|
||||||
|
echo "$0: module $TEST_DRIVER not found [SKIP]"
|
||||||
|
exit $ksft_skip
|
||||||
|
fi
|
||||||
modprobe $TEST_DRIVER
|
modprobe $TEST_DRIVER
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
exit
|
exit
|
||||||
|
@ -765,6 +770,7 @@ function parse_args()
|
||||||
test_reqs
|
test_reqs
|
||||||
allow_user_defaults
|
allow_user_defaults
|
||||||
check_production_sysctl_writes_strict
|
check_production_sysctl_writes_strict
|
||||||
|
test_modprobe
|
||||||
load_req_mod
|
load_req_mod
|
||||||
|
|
||||||
trap "test_finish" EXIT
|
trap "test_finish" EXIT
|
||||||
|
|
Loading…
Reference in a new issue