test-suite/start-test-suite.sh
changeset 637 71d87ca43d6a
parent 622 c35e69910785
child 638 61dc5370b351
equal deleted inserted replaced
636:a8ab808d33c3 637:71d87ca43d6a
     1 #!/bin/bash
     1 #!/bin/bash
     2 
     2 
       
     3 echo "Starting test server"
       
     4 
       
     5 TESTSERVER_LOGS="/tmp/django_test_server_logs.`date +%F_%T`"
       
     6 
       
     7 cd ..
       
     8 nohup ./bin/django testserver --noinput localhost:8000 initial_data roles_generic test_suite > $TESTSERVER_LOGS 2>&1 &
       
     9 TESTSERVER_PID=$!
       
    10 cd "test-suite"
       
    11 
       
    12 # Exports browsers _BIN variables for karma
     3 export CHROME_BIN=`which chromium`
    13 export CHROME_BIN=`which chromium`
     4 if [ -z "$CHROME_BIN" ]; then
    14 if [ -z "$CHROME_BIN" ]; then
     5     export CHROME_BIN=`which chrome`
    15 	export CHROME_BIN=`which chrome`
     6 fi
    16 fi
     7 if [[ -z "$CHROME_BIN" && $OSTYPE =~ ^darwin ]]; then
    17 if [[ -z "$CHROME_BIN" && $OSTYPE =~ ^darwin ]]; then
     8     CHROME_BIN_BASE=`mdfind "kMDItemCFBundleIdentifier == 'com.google.Chrome'"`
    18 	CHROME_BIN_BASE=`mdfind "kMDItemCFBundleIdentifier == 'com.google.Chrome'"`
     9     export CHROME_BIN="$CHROME_BIN_BASE/Contents/MacOS/Google Chrome"
    19 	export CHROME_BIN="$CHROME_BIN_BASE/Contents/MacOS/Google Chrome"
    10 fi
    20 fi
    11 export PHANTOMJS_BIN=`which phantomjs`
    21 export PHANTOMJS_BIN=`which phantomjs`
    12 
    22 
    13 export FIREFOX_BIN=`which firefox`
    23 export FIREFOX_BIN=`which firefox`
    14 if [[ -z "$FIREFOX_BIN" && $OSTYPE =~ ^darwin ]]; then
    24 if [[ -z "$FIREFOX_BIN" && $OSTYPE =~ ^darwin ]]; then
    15     FIREFOX_BIN_BASE=`mdfind "kMDItemCFBundleIdentifier == 'org.mozilla.firefox'"`
    25 	FIREFOX_BIN_BASE=`mdfind "kMDItemCFBundleIdentifier == 'org.mozilla.firefox'"`
    16     export FIREFOX_BIN="$FIREFOX_BIN_BASE/Contents/MacOS/firefox"
    26 	export FIREFOX_BIN="$FIREFOX_BIN_BASE/Contents/MacOS/firefox"
    17 fi
    27 fi
    18 
    28 
    19 export SAFARI_BIN=`which safari`
    29 export SAFARI_BIN=`which safari`
    20 if [[ -z "$SAFARI_BIN" && $OSTYPE =~ ^darwin ]]; then
    30 if [[ -z "$SAFARI_BIN" && $OSTYPE =~ ^darwin ]]; then
    21     SAFARI_BIN_BASE=`mdfind "kMDItemCFBundleIdentifier == 'com.apple.Safari'"`
    31 	SAFARI_BIN_BASE=`mdfind "kMDItemCFBundleIdentifier == 'com.apple.Safari'"`
    22     export SAFARI_BIN="$SAFARI_BIN_BASE/Contents/MacOS/safari"
    32 	export SAFARI_BIN="$SAFARI_BIN_BASE/Contents/MacOS/safari"
    23 fi
    33 fi
    24 
       
    25 
       
    26 
    34 
    27 if [ -x ./node_modules/.bin/karma ]; then
    35 if [ -x ./node_modules/.bin/karma ]; then
    28    KARMA=./node_modules/.bin/karma
    36    KARMA=./node_modules/.bin/karma
    29 else
    37 else
    30    KARMA=`which karma`
    38    KARMA=`which karma`
    31 fi
    39 fi
    32 
    40 
       
    41 
       
    42 CONNECTION_TIMEOUT=10
       
    43 TESTSERVER_START_WAIT=15
       
    44 TESTSERVER_LOOP_WAIT=5
       
    45 TESTSERVER_WAIT_LOOP_NB=5
       
    46 
       
    47 SERVER_IP=`grep WORKSPACE_URL workspace.info.js | sed "s|^.*http://\([-._[:alnum:]]*\):.*$|\1|"`
       
    48 SERVER_PORT=`grep WORKSPACE_URL workspace.info.js | sed "s|^.*http://[-._[:alnum:]]*:\([0-9]*\)/.*$|\1|"`
       
    49 
       
    50 if [[ -x `which nc` ]]; then
       
    51 	SERVER_TEST_CMD="nc -w $CONNECTION_TIMEOUT -z $SERVER_IP $SERVER_PORT"
       
    52 elif [[ -x `which curl` ]]; then
       
    53 	SERVER_TEST_CMD="curl -m $CONNECTION_TIMEOUT --output /dev/null --silent --head --fail http://$SERVER_IP:$SERVER_PORT"
       
    54 elif [[ -x `which wget` ]]; then
       
    55 	SERVER_TEST_CMD="wget --timeout=$CONNECTION_TIMEOUT -q --spider http://$SERVER_IP:$SERVER_PORT"
       
    56 fi
       
    57 
       
    58 echo "Using '$SERVER_TEST_CMD' to probe test server $SERVER_IP:$SERVER_PORT availability"
       
    59 
       
    60 if [[ -z "$SERVER_TEST_CMD" ]]; then
       
    61 	echo "No http tool available so blindly waiting $TESTSERVER_START_WAIT seconds to let test server start"
       
    62 	sleep $TESTSERVER_START_WAIT
       
    63 else
       
    64 	for i in $(seq 1 $TESTSERVER_WAIT_LOOP_NB); do
       
    65 		echo "and waiting $TESTSERVER_LOOP_WAIT seconds"
       
    66 		sleep $TESTSERVER_LOOP_WAIT
       
    67 		if $SERVER_TEST_CMD; then
       
    68 			break
       
    69 		fi
       
    70 	done
       
    71 	if [ $i -eq $TESTSERVER_WAIT_LOOP_NB ]; then
       
    72 		 echo "timeouted waiting for test server $SERVER_IP:$SERVER_PORT to start"
       
    73 		 exit 1
       
    74 	fi
       
    75 fi
       
    76 
       
    77 echo "---------------------"
       
    78 echo "$KARMA start $@"
    33 "$KARMA" start $@
    79 "$KARMA" start $@
       
    80 # echo "Kill test server pid $TESTSERVER_PID"
       
    81 # echo "---------------------"
       
    82 # kill $TESTSERVER_PID
    34 
    83 
    35