aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xtools/testing/selftests/firmware/fw_fallback.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/testing/selftests/firmware/fw_fallback.sh b/tools/testing/selftests/firmware/fw_fallback.sh
index 2e4c22d5abf7..8f511035f783 100755
--- a/tools/testing/selftests/firmware/fw_fallback.sh
+++ b/tools/testing/selftests/firmware/fw_fallback.sh
@@ -134,6 +134,27 @@ load_fw_custom_cancel()
134 wait 134 wait
135} 135}
136 136
137load_fw_fallback_with_child()
138{
139 local name="$1"
140 local file="$2"
141
142 # This is the value already set but we want to be explicit
143 echo 4 >/sys/class/firmware/timeout
144
145 sleep 1 &
146 SECONDS_BEFORE=$(date +%s)
147 echo -n "$name" >"$DIR"/trigger_request 2>/dev/null
148 SECONDS_AFTER=$(date +%s)
149 SECONDS_DELTA=$(($SECONDS_AFTER - $SECONDS_BEFORE))
150 if [ "$SECONDS_DELTA" -lt 4 ]; then
151 RET=1
152 else
153 RET=0
154 fi
155 wait
156 return $RET
157}
137 158
138trap "test_finish" EXIT 159trap "test_finish" EXIT
139 160
@@ -221,4 +242,14 @@ else
221 echo "$0: cancelling custom fallback mechanism works" 242 echo "$0: cancelling custom fallback mechanism works"
222fi 243fi
223 244
245set +e
246load_fw_fallback_with_child "nope-signal-$NAME" "$FW"
247if [ "$?" -eq 0 ]; then
248 echo "$0: SIGCHLD on sync ignored as expected" >&2
249else
250 echo "$0: error - sync firmware request cancelled due to SIGCHLD" >&2
251 exit 1
252fi
253set -e
254
224exit 0 255exit 0