mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-27 00:22:22 +00:00
2726a83952
Some errors may be reported in the logs only, scan the file each time there are fresh results. The scanning script will return error that is supposed to be caught by the testsuite environment. Signed-off-by: David Sterba <dsterba@suse.com>
82 lines
1.6 KiB
Bash
Executable File
82 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# command line interface coverage 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 `type -p 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/cli-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"
|
|
|
|
check_prereq btrfs
|
|
check_kernel_support
|
|
|
|
# The tests are driven by their custom script called 'test.sh'
|
|
|
|
test_found=0
|
|
|
|
for i in $(find "$TEST_TOP/cli-tests" -maxdepth 1 -mindepth 1 -type d \
|
|
${TEST:+-name "$TEST"} | sort)
|
|
do
|
|
name=$(basename "$i")
|
|
if ! [ -z "$TEST_FROM" ]; then
|
|
if [ "$test_found" == 0 ]; then
|
|
case "$name" in
|
|
$TEST_FROM) test_found=1;;
|
|
esac
|
|
fi
|
|
if [ "$test_found" == 0 ]; then
|
|
printf " [TEST/cli] %-32s (SKIPPED)\n" "$name"
|
|
continue
|
|
fi
|
|
fi
|
|
cd "$i"
|
|
if [ -x test.sh ]; then
|
|
echo "=== START TEST $i" >> "$RESULTS"
|
|
echo " [TEST/cli] $name"
|
|
./test.sh
|
|
if [ $? -ne 0 ]; then
|
|
if [[ $TEST_LOG =~ dump ]]; then
|
|
cat "$RESULTS"
|
|
fi
|
|
_fail "test failed for case $name"
|
|
fi
|
|
fi
|
|
cd "$TEST_TOP"
|
|
done
|
|
|
|
"$TEST_TOP/scan-results.sh" "$RESULTS"
|