test_firmware: add simple firmware firmware test library
We'll expland on this later, for now just add basic module checker. While at it, move this all to use /bin/bash as we'll have much more flexibility with it. Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0c8efd610b
commit
29a1c00ce1
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# This validates that the kernel will fall back to using the fallback mechanism
|
||||
# to load firmware it can't find on disk itself. We must request a firmware
|
||||
@ -6,9 +6,10 @@
|
||||
# won't find so that we can do the load ourself manually.
|
||||
set -e
|
||||
|
||||
modprobe test_firmware
|
||||
TEST_DIR=$(dirname $0)
|
||||
source $TEST_DIR/fw_lib.sh
|
||||
|
||||
DIR=/sys/devices/virtual/misc/test_firmware
|
||||
check_mods
|
||||
|
||||
# CONFIG_FW_LOADER_USER_HELPER has a sysfs class under /sys/class/firmware/
|
||||
# These days no one enables CONFIG_FW_LOADER_USER_HELPER so check for that
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# This validates that the kernel will load firmware out of its list of
|
||||
# firmware locations on disk. Since the user helper does similar work,
|
||||
@ -6,24 +6,10 @@
|
||||
# know so we can be sure we're not accidentally testing the user helper.
|
||||
set -e
|
||||
|
||||
DIR=/sys/devices/virtual/misc/test_firmware
|
||||
TEST_DIR=$(dirname $0)
|
||||
source $TEST_DIR/fw_lib.sh
|
||||
|
||||
test_modprobe()
|
||||
{
|
||||
if [ ! -d $DIR ]; then
|
||||
echo "$0: $DIR not present"
|
||||
echo "You must have the following enabled in your kernel:"
|
||||
cat $TEST_DIR/config
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
trap "test_modprobe" EXIT
|
||||
|
||||
if [ ! -d $DIR ]; then
|
||||
modprobe test_firmware
|
||||
fi
|
||||
check_mods
|
||||
|
||||
# CONFIG_FW_LOADER_USER_HELPER has a sysfs class under /sys/class/firmware/
|
||||
# These days most distros enable CONFIG_FW_LOADER_USER_HELPER but disable
|
||||
|
44
tools/testing/selftests/firmware/fw_lib.sh
Executable file
44
tools/testing/selftests/firmware/fw_lib.sh
Executable file
@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
# Library of helpers for test scripts.
|
||||
set -e
|
||||
|
||||
DIR=/sys/devices/virtual/misc/test_firmware
|
||||
|
||||
PROC_CONFIG="/proc/config.gz"
|
||||
TEST_DIR=$(dirname $0)
|
||||
|
||||
print_reqs_exit()
|
||||
{
|
||||
echo "You must have the following enabled in your kernel:" >&2
|
||||
cat $TEST_DIR/config >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
test_modprobe()
|
||||
{
|
||||
if [ ! -d $DIR ]; then
|
||||
print_reqs_exit
|
||||
fi
|
||||
}
|
||||
|
||||
check_mods()
|
||||
{
|
||||
trap "test_modprobe" EXIT
|
||||
if [ ! -d $DIR ]; then
|
||||
modprobe test_firmware
|
||||
fi
|
||||
if [ ! -f $PROC_CONFIG ]; then
|
||||
if modprobe configs 2>/dev/null; then
|
||||
echo "Loaded configs module"
|
||||
if [ ! -f $PROC_CONFIG ]; then
|
||||
echo "You must have the following enabled in your kernel:" >&2
|
||||
cat $TEST_DIR/config >&2
|
||||
echo "Resorting to old heuristics" >&2
|
||||
fi
|
||||
else
|
||||
echo "Failed to load configs module, using old heuristics" >&2
|
||||
fi
|
||||
fi
|
||||
}
|
Loading…
Reference in New Issue
Block a user