CartoDB-SQL-API/test/run_tests.sh
Sandro Santilli 7eff0cb107 Retain UTC offset in JSON output for dates
Hopefully helps reducing confusion when using timezone-less
with postgresql, in that the time that comes out of JSON output
matches the one input by user, except it may be in an unexpected
timezone (the server's one)
2013-06-19 12:25:48 +02:00

88 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
# Must match redis_port in config/environments/test.js
# TODO: read from there
REDIS_PORT=6333
# To make output dates deterministic
export TZ='Europe/Rome'
OPT_CREATE=yes # create the test environment
OPT_DROP=yes # drop the test environment
cd $(dirname $0)
BASEDIR=$(pwd)
cd -
cleanup() {
if test x"$OPT_DROP" = xyes; then
if test x"$PID_REDIS" = x; then
PID_REDIS=$(cat ${BASEDIR}/redis.pid)
if test x"$PID_REDIS" = x; then
echo "Could not find a test redis pid to kill it"
return;
fi
fi
echo "Cleaning up"
kill ${PID_REDIS}
fi
}
cleanup_and_exit() {
cleanup
exit
}
die() {
msg=$1
echo "${msg}" >&2
cleanup
exit 1
}
trap 'cleanup_and_exit' 1 2 3 5 9 13
while [ -n "$1" ]; do
if test "$1" = "--nodrop"; then
OPT_DROP=no
shift
continue
elif test "$1" = "--nocreate"; then
OPT_CREATE=no
shift
continue
else
break
fi
done
if [ -z "$1" ]; then
echo "Usage: $0 [<options>] <test> [<test>]" >&2
echo "Options:" >&2
echo " --nocreate do not create the test environment on start" >&2
echo " --nodrop do not drop the test environment on exit" >&2
exit 1
fi
TESTS=$@
if test x"$OPT_CREATE" = xyes; then
echo "Starting redis on port ${REDIS_PORT}"
echo "port ${REDIS_PORT}" | redis-server - > ${BASEDIR}/test.log &
PID_REDIS=$!
echo ${PID_REDIS} > ${BASEDIR}/redis.pid
echo "Preparing the environment"
cd ${BASEDIR}; sh prepare_db.sh || die "database preparation failure"; cd -
fi
PATH=node_modules/.bin/:$PATH
echo "Running tests"
mocha -t 5000 -u tdd ${TESTS}
ret=$?
cleanup || exit 1
exit $ret