]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
test_firmware: expand on library with shared helpers
authorLuis R. Rodriguez <mcgrof@kernel.org>
Sat, 10 Mar 2018 14:14:53 +0000 (06:14 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 20 Mar 2018 08:28:47 +0000 (09:28 +0100)
This expands our library with as many things we could find which
both scripts we use share.

Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/testing/selftests/firmware/fw_fallback.sh
tools/testing/selftests/firmware/fw_filesystem.sh
tools/testing/selftests/firmware/fw_lib.sh

index 323c921a24690e5ea59ff3479a7e05bfb0375b3b..9337a0328627e7fb73219a254cdc5a807936c3b9 100755 (executable)
@@ -6,30 +6,17 @@
 # won't find so that we can do the load ourself manually.
 set -e
 
+TEST_REQS_FW_SYSFS_FALLBACK="yes"
+TEST_REQS_FW_SET_CUSTOM_PATH="no"
 TEST_DIR=$(dirname $0)
 source $TEST_DIR/fw_lib.sh
 
 check_mods
+check_setup
+verify_reqs
+setup_tmp_file
 
-HAS_FW_LOADER_USER_HELPER=$(kconfig_has CONFIG_FW_LOADER_USER_HELPER=y)
-HAS_FW_LOADER_USER_HELPER_FALLBACK=$(kconfig_has CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y)
-
-if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
-       OLD_TIMEOUT=$(cat /sys/class/firmware/timeout)
-else
-       echo "usermode helper disabled so ignoring test"
-       exit 0
-fi
-
-FWPATH=$(mktemp -d)
-FW="$FWPATH/test-firmware.bin"
-
-test_finish()
-{
-       echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout
-       rm -f "$FW"
-       rmdir "$FWPATH"
-}
+trap "test_finish" EXIT
 
 load_fw()
 {
@@ -168,12 +155,6 @@ load_fw_fallback_with_child()
        return $RET
 }
 
-trap "test_finish" EXIT
-
-# This is an unlikely real-world firmware content. :)
-echo "ABCD0123" >"$FW"
-NAME=$(basename "$FW")
-
 test_syfs_timeout()
 {
        DEVPATH="$DIR"/"nope-$NAME"/loading
index 748f2f5737e974296464fedd1fdf29b349d3503a..7f47877fa7fa3a01b7be52f8939a2e3ff4204de2 100755 (executable)
@@ -6,38 +6,15 @@
 # know so we can be sure we're not accidentally testing the user helper.
 set -e
 
+TEST_REQS_FW_SYSFS_FALLBACK="no"
+TEST_REQS_FW_SET_CUSTOM_PATH="yes"
 TEST_DIR=$(dirname $0)
 source $TEST_DIR/fw_lib.sh
 
 check_mods
-
-# CONFIG_FW_LOADER_USER_HELPER has a sysfs class under /sys/class/firmware/
-# These days most distros enable CONFIG_FW_LOADER_USER_HELPER but disable
-# CONFIG_FW_LOADER_USER_HELPER_FALLBACK. We use /sys/class/firmware/ as an
-# indicator for CONFIG_FW_LOADER_USER_HELPER.
-HAS_FW_LOADER_USER_HELPER=$(if [ -d /sys/class/firmware/ ]; then echo yes; else echo no; fi)
-
-if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
-       OLD_TIMEOUT=$(cat /sys/class/firmware/timeout)
-fi
-
-OLD_FWPATH=$(cat /sys/module/firmware_class/parameters/path)
-
-FWPATH=$(mktemp -d)
-FW="$FWPATH/test-firmware.bin"
-
-test_finish()
-{
-       if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
-               echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout
-       fi
-       if [ "$OLD_FWPATH" = "" ]; then
-               OLD_FWPATH=" "
-       fi
-       echo -n "$OLD_FWPATH" >/sys/module/firmware_class/parameters/path
-       rm -f "$FW"
-       rmdir "$FWPATH"
-}
+check_setup
+verify_reqs
+setup_tmp_file
 
 trap "test_finish" EXIT
 
@@ -46,14 +23,6 @@ if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
        echo 1 >/sys/class/firmware/timeout
 fi
 
-# Set the kernel search path.
-echo -n "$FWPATH" >/sys/module/firmware_class/parameters/path
-
-# This is an unlikely real-world firmware content. :)
-echo "ABCD0123" >"$FW"
-
-NAME=$(basename "$FW")
-
 if printf '\000' >"$DIR"/trigger_request 2> /dev/null; then
        echo "$0: empty filename should not succeed" >&2
        exit 1
index 467567c758b95b71d452a594396910eab76af46c..e3cc4483fdba6c50661148d2e39559631606d367 100755 (executable)
@@ -43,6 +43,58 @@ check_mods()
        fi
 }
 
+check_setup()
+{
+       HAS_FW_LOADER_USER_HELPER="$(kconfig_has CONFIG_FW_LOADER_USER_HELPER=y)"
+       HAS_FW_LOADER_USER_HELPER_FALLBACK="$(kconfig_has CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y)"
+
+       if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
+              OLD_TIMEOUT="$(cat /sys/class/firmware/timeout)"
+       fi
+
+       OLD_FWPATH="$(cat /sys/module/firmware_class/parameters/path)"
+}
+
+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
+               fi
+       fi
+}
+
+setup_tmp_file()
+{
+       FWPATH=$(mktemp -d)
+       FW="$FWPATH/test-firmware.bin"
+       echo "ABCD0123" >"$FW"
+       NAME=$(basename "$FW")
+       if [ "$TEST_REQS_FW_SET_CUSTOM_PATH" = "yes" ]; then
+               echo -n "$FWPATH" >/sys/module/firmware_class/parameters/path
+       fi
+}
+
+test_finish()
+{
+       if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
+               echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout
+       fi
+       if [ "$OLD_FWPATH" = "" ]; then
+               OLD_FWPATH=" "
+       fi
+       if [ "$TEST_REQS_FW_SET_CUSTOM_PATH" = "yes" ]; then
+               echo -n "$OLD_FWPATH" >/sys/module/firmware_class/parameters/path
+       fi
+       if [ -f $FW ]; then
+               rm -f "$FW"
+       fi
+       if [ -d $FWPATH ]; then
+               rm -rf "$FWPATH"
+       fi
+}
+
 kconfig_has()
 {
        if [ -f $PROC_CONFIG ]; then