telegram-bot-bash/dev/all-tests.sh

55 lines
1.2 KiB
Bash
Raw Normal View History

2019-04-19 15:31:01 +00:00
#!/usr/bin/env bash
# this has to run once atfer git clone
# and every time we create new hooks
2019-04-25 12:24:41 +00:00
#### $$VERSION$$ v0.70-dev2-27-g2da31c1
2019-04-19 15:31:01 +00:00
# magic to ensure that we're always inside the root of our application,
# no matter from which directory we'll run script
GIT_DIR=$(git rev-parse --git-dir)
cd "${GIT_DIR}/.." || exit 1
# create test environment
TESTENV="/tmp/bashbot.test$$"
2019-04-22 08:19:16 +00:00
mkdir "${TESTENV}"
2019-04-22 18:34:43 +00:00
cp -r ./* "${TESTENV}"
2019-04-20 19:09:36 +00:00
cd "test" || exit 1
2019-04-20 14:26:16 +00:00
2019-04-19 15:31:01 +00:00
#set -e
fail=0
tests=0
passed=0
#all_tests=${__dirname:}
#echo PLAN ${#all_tests}
2019-04-22 18:34:43 +00:00
for test in $(find ./*-test.sh | sort -u) ;
2019-04-19 15:31:01 +00:00
do
[ "${test}" = "test/all-tests.sh" ] && continue
[ ! -x "${test}" ] && continue
tests=$((tests+1))
echo "TEST: ${test}"
"${test}" "${TESTENV}"
ret=$?
if [ "$ret" -eq 0 ] ; then
echo "OK: ---- ${test}"
passed=$((passed+1))
else
echo "FAIL: $test $fail"
fail=$((fail+ret))
break
fi
done
if [ "$fail" -eq 0 ]; then
/bin/echo -n 'SUCCESS '
exitcode=0
2019-04-20 19:31:05 +00:00
rm -rf "${TESTENV}"
2019-04-19 15:31:01 +00:00
else
/bin/echo -n 'FAILURE '
exitcode=1
rm -rf "${TESTENV}/test"
find "${TESTENV}/"* ! -name '[a-z]-*' -delete
2019-04-19 15:31:01 +00:00
fi
echo "${passed} / ${tests}"
2019-04-22 08:19:16 +00:00
[ -d "${TESTENV}" ] && echo "Logfiles from run are in ${TESTENV}"
2019-04-19 15:31:01 +00:00
exit ${exitcode}