OSDN Git Service

selftests: livepatch: Fix it to do root uid check and skip
authorShuah Khan <skhan@linuxfoundation.org>
Mon, 16 Dec 2019 19:18:40 +0000 (12:18 -0700)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 23 Dec 2019 17:52:40 +0000 (10:52 -0700)
livepatch test configures the system and debug environment to run
tests. Some of these actions fail without root access and test
dumps several permission denied messages before it exits.

Fix test-state.sh to call setup_config instead of set_dynamic_debug
as suggested by Petr Mladek <pmladek@suse.com>

Fix it to check root uid and exit with skip code instead.

Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Acked-by: Joe Lawrence <joe.lawrence@redhat.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/livepatch/functions.sh
tools/testing/selftests/livepatch/test-state.sh

index 31eb09e..a6e3d55 100644 (file)
@@ -7,6 +7,9 @@
 MAX_RETRIES=600
 RETRY_INTERVAL=".1"    # seconds
 
+# Kselftest framework requirement - SKIP code is 4
+ksft_skip=4
+
 # log(msg) - write message to kernel log
 #      msg - insightful words
 function log() {
@@ -18,7 +21,16 @@ function log() {
 function skip() {
        log "SKIP: $1"
        echo "SKIP: $1" >&2
-       exit 4
+       exit $ksft_skip
+}
+
+# root test
+function is_root() {
+       uid=$(id -u)
+       if [ $uid -ne 0 ]; then
+               echo "skip all tests: must be run as root" >&2
+               exit $ksft_skip
+       fi
 }
 
 # die(msg) - game over, man
@@ -62,6 +74,7 @@ function set_ftrace_enabled() {
 #               for verbose livepatching output and turn on
 #               the ftrace_enabled sysctl.
 function setup_config() {
+       is_root
        push_config
        set_dynamic_debug
        set_ftrace_enabled 1
index dc2908c..a082127 100755 (executable)
@@ -8,8 +8,7 @@ MOD_LIVEPATCH=test_klp_state
 MOD_LIVEPATCH2=test_klp_state2
 MOD_LIVEPATCH3=test_klp_state3
 
-set_dynamic_debug
-
+setup_config
 
 # TEST: Loading and removing a module that modifies the system state