Added documentation in comments in test scripts, added example site.sh, moved evaluation of site.sh later in lib.sh to allow site.sh to override more lib.sh variables.
47 lines
1.4 KiB
Bash
Executable file
47 lines
1.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Run test_*.sh tests, continue on error, no logging, print pass/fail summary.
|
|
#
|
|
# This script requires the user to be in the sudo group.
|
|
#
|
|
# The 'pattern' variable determines which test files are executed.
|
|
# By default, run all the tests in the test_*.sh files in this directory.
|
|
|
|
: ${pattern:=test_*.sh}
|
|
|
|
# You can specify tests files to exclude using the 'SKIPLIST' variable in a
|
|
# site.sh file. See example in README.md. Files excluded by the 'SKIPLIST'
|
|
# variable have precedence over files included by the 'pattern' variable.
|
|
|
|
# This script does not take arguments, so if arguments exist, print the Usage
|
|
# in http://docopt.org/ format.
|
|
if [ $# -gt 0 ]; then
|
|
echo "Usage:"
|
|
echo " ${0} # Run all 'test_*.sh' files"
|
|
echo " pattern=<Bash glob pattern> ${0} # Run only files matching the pattern"
|
|
echo ""
|
|
echo "Example:"
|
|
echo " ${0} 2>&1 | tee test.log # Run all tests, output to 'test.log'"
|
|
echo " pattern=test_feature.sh ${0} # Run only the tests in 'test_feature.sh'"
|
|
exit -1
|
|
fi
|
|
|
|
err=0
|
|
for testfile in $pattern; do # For lib.sh the variable must be called testfile
|
|
echo "Running $testfile"
|
|
./$testfile > /dev/null 2>&1
|
|
errcode=$?
|
|
if [ $errcode -ne 0 ]; then
|
|
err=1
|
|
echo -e "\e[31mError in $testfile errcode=$errcode"
|
|
echo -ne "\e[0m"
|
|
fi
|
|
done
|
|
if [ $err -eq 0 ]; then
|
|
echo OK
|
|
else
|
|
echo -e "\e[31mError"
|
|
echo -ne "\e[0m"
|
|
exit -1
|
|
fi
|
|
|
|
|