test_firmware: wrap basic sysfs fallback tests into helper

These 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>
This commit is contained in:
Luis R. Rodriguez 2017-11-20 10:24:00 -08:00 committed by Greg Kroah-Hartman
parent 881c23de02
commit 59106c8158
1 changed files with 41 additions and 37 deletions

View File

@ -212,37 +212,51 @@ test_syfs_timeout()
fi fi
} }
test_syfs_timeout run_sysfs_main_tests()
{
test_syfs_timeout
# Put timeout high enough for us to do work but not so long that failures
# slow down this test too much.
echo 4 >/sys/class/firmware/timeout
# Put timeout high enough for us to do work but not so long that failures # Load this script instead of the desired firmware.
# slow down this test too much. load_fw "$NAME" "$0"
echo 4 >/sys/class/firmware/timeout if diff -q "$FW" /dev/test_firmware >/dev/null ; then
echo "$0: firmware was not expected to match" >&2
exit 1
else
echo "$0: firmware comparison works"
fi
# Load this script instead of the desired firmware. # Do a proper load, which should work correctly.
load_fw "$NAME" "$0" load_fw "$NAME" "$FW"
if diff -q "$FW" /dev/test_firmware >/dev/null ; then if ! diff -q "$FW" /dev/test_firmware >/dev/null ; then
echo "$0: firmware was not expected to match" >&2 echo "$0: firmware was not loaded" >&2
exit 1 exit 1
else else
echo "$0: firmware comparison works" echo "$0: fallback mechanism works"
fi fi
# Do a proper load, which should work correctly. load_fw_cancel "nope-$NAME" "$FW"
load_fw "$NAME" "$FW" if diff -q "$FW" /dev/test_firmware >/dev/null ; then
if ! diff -q "$FW" /dev/test_firmware >/dev/null ; then echo "$0: firmware was expected to be cancelled" >&2
echo "$0: firmware was not loaded" >&2 exit 1
exit 1 else
else echo "$0: cancelling fallback mechanism works"
echo "$0: fallback mechanism works" fi
fi
load_fw_cancel "nope-$NAME" "$FW" set +e
if diff -q "$FW" /dev/test_firmware >/dev/null ; then load_fw_fallback_with_child "nope-signal-$NAME" "$FW"
echo "$0: firmware was expected to be cancelled" >&2 if [ "$?" -eq 0 ]; then
exit 1 echo "$0: SIGCHLD on sync ignored as expected" >&2
else else
echo "$0: cancelling fallback mechanism works" echo "$0: error - sync firmware request cancelled due to SIGCHLD" >&2
fi exit 1
fi
set -e
}
run_sysfs_main_tests
if load_fw_custom "$NAME" "$FW" ; then if load_fw_custom "$NAME" "$FW" ; then
if ! diff -q "$FW" /dev/test_firmware >/dev/null ; then if ! diff -q "$FW" /dev/test_firmware >/dev/null ; then
@ -262,14 +276,4 @@ if load_fw_custom_cancel "nope-$NAME" "$FW" ; then
fi fi
fi fi
set +e
load_fw_fallback_with_child "nope-signal-$NAME" "$FW"
if [ "$?" -eq 0 ]; then
echo "$0: SIGCHLD on sync ignored as expected" >&2
else
echo "$0: error - sync firmware request cancelled due to SIGCHLD" >&2
exit 1
fi
set -e
exit 0 exit 0