Commit 527d37e9 authored by Joe Lawrence's avatar Joe Lawrence Committed by Shuah Khan

selftests/livepatch: add test skip handling

Add a skip() message function that stops the test, logs an explanation,
and sets the "skip" return code (4).

Before loading a livepatch self-test kernel module, first verify that
we've built and installed it by running a 'modprobe --dry-run'.  This
should catch a few environment issues, including !CONFIG_LIVEPATCH and
!CONFIG_TEST_LIVEPATCH.  In these cases, exit gracefully with the new
skip() function.
Reported-by: default avatarJiri Benc <jbenc@redhat.com>
Suggested-by: default avatarShuah Khan <shuah@kernel.org>
Reviewed-by: default avatarPetr Mladek <pmladek@suse.com>
Signed-off-by: default avatarJoe Lawrence <joe.lawrence@redhat.com>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent 2e05ec48
......@@ -13,6 +13,14 @@ function log() {
echo "$1" > /dev/kmsg
}
# skip(msg) - testing can't proceed
# msg - explanation
function skip() {
log "SKIP: $1"
echo "SKIP: $1" >&2
exit 4
}
# die(msg) - game over, man
# msg - dying words
function die() {
......@@ -43,6 +51,12 @@ function loop_until() {
done
}
function assert_mod() {
local mod="$1"
modprobe --dry-run "$mod" &>/dev/null
}
function is_livepatch_mod() {
local mod="$1"
......@@ -75,6 +89,9 @@ function __load_mod() {
function load_mod() {
local mod="$1"; shift
assert_mod "$mod" ||
skip "unable to load module ${mod}, verify CONFIG_TEST_LIVEPATCH=m and run self-tests as root"
is_livepatch_mod "$mod" &&
die "use load_lp() to load the livepatch module $mod"
......@@ -88,6 +105,9 @@ function load_mod() {
function load_lp_nowait() {
local mod="$1"; shift
assert_mod "$mod" ||
skip "unable to load module ${mod}, verify CONFIG_TEST_LIVEPATCH=m and run self-tests as root"
is_livepatch_mod "$mod" ||
die "module $mod is not a livepatch"
......
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