diff options
author | Luis R. Rodriguez <mcgrof@kernel.org> | 2018-03-10 09:14:53 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-03-20 04:28:47 -0400 |
commit | f5a614519e67b429faf01ca36db90030976449cc (patch) | |
tree | 4d4c9c3f5d2a16edc1fb9153c4ab2e6b078140e6 /tools | |
parent | 2cd7a1c6dcd33e7c1a82b254871230f29866d4e9 (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-x | tools/testing/selftests/firmware/fw_fallback.sh | 31 | ||||
-rwxr-xr-x | tools/testing/selftests/firmware/fw_filesystem.sh | 41 | ||||
-rwxr-xr-x | tools/testing/selftests/firmware/fw_lib.sh | 52 |
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. |
7 | set -e | 7 | set -e |
8 | 8 | ||
9 | TEST_REQS_FW_SYSFS_FALLBACK="yes" | ||
10 | TEST_REQS_FW_SET_CUSTOM_PATH="no" | ||
9 | TEST_DIR=$(dirname $0) | 11 | TEST_DIR=$(dirname $0) |
10 | source $TEST_DIR/fw_lib.sh | 12 | source $TEST_DIR/fw_lib.sh |
11 | 13 | ||
12 | check_mods | 14 | check_mods |
15 | check_setup | ||
16 | verify_reqs | ||
17 | setup_tmp_file | ||
13 | 18 | ||
14 | HAS_FW_LOADER_USER_HELPER=$(kconfig_has CONFIG_FW_LOADER_USER_HELPER=y) | 19 | trap "test_finish" EXIT |
15 | HAS_FW_LOADER_USER_HELPER_FALLBACK=$(kconfig_has CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y) | ||
16 | |||
17 | if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then | ||
18 | OLD_TIMEOUT=$(cat /sys/class/firmware/timeout) | ||
19 | else | ||
20 | echo "usermode helper disabled so ignoring test" | ||
21 | exit 0 | ||
22 | fi | ||
23 | |||
24 | FWPATH=$(mktemp -d) | ||
25 | FW="$FWPATH/test-firmware.bin" | ||
26 | |||
27 | test_finish() | ||
28 | { | ||
29 | echo "$OLD_TIMEOUT" >/sys/class/firmware/timeout | ||
30 | rm -f "$FW" | ||
31 | rmdir "$FWPATH" | ||
32 | } | ||
33 | 20 | ||
34 | load_fw() | 21 | load_fw() |
35 | { | 22 | { |
@@ -168,12 +155,6 @@ load_fw_fallback_with_child() | |||
168 | return $RET | 155 | return $RET |
169 | } | 156 | } |
170 | 157 | ||
171 | trap "test_finish" EXIT | ||
172 | |||
173 | # This is an unlikely real-world firmware content. :) | ||
174 | echo "ABCD0123" >"$FW" | ||
175 | NAME=$(basename "$FW") | ||
176 | |||
177 | test_syfs_timeout() | 158 | test_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. |
7 | set -e | 7 | set -e |
8 | 8 | ||
9 | TEST_REQS_FW_SYSFS_FALLBACK="no" | ||
10 | TEST_REQS_FW_SET_CUSTOM_PATH="yes" | ||
9 | TEST_DIR=$(dirname $0) | 11 | TEST_DIR=$(dirname $0) |
10 | source $TEST_DIR/fw_lib.sh | 12 | source $TEST_DIR/fw_lib.sh |
11 | 13 | ||
12 | check_mods | 14 | check_mods |
13 | 15 | check_setup | |
14 | # CONFIG_FW_LOADER_USER_HELPER has a sysfs class under /sys/class/firmware/ | 16 | verify_reqs |
15 | # These days most distros enable CONFIG_FW_LOADER_USER_HELPER but disable | 17 | setup_tmp_file |
16 | # CONFIG_FW_LOADER_USER_HELPER_FALLBACK. We use /sys/class/firmware/ as an | ||
17 | # indicator for CONFIG_FW_LOADER_USER_HELPER. | ||
18 | HAS_FW_LOADER_USER_HELPER=$(if [ -d /sys/class/firmware/ ]; then echo yes; else echo no; fi) | ||
19 | |||
20 | if [ "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then | ||
21 | OLD_TIMEOUT=$(cat /sys/class/firmware/timeout) | ||
22 | fi | ||
23 | |||
24 | OLD_FWPATH=$(cat /sys/module/firmware_class/parameters/path) | ||
25 | |||
26 | FWPATH=$(mktemp -d) | ||
27 | FW="$FWPATH/test-firmware.bin" | ||
28 | |||
29 | test_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 | ||
42 | trap "test_finish" EXIT | 19 | trap "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 |
47 | fi | 24 | fi |
48 | 25 | ||
49 | # Set the kernel search path. | ||
50 | echo -n "$FWPATH" >/sys/module/firmware_class/parameters/path | ||
51 | |||
52 | # This is an unlikely real-world firmware content. :) | ||
53 | echo "ABCD0123" >"$FW" | ||
54 | |||
55 | NAME=$(basename "$FW") | ||
56 | |||
57 | if printf '\000' >"$DIR"/trigger_request 2> /dev/null; then | 26 | if 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 | ||
46 | check_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 | |||
58 | verify_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 | |||
68 | setup_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 | |||
79 | test_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 | |||
46 | kconfig_has() | 98 | kconfig_has() |
47 | { | 99 | { |
48 | if [ -f $PROC_CONFIG ]; then | 100 | if [ -f $PROC_CONFIG ]; then |