| author | Simon Descarpentries <sid@sopinspace.com> |
| Tue, 06 May 2014 13:52:01 +0200 | |
| changeset 651 | 9bbc657f6837 |
| parent 641 | 8f7dafe42d15 |
| child 644 | 5ab0dc95fddf |
| permissions | -rwxr-xr-x |
|
622
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
1 |
#!/bin/bash |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
2 |
|
|
637
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
3 |
echo "Starting test server" |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
4 |
|
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
5 |
TESTSERVER_LOGS="/tmp/django_test_server_logs.`date +%F_%T`" |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
6 |
|
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
7 |
cd .. |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
8 |
nohup ./bin/django testserver --noinput localhost:8000 initial_data roles_generic test_suite > $TESTSERVER_LOGS 2>&1 & |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
9 |
TESTSERVER_PID=$! |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
10 |
cd "test-suite" |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
11 |
|
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
12 |
# Exports browsers _BIN variables for karma |
|
622
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
13 |
export CHROME_BIN=`which chromium` |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
14 |
if [ -z "$CHROME_BIN" ]; then |
|
637
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
15 |
export CHROME_BIN=`which chrome` |
|
622
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
16 |
fi |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
17 |
if [[ -z "$CHROME_BIN" && $OSTYPE =~ ^darwin ]]; then |
|
637
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
18 |
CHROME_BIN_BASE=`mdfind "kMDItemCFBundleIdentifier == 'com.google.Chrome'"` |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
19 |
export CHROME_BIN="$CHROME_BIN_BASE/Contents/MacOS/Google Chrome" |
|
622
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
20 |
fi |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
21 |
export PHANTOMJS_BIN=`which phantomjs` |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
22 |
|
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
23 |
export FIREFOX_BIN=`which firefox` |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
24 |
if [[ -z "$FIREFOX_BIN" && $OSTYPE =~ ^darwin ]]; then |
|
637
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
25 |
FIREFOX_BIN_BASE=`mdfind "kMDItemCFBundleIdentifier == 'org.mozilla.firefox'"` |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
26 |
export FIREFOX_BIN="$FIREFOX_BIN_BASE/Contents/MacOS/firefox" |
|
622
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
27 |
fi |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
28 |
|
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
29 |
export SAFARI_BIN=`which safari` |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
30 |
if [[ -z "$SAFARI_BIN" && $OSTYPE =~ ^darwin ]]; then |
|
637
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
31 |
SAFARI_BIN_BASE=`mdfind "kMDItemCFBundleIdentifier == 'com.apple.Safari'"` |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
32 |
export SAFARI_BIN="$SAFARI_BIN_BASE/Contents/MacOS/safari" |
|
622
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
33 |
fi |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
34 |
|
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
35 |
if [ -x ./node_modules/.bin/karma ]; then |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
36 |
KARMA=./node_modules/.bin/karma |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
37 |
else |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
38 |
KARMA=`which karma` |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
39 |
fi |
|
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
40 |
|
|
637
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
41 |
|
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
42 |
CONNECTION_TIMEOUT=10 |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
43 |
TESTSERVER_START_WAIT=15 |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
44 |
TESTSERVER_LOOP_WAIT=5 |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
45 |
TESTSERVER_WAIT_LOOP_NB=5 |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
46 |
|
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
47 |
SERVER_IP=`grep WORKSPACE_URL workspace.info.js | sed "s|^.*http://\([-._[:alnum:]]*\):.*$|\1|"` |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
48 |
SERVER_PORT=`grep WORKSPACE_URL workspace.info.js | sed "s|^.*http://[-._[:alnum:]]*:\([0-9]*\)/.*$|\1|"` |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
49 |
|
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
50 |
if [[ -x `which nc` ]]; then |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
51 |
SERVER_TEST_CMD="nc -w $CONNECTION_TIMEOUT -z $SERVER_IP $SERVER_PORT" |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
52 |
elif [[ -x `which curl` ]]; then |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
53 |
SERVER_TEST_CMD="curl -m $CONNECTION_TIMEOUT --output /dev/null --silent --head --fail http://$SERVER_IP:$SERVER_PORT" |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
54 |
elif [[ -x `which wget` ]]; then |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
55 |
SERVER_TEST_CMD="wget --timeout=$CONNECTION_TIMEOUT -q --spider http://$SERVER_IP:$SERVER_PORT" |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
56 |
fi |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
57 |
|
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
58 |
echo "Using '$SERVER_TEST_CMD' to probe test server $SERVER_IP:$SERVER_PORT availability" |
|
622
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
59 |
|
|
637
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
60 |
if [[ -z "$SERVER_TEST_CMD" ]]; then |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
61 |
echo "No http tool available so blindly waiting $TESTSERVER_START_WAIT seconds to let test server start" |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
62 |
sleep $TESTSERVER_START_WAIT |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
63 |
else |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
64 |
for i in $(seq 1 $TESTSERVER_WAIT_LOOP_NB); do |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
65 |
echo "and waiting $TESTSERVER_LOOP_WAIT seconds" |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
66 |
sleep $TESTSERVER_LOOP_WAIT |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
67 |
if $SERVER_TEST_CMD; then |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
68 |
break |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
69 |
fi |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
70 |
done |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
71 |
if [ $i -eq $TESTSERVER_WAIT_LOOP_NB ]; then |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
72 |
echo "timeouted waiting for test server $SERVER_IP:$SERVER_PORT to start" |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
73 |
exit 1 |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
74 |
fi |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
75 |
fi |
|
622
c35e69910785
Déplace le dossier test-suite concernant plus Karma que Django à la racine ; avance sur le lancement du server de test par fixture
Simon Descarpentries <sid@sopinspace.com>
parents:
diff
changeset
|
76 |
|
|
637
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
77 |
echo "---------------------" |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
78 |
echo "$KARMA start $@" |
|
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
79 |
"$KARMA" start $@ |
|
638
61dc5370b351
start building a COMT test API, automate testserver starting and stopping
Simon Descarpentries <sid@sopinspace.com>
parents:
637
diff
changeset
|
80 |
|
|
641
8f7dafe42d15
Refine user list tests
Simon Descarpentries <sid@sopinspace.com>
parents:
638
diff
changeset
|
81 |
read -p "Keep testserver (PID $TESTSERVER_PID) running ? (y/N) " -n 1 -r -t 5 |
|
638
61dc5370b351
start building a COMT test API, automate testserver starting and stopping
Simon Descarpentries <sid@sopinspace.com>
parents:
637
diff
changeset
|
82 |
echo # (optional) move to a new line |
|
637
71d87ca43d6a
Integration of django testserver start in start-test-suite.sh
Simon Descarpentries <sid@sopinspace.com>
parents:
622
diff
changeset
|
83 |
|
|
638
61dc5370b351
start building a COMT test API, automate testserver starting and stopping
Simon Descarpentries <sid@sopinspace.com>
parents:
637
diff
changeset
|
84 |
if [[ $REPLY =~ ^[Yy]$ ]]; then |
|
61dc5370b351
start building a COMT test API, automate testserver starting and stopping
Simon Descarpentries <sid@sopinspace.com>
parents:
637
diff
changeset
|
85 |
exit 0 |
|
61dc5370b351
start building a COMT test API, automate testserver starting and stopping
Simon Descarpentries <sid@sopinspace.com>
parents:
637
diff
changeset
|
86 |
fi |
|
61dc5370b351
start building a COMT test API, automate testserver starting and stopping
Simon Descarpentries <sid@sopinspace.com>
parents:
637
diff
changeset
|
87 |
|
|
61dc5370b351
start building a COMT test API, automate testserver starting and stopping
Simon Descarpentries <sid@sopinspace.com>
parents:
637
diff
changeset
|
88 |
kill $TESTSERVER_PID |