Re: [PATCH v2] selftests: livepatch: Fix it to do root uid check and skip

From: Joe Lawrence
Date: Mon Dec 16 2019 - 16:01:31 EST


On Mon, Dec 16, 2019 at 12:18:40PM -0700, Shuah Khan wrote:
> 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@xxxxxxxx>
>
> Fix it to check root uid and exit with skip code instead.
>
> Signed-off-by: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>
> ---
> tools/testing/selftests/livepatch/functions.sh | 15 ++++++++++++++-
> tools/testing/selftests/livepatch/test-state.sh | 3 +--
> 2 files changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/selftests/livepatch/functions.sh b/tools/testing/selftests/livepatch/functions.sh
> index 31eb09e38729..a6e3d5517a6f 100644
> --- a/tools/testing/selftests/livepatch/functions.sh
> +++ b/tools/testing/selftests/livepatch/functions.sh
> @@ -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
> diff --git a/tools/testing/selftests/livepatch/test-state.sh b/tools/testing/selftests/livepatch/test-state.sh
> index dc2908c22c26..a08212708115 100755
> --- a/tools/testing/selftests/livepatch/test-state.sh
> +++ b/tools/testing/selftests/livepatch/test-state.sh
> @@ -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
>
> --
> 2.20.1
>

Thanks for fixing these, Shuah.

Acked-by: Joe Lawrence <joe.lawrence@xxxxxxxxxx>

-- Joe