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 |
|