]> Git Repo - J-linux.git/commitdiff
selftests/livepatch: add test skip handling
authorJoe Lawrence <[email protected]>
Wed, 24 Jul 2019 20:05:58 +0000 (16:05 -0400)
committerShuah Khan <[email protected]>
Wed, 24 Jul 2019 20:17:46 +0000 (14:17 -0600)
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 <[email protected]>
Suggested-by: Shuah Khan <[email protected]>
Reviewed-by: Petr Mladek <[email protected]>
Signed-off-by: Joe Lawrence <[email protected]>
Signed-off-by: Shuah Khan <[email protected]>
tools/testing/selftests/livepatch/functions.sh

index 30195449c63c92c92ffaa8de326d44ec5a152e49..edcfeace465509a3f17c6d7eb381b5da97ffeebc 100644 (file)
@@ -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"
 
This page took 0.053392 seconds and 4 git commands to generate.