dev/modules/sysconfig/templates/start-test-suite-full.sh.erb
author ymh <ymh.work@gmail.com>
Thu, 10 Apr 2014 17:32:23 +0200
changeset 634 fc13092973c2
parent 628 ecf0e467eeb8
permissions -rwxr-xr-x
merge 44634d19db32

#!/bin/bash

echo "---------------------"
echo "Starting test server"

DEV_FOLDER="<%= @vagrant_base_path %>"

pushd "$DEV_FOLDER" > /dev/null
vagrant ssh -c "/srv/comt/test-suite/start-testserver.sh"
popd > /dev/null

CONNECTION_TIMEOUT=10
TESTSERVER_START_TIMEOUT=15
TESTSERVER_LOOP_WAIT=5
TESTSERVER_WAIT_LOOP_NB=10

SERVER_IP=`grep WORKSPACE_URL workspace.info.full.js | tail -n -1 | cut -d: -f2 | tr -d " //"`
SERVER_PORT=`grep WORKSPACE_URL ./workspace.info.full.js | tail -n -1 | cut -d: -f3 | tr -d " ');"`

if [[ -x `which nc` ]]; then
    SERVER_TEST_CMD="nc -G $CONNECTION_TIMEOUT -z $SERVER_IP $SERVER_PORT"
elif [[ -x `which curl` ]]; then
    SERVER_TEST_CMD="curl -m $CONNECTION_TIMEOUT --output /dev/null --silent --head --fail http://$SERVER_IP:$SERVER_PORT"
elif [[ -x `which wget` ]]; then
    SERVER_TEST_CMD="wget --timeout=$CONNECTION_TIMEOUT -q --spider http://$SERVER_IP:$SERVER_PORT"
fi
echo "$SERVER_TEST_CMD"

echo "---------------------"
if [[ -z "$SERVER_TEST_CMD" ]]; then
    echo "Waiting $TESTSERVER_START_TIMEOUT seconds to let test server start"
    sleep $TESTSERVER_START_TIMEOUT
else
    for i in $(seq 1 $TESTSERVER_WAIT_LOOP_NB); do
        echo "waiting $TESTSERVER_LOOP_WAIT seconds to let the test server $SERVER_IP:$SERVER_PORT start"
        sleep $TESTSERVER_LOOP_WAIT
	if $SERVER_TEST_CMD; then
            break
        fi
    done
    if [ $i -eq $TESTSERVER_WAIT_LOOP_NB ]; then
         echo "could not start test server $SERVER_IP:$SERVER_PORT"
         exit 1
    fi
fi

echo "---------------------"
echo "Starting karma tests"
. ./start-test-suite.sh ./karma.conf.full.js $@

echo "---------------------"
echo "stopping test server + output test server logs"

pushd "$DEV_FOLDER" > /dev/null
vagrant ssh -c "/srv/comt/test-suite/clean-testserver.sh"
popd /dev/null