aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorLuis R. Rodriguez <mcgrof@kernel.org>2018-03-10 09:14:53 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-03-20 04:28:47 -0400
commitf5a614519e67b429faf01ca36db90030976449cc (patch)
tree4d4c9c3f5d2a16edc1fb9153c4ab2e6b078140e6 /tools
parent2cd7a1c6dcd33e7c1a82b254871230f29866d4e9 (diff)
test_firmware: expand on library with shared helpers
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>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/testing/selftests/firmware/fw_fallback.sh31
-rwxr-xr-xtools/testing/selftests/firmware/fw_filesystem.sh41
-rwxr-xr-xtools/testing/selftests/firmware/fw_lib.sh52
3 files changed, 63 insertions, 61 deletions
diff --git a/tools/testing/selftests/firmware/fw_fallback.sh b/tools/testing/selftests/firmware/fw_fallback.sh
index 323c921a2469..9337a0328627 100755
--- a/tools/testing/selftests/firmware/fw_fallback.sh
+++ b/tools/testing/selftests/firmware/fw_fallback.sh
@@ -6,30 +6,17 @@
6# won't find so that we can do the load ourself manually. 6# won't find so that we can do the load ourself manually.
7set -e 7set -e
8 8
9TEST_REQS_FW_SYSFS_FALLBACK="yes"
10TEST_REQS_FW_SET_CUSTOM_PATH="no"
9TEST_DIR=$(dirname $0) 11TEST_DIR=$(dirname $0)
10source $TEST_DIR/fw_lib.sh 12source $TEST_DIR/fw_lib.sh
11 13
12check_mods 14check_mods
15check_setup
16verify_reqs
17setup_tmp_file
13 18
14HAS_FW_LOADER_USER_HELPER=$(kconfig_has CONFIG_FW_LOADER_USER_HELPER=y) 19trap "test_finish" EXIT
15HAS_FW_LOADER_USER_HELPER_FALLBACK=$(kconfig_has CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y)
16
17if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
18 OLD_TIMEOUT=$(cat /sys/class/firmware/timeout)
19else
20 echo "usermode helper disabled so ignoring test"
21 exit 0
22fi
23
24FWPATH=$(mktemp -d)
25FW="$FWPATH/test-firmware.bin"
26
27test_finish()
28{
29 echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout
30 rm -f "$FW"
31 rmdir "$FWPATH"
32}
33 20
34load_fw() 21load_fw()
35{ 22{
@@ -168,12 +155,6 @@ load_fw_fallback_with_child()
168 return $RET 155 return $RET
169} 156}
170 157
171trap "test_finish" EXIT
172
173# This is an unlikely real-world firmware content. :)
174echo "ABCD0123" >"$FW"
175NAME=$(basename "$FW")
176
177test_syfs_timeout() 158test_syfs_timeout()
178{ 159{
179 DEVPATH="$DIR"/"nope-$NAME"/loading 160 DEVPATH="$DIR"/"nope-$NAME"/loading
diff --git a/tools/testing/selftests/firmware/fw_filesystem.sh b/tools/testing/selftests/firmware/fw_filesystem.sh
index 748f2f5737e9..7f47877fa7fa 100755
--- a/tools/testing/selftests/firmware/fw_filesystem.sh
+++ b/tools/testing/selftests/firmware/fw_filesystem.sh
@@ -6,38 +6,15 @@
6# know so we can be sure we're not accidentally testing the user helper. 6# know so we can be sure we're not accidentally testing the user helper.
7set -e 7set -e
8 8
9TEST_REQS_FW_SYSFS_FALLBACK="no"
10TEST_REQS_FW_SET_CUSTOM_PATH="yes"
9TEST_DIR=$(dirname $0) 11TEST_DIR=$(dirname $0)
10source $TEST_DIR/fw_lib.sh 12source $TEST_DIR/fw_lib.sh
11 13
12check_mods 14check_mods
13 15check_setup
14# CONFIG_FW_LOADER_USER_HELPER has a sysfs class under /sys/class/firmware/ 16verify_reqs
15# These days most distros enable CONFIG_FW_LOADER_USER_HELPER but disable 17setup_tmp_file
16# CONFIG_FW_LOADER_USER_HELPER_FALLBACK. We use /sys/class/firmware/ as an
17# indicator for CONFIG_FW_LOADER_USER_HELPER.
18HAS_FW_LOADER_USER_HELPER=$(if [ -d /sys/class/firmware/ ]; then echo yes; else echo no; fi)
19
20if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
21 OLD_TIMEOUT=$(cat /sys/class/firmware/timeout)
22fi
23
24OLD_FWPATH=$(cat /sys/module/firmware_class/parameters/path)
25
26FWPATH=$(mktemp -d)
27FW="$FWPATH/test-firmware.bin"
28
29test_finish()
30{
31 if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
32 echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout
33 fi
34 if [ "$OLD_FWPATH" = "" ]; then
35 OLD_FWPATH=" "
36 fi
37 echo -n "$OLD_FWPATH" >/sys/module/firmware_class/parameters/path
38 rm -f "$FW"
39 rmdir "$FWPATH"
40}
41 18
42trap "test_finish" EXIT 19trap "test_finish" EXIT
43 20
@@ -46,14 +23,6 @@ if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
46 echo 1 >/sys/class/firmware/timeout 23 echo 1 >/sys/class/firmware/timeout
47fi 24fi
48 25
49# Set the kernel search path.
50echo -n "$FWPATH" >/sys/module/firmware_class/parameters/path
51
52# This is an unlikely real-world firmware content. :)
53echo "ABCD0123" >"$FW"
54
55NAME=$(basename "$FW")
56
57if printf '\000' >"$DIR"/trigger_request 2> /dev/null; then 26if printf '\000' >"$DIR"/trigger_request 2> /dev/null; then
58 echo "$0: empty filename should not succeed" >&2 27 echo "$0: empty filename should not succeed" >&2
59 exit 1 28 exit 1
diff --git a/tools/testing/selftests/firmware/fw_lib.sh b/tools/testing/selftests/firmware/fw_lib.sh
index 467567c758b9..e3cc4483fdba 100755
--- a/tools/testing/selftests/firmware/fw_lib.sh
+++ b/tools/testing/selftests/firmware/fw_lib.sh
@@ -43,6 +43,58 @@ check_mods()
43 fi 43 fi
44} 44}
45 45
46check_setup()
47{
48 HAS_FW_LOADER_USER_HELPER="$(kconfig_has CONFIG_FW_LOADER_USER_HELPER=y)"
49 HAS_FW_LOADER_USER_HELPER_FALLBACK="$(kconfig_has CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y)"
50
51 if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
52 OLD_TIMEOUT="$(cat /sys/class/firmware/timeout)"
53 fi
54
55 OLD_FWPATH="$(cat /sys/module/firmware_class/parameters/path)"
56}
57
58verify_reqs()
59{
60 if [ "$TEST_REQS_FW_SYSFS_FALLBACK" = "yes" ]; then
61 if [ ! "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
62 echo "usermode helper disabled so ignoring test"
63 exit 0
64 fi
65 fi
66}
67
68setup_tmp_file()
69{
70 FWPATH=$(mktemp -d)
71 FW="$FWPATH/test-firmware.bin"
72 echo "ABCD0123" >"$FW"
73 NAME=$(basename "$FW")
74 if [ "$TEST_REQS_FW_SET_CUSTOM_PATH" = "yes" ]; then
75 echo -n "$FWPATH" >/sys/module/firmware_class/parameters/path
76 fi
77}
78
79test_finish()
80{
81 if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
82 echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout
83 fi
84 if [ "$OLD_FWPATH" = "" ]; then
85 OLD_FWPATH=" "
86 fi
87 if [ "$TEST_REQS_FW_SET_CUSTOM_PATH" = "yes" ]; then
88 echo -n "$OLD_FWPATH" >/sys/module/firmware_class/parameters/path
89 fi
90 if [ -f $FW ]; then
91 rm -f "$FW"
92 fi
93 if [ -d $FWPATH ]; then
94 rm -rf "$FWPATH"
95 fi
96}
97
46kconfig_has() 98kconfig_has()
47{ 99{
48 if [ -f $PROC_CONFIG ]; then 100 if [ -f $PROC_CONFIG ]; then