derohe-miniblock-mod/run_integration_test.sh

104 lines
2.1 KiB
Bash
Raw Normal View History

2022-01-26 10:05:01 +00:00
#!/usr/bin/env bash
CURDIR=`/bin/pwd`
BASEDIR=$(dirname $0)
ABSPATH=$(readlink -f $0)
ABSDIR=$(dirname $ABSPATH)
# set -x # to enable debug and verbose printing of each and every command
_DEBUG="on"
function DEBUG()
{
[ "$_DEBUG" == "on" ] && $@
}
function check_errs()
{
# Function. Parameter 1 is the return code
# Para. 2 is text to display on failure.
if [ "${1}" -ne "0" ]; then
echo "ERROR # ${1} : ${2}"
# if [ "$#" -eq "3"]; then
echo "logs "
cat /dev/shm/dtest/log.txt
# cat "${3}"
# fi
# as a bonus, make our script exit with the right error code.
# rm -rf /dev/shm/dtest >/dev/null 2>&1
killall -9 simulator >/dev/null 2>&1
exit ${1}
fi
}
function run_single_test()
{
test=${1}
killall -9 simulator >/dev/null 2>&1
rm -rf /dev/shm/dtest >/dev/null 2>&1
mkdir /dev/shm/dtest
cd /dev/shm/dtest
/tmp/simulator --clog-level 2 $disableautomine >/dev/shm/dtest/dero.log 2>&1 &
disown
check_errs $? "Could not run simulator"
echo "Simulator started"
sleep 4
DEBUG echo "running test $test"
rm /dev/shm/dtest/log.txt >/dev/null 2>&1
rm /dev/shm/dtest/log.txt >/dev/null 2>&1
cd $test
$test/run_test.sh >/dev/shm/dtest/log.txt 2>&1
check_errs $? "test failed $test"
killall -9 simulator >/dev/null 2>&1
cd $CURDIR
}
function run_tests()
{
tests=$(find ${1} -mindepth 1 -maxdepth 1 -type d)
for test in $tests; do
run_single_test "$test"
done
}
cd $ABSDIR
go build -o /tmp/ ./cmd/...
check_errs $? "Could not build binaries"
cd $CURDIR
if [[ $# -eq 1 ]]; then # if user requsted single test
if [ -d "$ABSDIR/tests/normal/${1}" ]; then
run_single_test "$ABSDIR/tests/normal/${1}"
exit 0
fi
if [ -d "$ABSDIR/tests/specific/${1}" ]; then
disableautomine="--noautomine"
run_single_test "$ABSDIR/tests/specific/${1}"
exit 0
fi
echo "no such test found ${1}"
exit 0
fi
#we will first run specific/special test cases
disableautomine="--noautomine"
run_tests $ABSDIR/tests/specific
#we will first run normal test cases
disableautomine=""
run_tests $ABSDIR/tests/normal