dev/modules/sysconfig/templates/start-test-suite-full.sh.erb
author ymh <ymh.work@gmail.com>
Fri, 14 Mar 2014 03:08:58 +0100
changeset 609 736fdedb7774
child 628 ecf0e467eeb8
permissions -rwxr-xr-x
clean the test-suite folder. create necessary files in dev env
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
609
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
#!/bin/bash
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
echo "---------------------"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
echo "Starting test server"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
DEV_FOLDER="<%= @vagrant_base_path %>"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
pushd "$DEV_FOLDER" > /dev/null
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
vagrant ssh -c "/srv/comt/src/cm/scripts/test-suite/start-testserver.sh"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
popd > /dev/null
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
CONNECTION_TIMEOUT=10
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
TESTSERVER_START_TIMEOUT=15
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
TESTSERVER_LOOP_WAIT=5
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
TESTSERVER_WAIT_LOOP_NB=10
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
SERVER_IP=`grep WORKSPACE_URL workspace.info.full.js | tail -n -1 | cut -d: -f2 | tr -d " //"`
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
SERVER_PORT=`grep WORKSPACE_URL ./workspace.info.full.js | tail -n -1 | cut -d: -f3 | tr -d " ');"`
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
if [[ -x `which nc` ]]; then
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    SERVER_TEST_CMD="nc -G $CONNECTION_TIMEOUT -z $SERVER_IP $SERVER_PORT"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
elif [[ -x `which curl` ]]; then
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    SERVER_TEST_CMD="curl -m $CONNECTION_TIMEOUT --output /dev/null --silent --head --fail http://$SERVER_IP:$SERVER_PORT"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
elif [[ -x `which wget` ]]; then
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
    SERVER_TEST_CMD="wget --timeout=$CONNECTION_TIMEOUT -q --spider http://$SERVER_IP:$SERVER_PORT"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
fi
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
echo "$SERVER_TEST_CMD"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
echo "---------------------"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
if [[ -z "$SERVER_TEST_CMD" ]]; then
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    echo "Waiting $TESTSERVER_START_TIMEOUT seconds to let test server start"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
    sleep $TESTSERVER_START_TIMEOUT
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
else
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    for i in $(seq 1 $TESTSERVER_WAIT_LOOP_NB); do
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        echo "waiting $TESTSERVER_LOOP_WAIT seconds to let the test server $SERVER_IP:$SERVER_PORT start"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        sleep $TESTSERVER_LOOP_WAIT
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
	if $SERVER_TEST_CMD; then
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
            break
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
        fi
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
    done
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    if [ $i -eq $TESTSERVER_WAIT_LOOP_NB ]; then
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
         echo "could not start test server $SERVER_IP:$SERVER_PORT"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
         exit 1
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    fi
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
fi
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
echo "---------------------"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
echo "Starting karma tests"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
. ./start-test-suite.sh ./karma.conf.full.js $@
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
echo "---------------------"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
echo "stopping test server + output test server logs"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
pushd "$DEV_FOLDER" > /dev/null
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
vagrant ssh -c "/srv/comt/src/cm/scripts/test-suite/clean-testserver.sh"
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
popd /dev/null
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
736fdedb7774 clean the test-suite folder. create necessary files in dev env
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58