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: Jiri Benc <jbenc@redhat.com> Suggested-by: Shuah Khan <shuah@kernel.org> Reviewed-by: Petr Mladek <pmladek@suse.com> Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
2e05ec4834
commit
527d37e9e5
|
@ -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"
|
||||
|
||||
|
|
Loading…
Reference in New Issue