selftests: firmware: return Kselftest Skip code for skipped tests
authorShuah Khan (Samsung OSG) <shuah@kernel.org>
Thu, 3 May 2018 22:34:22 +0000 (16:34 -0600)
committerShuah Khan (Samsung OSG) <shuah@kernel.org>
Wed, 30 May 2018 21:21:52 +0000 (15:21 -0600)
When firmware test(s) get skipped because of unmet dependencies and/or
unsupported configuration, it returns 0 which is treated as a pass
by the Kselftest framework. This leads to false positive result even
when the test could not be run.

Change it to return kselftest skip code when a test gets skipped to
clearly report that the test could not be run.

Kselftest framework SKIP code is 4 and the framework prints appropriate
messages to indicate that the test is skipped.

Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
Reviewed-by: Luis R. Rodriguez <mcgrof@kernel.org>
Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
tools/testing/selftests/firmware/fw_fallback.sh
tools/testing/selftests/firmware/fw_filesystem.sh
tools/testing/selftests/firmware/fw_lib.sh

index 8e2e34a2ca696148ed875f41050c3f492888647c..70d18be46af5d2156dff6fc14eab59d05f16f143 100755 (executable)
@@ -74,7 +74,7 @@ load_fw_custom()
 {
        if [ ! -e "$DIR"/trigger_custom_fallback ]; then
                echo "$0: custom fallback trigger not present, ignoring test" >&2
-               return 1
+               exit $ksft_skip
        fi
 
        local name="$1"
@@ -107,7 +107,7 @@ load_fw_custom_cancel()
 {
        if [ ! -e "$DIR"/trigger_custom_fallback ]; then
                echo "$0: canceling custom fallback trigger not present, ignoring test" >&2
-               return 1
+               exit $ksft_skip
        fi
 
        local name="$1"
index 6452d2129cd9d41e6767327cb8ca8448740039db..a4320c4b44dc9ccf021e3fc3376640593d46aa4f 100755 (executable)
@@ -30,6 +30,7 @@ fi
 
 if [ ! -e "$DIR"/trigger_async_request ]; then
        echo "$0: empty filename: async trigger not present, ignoring test" >&2
+       exit $ksft_skip
 else
        if printf '\000' >"$DIR"/trigger_async_request 2> /dev/null; then
                echo "$0: empty filename should not succeed (async)" >&2
@@ -69,6 +70,7 @@ fi
 # Try the asynchronous version too
 if [ ! -e "$DIR"/trigger_async_request ]; then
        echo "$0: firmware loading: async trigger not present, ignoring test" >&2
+       exit $ksft_skip
 else
        if ! echo -n "$NAME" >"$DIR"/trigger_async_request ; then
                echo "$0: could not trigger async request" >&2
@@ -89,7 +91,7 @@ test_config_present()
 {
        if [ ! -f $DIR/reset ]; then
                echo "Configuration triggers not present, ignoring test"
-               exit 0
+               exit $ksft_skip
        fi
 }
 
index 962d7f4ac6276c598bedf42755e5f711a9c51925..6c5f1b2ffb74598a79eaf0cc4316cee8b74a5ef9 100755 (executable)
@@ -9,11 +9,14 @@ DIR=/sys/devices/virtual/misc/test_firmware
 PROC_CONFIG="/proc/config.gz"
 TEST_DIR=$(dirname $0)
 
+# Kselftest framework requirement - SKIP code is 4.
+ksft_skip=4
+
 print_reqs_exit()
 {
        echo "You must have the following enabled in your kernel:" >&2
        cat $TEST_DIR/config >&2
-       exit 1
+       exit $ksft_skip
 }
 
 test_modprobe()
@@ -88,7 +91,7 @@ verify_reqs()
        if [ "$TEST_REQS_FW_SYSFS_FALLBACK" = "yes" ]; then
                if [ ! "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
                        echo "usermode helper disabled so ignoring test"
-                       exit 0
+                       exit $ksft_skip
                fi
        fi
 }