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
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
# This validates that the kernel will fall back to using the fallback mechanism
|
# 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
|
# 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.
|
# won't find so that we can do the load ourself manually.
|
||||||
set -e
|
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/
|
# 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
|
# 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
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
# This validates that the kernel will load firmware out of its list of
|
# This validates that the kernel will load firmware out of its list of
|
||||||
# firmware locations on disk. Since the user helper does similar work,
|
# 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.
|
# know so we can be sure we're not accidentally testing the user helper.
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
DIR=/sys/devices/virtual/misc/test_firmware
|
|
||||||
TEST_DIR=$(dirname $0)
|
TEST_DIR=$(dirname $0)
|
||||||
|
source $TEST_DIR/fw_lib.sh
|
||||||
|
|
||||||
test_modprobe()
|
check_mods
|
||||||
{
|
|
||||||
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
|
|
||||||
|
|
||||||
# CONFIG_FW_LOADER_USER_HELPER has a sysfs class under /sys/class/firmware/
|
# 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
|
# These days most distros enable CONFIG_FW_LOADER_USER_HELPER but disable
|
||||||
|
|
|
@ -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