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:
parent
881c23de02
commit
59106c8158
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue