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

From: Greg KH
Date: Fri Dec 13 2019 - 02:31:26 EST


On Thu, Dec 12, 2019 at 06:56:06PM -0700, Shuah Khan wrote:
> firmware attempts to load test modules that require root access
> and fail. Fix it to check for root uid and exit with skip code
> instead.
>
> Before this fix:
>
> selftests: firmware: fw_run_tests.sh
> modprobe: ERROR: could not insert 'test_firmware': Operation not permitted
> You must have the following enabled in your kernel:
> CONFIG_TEST_FIRMWARE=y
> CONFIG_FW_LOADER=y
> CONFIG_FW_LOADER_USER_HELPER=y
> CONFIG_IKCONFIG=y
> CONFIG_IKCONFIG_PROC=y
> not ok 1 selftests: firmware: fw_run_tests.sh # SKIP
>
> With this fix:
>
> selftests: firmware: fw_run_tests.sh
> skip all tests: must be run as root
> not ok 1 selftests: firmware: fw_run_tests.sh # SKIP
>
> Signed-off-by: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>
> ---
> tools/testing/selftests/firmware/fw_lib.sh | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/tools/testing/selftests/firmware/fw_lib.sh b/tools/testing/selftests/firmware/fw_lib.sh
> index b879305a766d..5b8c0fedee76 100755
> --- a/tools/testing/selftests/firmware/fw_lib.sh
> +++ b/tools/testing/selftests/firmware/fw_lib.sh
> @@ -34,6 +34,12 @@ test_modprobe()
>
> check_mods()
> {
> + local uid=$(id -u)
> + if [ $uid -ne 0 ]; then
> + echo "skip all tests: must be run as root" >&2
> + exit $ksft_skip
> + fi
> +
> trap "test_modprobe" EXIT
> if [ ! -d $DIR ]; then
> modprobe test_firmware
> --
> 2.20.1
>

Reviwed-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>