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

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

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
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -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"