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
|
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
|
# die(msg) - game over, man
|
||||||
# msg - dying words
|
# msg - dying words
|
||||||
function die() {
|
function die() {
|
||||||
|
@ -43,6 +51,12 @@ function loop_until() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function assert_mod() {
|
||||||
|
local mod="$1"
|
||||||
|
|
||||||
|
modprobe --dry-run "$mod" &>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
function is_livepatch_mod() {
|
function is_livepatch_mod() {
|
||||||
local mod="$1"
|
local mod="$1"
|
||||||
|
|
||||||
|
@ -75,6 +89,9 @@ function __load_mod() {
|
||||||
function load_mod() {
|
function load_mod() {
|
||||||
local mod="$1"; shift
|
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" &&
|
is_livepatch_mod "$mod" &&
|
||||||
die "use load_lp() to load the livepatch module $mod"
|
die "use load_lp() to load the livepatch module $mod"
|
||||||
|
|
||||||
|
@ -88,6 +105,9 @@ function load_mod() {
|
||||||
function load_lp_nowait() {
|
function load_lp_nowait() {
|
||||||
local mod="$1"; shift
|
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" ||
|
is_livepatch_mod "$mod" ||
|
||||||
die "module $mod is not a livepatch"
|
die "module $mod is not a livepatch"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue