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
|
2019-04-23 13:57:19 +00:00
|
|
|
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}
|