[v2] selftests: livepatch: Fix it to do root uid check and skip
diff mbox series

Message ID 20191216191840.15188-1-skhan@linuxfoundation.org
State Mainlined
Commit 05564c29fc943c467abb1f60ef1f0a68c4c424e9
Headers show
Series
  • [v2] selftests: livepatch: Fix it to do root uid check and skip
Related show

Commit Message

Shuah Khan Dec. 16, 2019, 7:18 p.m. UTC
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>
---
 tools/testing/selftests/livepatch/functions.sh  | 15 ++++++++++++++-
 tools/testing/selftests/livepatch/test-state.sh |  3 +--
 2 files changed, 15 insertions(+), 3 deletions(-)

Comments

Joe Lawrence Dec. 16, 2019, 9:01 p.m. UTC | #1
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@suse.com>
> 
> Fix it to check root uid and exit with skip code instead.
> 
> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
> ---
>  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@redhat.com>

-- Joe
Petr Mladek Dec. 17, 2019, 9:02 a.m. UTC | #2
On Mon 2019-12-16 12:18:40, 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@suse.com>
> 
> Fix it to check root uid and exit with skip code instead.
> 
> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

Reviewed-by: Petr Mladek <pmladek@suse.com>

Shuah, I assume that you will push this fix via linux-kselftest tree.
Please, tell us if you have other preference.

Best Regards,
Petr
Shuah Khan Dec. 17, 2019, 3:08 p.m. UTC | #3
On 12/17/19 2:02 AM, Petr Mladek wrote:
> On Mon 2019-12-16 12:18:40, 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@suse.com>
>>
>> Fix it to check root uid and exit with skip code instead.
>>
>> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
> 
> Reviewed-by: Petr Mladek <pmladek@suse.com>
> 
> Shuah, I assume that you will push this fix via linux-kselftest tree.
> Please, tell us if you have other preference.
> 

Hi Petr, Yes I will push this in. Thanks for the reviews.

thanks,
-- Shuah

Patch
diff mbox series

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