#!/bin/sh OPT_CREATE_REDIS=yes # create the redis test environment OPT_CREATE_PGSQL=yes # create the PostgreSQL test environment OPT_DROP_REDIS=yes # drop the redis test environment OPT_DROP_PGSQL=yes # drop the PostgreSQL test environment export PGAPPNAME=cartodb_tiler_tester cd $(dirname $0) BASEDIR=$(pwd) cd - REDIS_PORT=`node -e "console.log(require('${BASEDIR}/config/environments/test.js').redis.port)"` export REDIS_PORT cleanup() { if test x"$OPT_DROP_REDIS" = 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 "Killing test redis pid ${PID_REDIS}" kill ${PID_REDIS} fi if test x"$OPT_DROP_PGSQL" = xyes; then # TODO: drop postgresql ? echo "Dropping PostgreSQL test database isn't implemented yet" 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 # This is kept for backward compatibility if test "$1" = "--nodrop"; then OPT_DROP_REDIS=no OPT_DROP_PGSQL=no shift continue elif test "$1" = "--nodrop-pg"; then OPT_DROP_PGSQL=no shift continue elif test "$1" = "--nodrop-redis"; then OPT_DROP_REDIS=no shift continue elif test "$1" = "--nocreate-pg"; then OPT_CREATE_PGSQL=no shift continue elif test "$1" = "--nocreate-redis"; then OPT_CREATE_REDIS=no shift continue # This is kept for backward compatibility elif test "$1" = "--nocreate"; then OPT_CREATE_REDIS=no OPT_CREATE_PGSQL=no shift continue else break fi done if [ -z "$1" ]; then echo "Usage: $0 [] []" >&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_REDIS" = 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 fi PREPARE_DB_OPTS= if test x"$OPT_CREATE_PGSQL" != xyes; then PREPARE_DB_OPTS="$PREPARE_DB_OPTS --skip-pg" fi if test x"$OPT_CREATE_REDIS" != xyes; then PREPARE_DB_OPTS="$PREPARE_DB_OPTS --skip-redis" fi echo "Preparing the environment" cd ${BASEDIR}/test/support sh prepare_db.sh ${PREPARE_DB_OPTS} || die "database preparation failure" cd - PATH=node_modules/.bin/:$PATH echo "Running tests" mocha -t 10000 -u tdd ${MOCHA_OPTS} ${TESTS} ret=$? cleanup exit $ret