mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git
synced 2024-11-28 22:54:12 +08:00
e44f595dd7
Make the TOP variable more configurable, allow to set it to any path where to find binaries when the testsuite is exported, or fallback to system binaries. There's now more code duplication, the logic is now more complex so it's left open coded for clarity. Further cleanups are possible. Signed-off-by: David Sterba <dsterba@suse.com>
73 lines
1.5 KiB
Bash
Executable File
73 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Misc tests
|
|
|
|
LANG=C
|
|
SCRIPT_DIR=$(dirname $(readlink -f "$0"))
|
|
if [ -z "$TOP" ]; then
|
|
TOP=$(readlink -f "$SCRIPT_DIR/../")
|
|
if [ -f "$TOP/configure.ac" ]; then
|
|
# inside git
|
|
TEST_TOP="$TOP/tests/"
|
|
INTERNAL_BIN="$TOP"
|
|
else
|
|
# external, defaults to system binaries
|
|
TOP=$(dirname `which btrfs`)
|
|
TEST_TOP="$SCRIPT_DIR"
|
|
INTERNAL_BIN="$TEST_TOP"
|
|
fi
|
|
else
|
|
# assume external, TOP set from commandline
|
|
TEST_TOP="$SCRIPT_DIR"
|
|
INTERNAL_BIN="$TEST_TOP"
|
|
fi
|
|
if ! [ -x "$TOP/btrfs" ]; then
|
|
echo "ERROR: cannot execute btrfs from TOP=$TOP"
|
|
exit 1
|
|
fi
|
|
TEST_DEV=${TEST_DEV:-}
|
|
RESULTS="$TEST_TOP/misc-tests-results.txt"
|
|
IMAGE="$TEST_TOP/test.img"
|
|
|
|
source "$TEST_TOP/common"
|
|
|
|
export INTERNAL_BIN
|
|
export TEST_TOP
|
|
export TOP
|
|
export RESULTS
|
|
export LANG
|
|
export IMAGE
|
|
export TEST_DEV
|
|
|
|
rm -f "$RESULTS"
|
|
|
|
# test rely on corrupting blocks tool
|
|
check_prereq btrfs-corrupt-block
|
|
check_prereq btrfs-image
|
|
check_prereq btrfstune
|
|
check_prereq btrfs
|
|
check_prereq btrfs-zero-log
|
|
check_prereq btrfs-find-root
|
|
check_prereq btrfs-select-super
|
|
check_kernel_support
|
|
|
|
# The tests are driven by their custom script called 'test.sh'
|
|
|
|
for i in $(find "$TEST_TOP/misc-tests" -maxdepth 1 -mindepth 1 -type d \
|
|
${TEST:+-name "$TEST"} | sort)
|
|
do
|
|
echo " [TEST/misc] $(basename $i)"
|
|
cd "$i"
|
|
echo "=== Entering $i" >> "$RESULTS"
|
|
if [ -x test.sh ]; then
|
|
./test.sh
|
|
if [ $? -ne 0 ]; then
|
|
if [[ $TEST_LOG =~ dump ]]; then
|
|
cat "$RESULTS"
|
|
fi
|
|
_fail "test failed for case $(basename $i)"
|
|
fi
|
|
fi
|
|
cd "$TEST_TOP"
|
|
done
|