]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
test_firmware: wrap sysfs timeout test into helper
authorLuis R. Rodriguez <mcgrof@kernel.org>
Mon, 20 Nov 2017 18:23:59 +0000 (10:23 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Nov 2017 10:22:49 +0000 (11:22 +0100)
This cannot run on all kernel builds. This will help us later
skip this test on kernel configs where non-applicable.

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

index 34a42c68ebfb81235738c0d5afc9723ebd068f21..e364631837d6f19c24a8627d0312cdf6b9fe7c70 100755 (executable)
@@ -175,39 +175,44 @@ trap "test_finish" EXIT
 echo "ABCD0123" >"$FW"
 NAME=$(basename "$FW")
 
-DEVPATH="$DIR"/"nope-$NAME"/loading
-
-# Test failure when doing nothing (timeout works).
-echo -n 2 >/sys/class/firmware/timeout
-echo -n "nope-$NAME" >"$DIR"/trigger_request 2>/dev/null &
-
-# Give the kernel some time to load the loading file, must be less
-# than the timeout above.
-sleep 1
-if [ ! -f $DEVPATH ]; then
-       echo "$0: fallback mechanism immediately cancelled"
-       echo ""
-       echo "The file never appeared: $DEVPATH"
-       echo ""
-       echo "This might be a distribution udev rule setup by your distribution"
-       echo "to immediately cancel all fallback requests, this must be"
-       echo "removed before running these tests. To confirm look for"
-       echo "a firmware rule like /lib/udev/rules.d/50-firmware.rules"
-       echo "and see if you have something like this:"
-       echo ""
-       echo "SUBSYSTEM==\"firmware\", ACTION==\"add\", ATTR{loading}=\"-1\""
-       echo ""
-       echo "If you do remove this file or comment out this line before"
-       echo "proceeding with these tests."
-       exit 1
-fi
+test_syfs_timeout()
+{
+       DEVPATH="$DIR"/"nope-$NAME"/loading
+
+       # Test failure when doing nothing (timeout works).
+       echo -n 2 >/sys/class/firmware/timeout
+       echo -n "nope-$NAME" >"$DIR"/trigger_request 2>/dev/null &
+
+       # Give the kernel some time to load the loading file, must be less
+       # than the timeout above.
+       sleep 1
+       if [ ! -f $DEVPATH ]; then
+               echo "$0: fallback mechanism immediately cancelled"
+               echo ""
+               echo "The file never appeared: $DEVPATH"
+               echo ""
+               echo "This might be a distribution udev rule setup by your distribution"
+               echo "to immediately cancel all fallback requests, this must be"
+               echo "removed before running these tests. To confirm look for"
+               echo "a firmware rule like /lib/udev/rules.d/50-firmware.rules"
+               echo "and see if you have something like this:"
+               echo ""
+               echo "SUBSYSTEM==\"firmware\", ACTION==\"add\", ATTR{loading}=\"-1\""
+               echo ""
+               echo "If you do remove this file or comment out this line before"
+               echo "proceeding with these tests."
+               exit 1
+       fi
 
-if diff -q "$FW" /dev/test_firmware >/dev/null ; then
-       echo "$0: firmware was not expected to match" >&2
-       exit 1
-else
-       echo "$0: timeout works"
-fi
+       if diff -q "$FW" /dev/test_firmware >/dev/null ; then
+               echo "$0: firmware was not expected to match" >&2
+               exit 1
+       else
+               echo "$0: timeout works"
+       fi
+}
+
+test_syfs_timeout
 
 # Put timeout high enough for us to do work but not so long that failures
 # slow down this test too much.