1 #!/bin/bash |
1 #!/bin/bash |
2 |
2 |
3 echo "Starting test server" |
|
4 |
3 |
5 TESTSERVER_LOGS="/tmp/django_test_server_logs.`date +%F_%T`" |
4 TESTSERVER_LOGS="/tmp/django_test_server_logs.`date +%F_%T`" |
6 |
5 |
7 cd .. |
6 if [ -z "$WORKSPACE_INFO" ]; then |
8 nohup ./bin/django testserver --noinput localhost:8000 initial_data roles_generic test_suite > $TESTSERVER_LOGS 2>&1 & |
7 WORKSPACE_INFO="workspace.info.js" |
9 TESTSERVER_PID=$! |
8 fi |
10 cd "test-suite" |
9 |
|
10 WORKSPACE_URL_LINE=`grep -v '^[[:space:]]*//' "$WORKSPACE_INFO" | grep WORKSPACE_URL | head -n 1` |
|
11 echo "Workspace_url_line : $WORKSPACE_URL_LINE" |
|
12 |
|
13 SERVER_IP=`echo "$WORKSPACE_URL_LINE" | sed "s|^.*http://\([-._[:alnum:]]*\).*$|\1|"` |
|
14 if [ "$SERVER_IP" = "$WORKSPACE_URL_LINE" ]; then |
|
15 echo "No ip found in WORKSPACE_URL, using localhost" |
|
16 SERVER_IP="127.0.0.1" |
|
17 fi |
|
18 |
|
19 SERVER_PORT=`echo "$WORKSPACE_URL_LINE" | sed "s|^.*http://[-._[:alnum:]]*:\([0-9]*\).*$|\1|"` |
|
20 if [ "$SERVER_PORT" = "$WORKSPACE_URL_LINE" ]; then |
|
21 echo "No port found in WORKSPACE_URL, using 80" |
|
22 SERVER_PORT="80" |
|
23 fi |
|
24 |
|
25 echo "Test server : $SERVER_IP:$SERVER_PORT" |
|
26 |
|
27 if [ -z "$TESTSERVER_STARTED" ]; then |
|
28 echo "Starting test server" |
|
29 cd .. |
|
30 nohup ./bin/django testserver --noinput localhost:$SERVER_PORT initial_data roles_generic test_suite > $TESTSERVER_LOGS 2>&1 & |
|
31 TESTSERVER_PID=$! |
|
32 cd "test-suite" |
|
33 fi |
11 |
34 |
12 # Exports browsers _BIN variables for karma |
35 # Exports browsers _BIN variables for karma |
13 export CHROME_BIN=`which chromium` |
36 export CHROME_BIN=`which chromium` |
14 if [ -z "$CHROME_BIN" ]; then |
37 if [ -z "$CHROME_BIN" ]; then |
15 export CHROME_BIN=`which chrome` |
38 export CHROME_BIN=`which chrome` |
42 CONNECTION_TIMEOUT=10 |
65 CONNECTION_TIMEOUT=10 |
43 TESTSERVER_START_WAIT=15 |
66 TESTSERVER_START_WAIT=15 |
44 TESTSERVER_LOOP_WAIT=5 |
67 TESTSERVER_LOOP_WAIT=5 |
45 TESTSERVER_WAIT_LOOP_NB=5 |
68 TESTSERVER_WAIT_LOOP_NB=5 |
46 |
69 |
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 |
70 if [[ -x `which nc` ]]; then |
51 SERVER_TEST_CMD="nc -w $CONNECTION_TIMEOUT -z $SERVER_IP $SERVER_PORT" |
71 SERVER_TEST_CMD="nc -w $CONNECTION_TIMEOUT -z $SERVER_IP $SERVER_PORT" |
52 elif [[ -x `which curl` ]]; then |
72 elif [[ -x `which curl` ]]; then |
53 SERVER_TEST_CMD="curl -m $CONNECTION_TIMEOUT --output /dev/null --silent --head --fail http://$SERVER_IP:$SERVER_PORT" |
73 SERVER_TEST_CMD="curl -m $CONNECTION_TIMEOUT --output /dev/null --silent --head --fail http://$SERVER_IP:$SERVER_PORT" |
54 elif [[ -x `which wget` ]]; then |
74 elif [[ -x `which wget` ]]; then |
59 |
79 |
60 if [[ -z "$SERVER_TEST_CMD" ]]; then |
80 if [[ -z "$SERVER_TEST_CMD" ]]; then |
61 echo "No http tool available so blindly waiting $TESTSERVER_START_WAIT seconds to let test server start" |
81 echo "No http tool available so blindly waiting $TESTSERVER_START_WAIT seconds to let test server start" |
62 sleep $TESTSERVER_START_WAIT |
82 sleep $TESTSERVER_START_WAIT |
63 else |
83 else |
|
84 SERVER_STARTED=false |
64 for i in $(seq 1 $TESTSERVER_WAIT_LOOP_NB); do |
85 for i in $(seq 1 $TESTSERVER_WAIT_LOOP_NB); do |
65 echo "and waiting $TESTSERVER_LOOP_WAIT seconds" |
86 echo "and waiting $TESTSERVER_LOOP_WAIT seconds" |
66 sleep $TESTSERVER_LOOP_WAIT |
87 sleep $TESTSERVER_LOOP_WAIT |
67 if $SERVER_TEST_CMD; then |
88 if $SERVER_TEST_CMD; then |
|
89 SERVER_STARTED=true |
68 break |
90 break |
69 fi |
91 fi |
70 done |
92 done |
71 if [ $i -eq $TESTSERVER_WAIT_LOOP_NB ]; then |
93 if ! $SERVER_STARTED && [ $i -eq $TESTSERVER_WAIT_LOOP_NB ]; then |
72 echo "timeouted waiting for test server $SERVER_IP:$SERVER_PORT to start" |
94 echo "timeouted waiting for test server $SERVER_IP:$SERVER_PORT to start" |
73 exit 1 |
95 exit 1 |
74 fi |
96 fi |
75 fi |
97 fi |
76 |
98 |
77 echo "---------------------" |
99 echo "---------------------" |
78 echo "$KARMA start $@" |
100 echo "$KARMA start $@" |
79 "$KARMA" start $@ |
101 "$KARMA" start $@ |
80 |
102 |
81 read -p "Keep testserver (PID $TESTSERVER_PID) running ? (y/N)" -n 1 -r -t 5 |
|
82 echo # (optional) move to a new line |
|
83 |
103 |
84 if [[ $REPLY =~ ^[Yy]$ ]]; then |
104 if [ -z "$TESTSERVER_STARTED" ]; then |
85 exit 0 |
105 read -p "Keep testserver (PID $TESTSERVER_PID) running ? (y/N)" -n 1 -r -t 5 |
|
106 echo # (optional) move to a new line |
|
107 |
|
108 if [[ $REPLY =~ ^[Yy]$ ]]; then |
|
109 exit 0 |
|
110 fi |
|
111 |
|
112 kill $TESTSERVER_PID |
86 fi |
113 fi |
87 |
|
88 kill $TESTSERVER_PID |
|