@@ -32,6 +32,8 @@ SCREENS=${SELENIUM_ROOT_FOLDER}/screens/${SUITE}
32
32
CONF_DIR=/tmp/selenium/${SUITE}
33
33
ENV_FILE=$CONF_DIR /.env
34
34
35
+ rm -rf $CONF_DIR
36
+
35
37
for f in $SCRIPT /components/* ; do
36
38
if [[ ! " $f " == * README.md ]]
37
39
then
@@ -54,6 +56,9 @@ parse_arguments() {
54
56
elif [[ " $1 " == " stop-others" ]]
55
57
then
56
58
echo " stop-others"
59
+ elif [[ " $1 " == " stop-rabbitmq" ]]
60
+ then
61
+ echo " stop-rabbitmq"
57
62
elif [[ " $1 " == " test" ]]
58
63
then
59
64
echo " test $2 "
@@ -107,7 +112,10 @@ init_suite() {
107
112
print " > TEST_CASES_DIR: ${TEST_CASES_DIR} "
108
113
print " > TEST_CONFIG_DIR: ${TEST_CONFIG_DIR} "
109
114
print " > DOCKER_NETWORK: ${DOCKER_NETWORK} "
110
- print " > PROFILES: ${PROFILES} "
115
+ print " > initial PROFILES: ${PROFILES} "
116
+ print " > (+) ADDON_PROFILES: ${ADDON_PROFILES} "
117
+ PROFILES=" ${PROFILES} ${ADDON_PROFILES} "
118
+ print " > (=) final PROFILES: ${PROFILES} "
111
119
print " > ENV_FILE: ${ENV_FILE} "
112
120
print " > COMMAND: ${COMMAND} "
113
121
end " Initialized suite"
@@ -239,25 +247,68 @@ wait_for_url_docker() {
239
247
done
240
248
}
241
249
242
-
250
+ test_on_cluster () {
251
+ IFS=' , ' read -r -a array <<< " $RABBITMQ_CLUSTER_NODES"
252
+ begin " Running against all nodes in cluster $RABBITMQ_CLUSTER_NODES :"
253
+ for item in " ${array[@]} "
254
+ do
255
+ RMQ_HOST_0=${RABBITMQ_HOST:- rabbitmq: 15672}
256
+ RMQ_HOST=$( rewrite_rabbitmq_hostname ${item} $RMQ_HOST_0 )
257
+ PUBLIC_RMQ_HOST_0=${PUBLIC_RABBITMQ_HOST:- $RMQ_HOST }
258
+ PUBLIC_RMQ_HOST=$( rewrite_rabbitmq_hostname ${item} $PUBLIC_RMQ_HOST_0 )
259
+ RMQ_URL=$( calculate_rabbitmq_url $PUBLIC_RMQ_HOST )
260
+ RMQ_HOSTNAME=${item}
261
+ _test $RMQ_HOST \
262
+ $PUBLIC_RMQ_HOST \
263
+ $RMQ_URL \
264
+ $RMQ_HOSTNAME
265
+ TEST_RESULT=$?
266
+ if [ $TEST_RESULT -ne 0 ]; then
267
+ break
268
+ fi
269
+ done
270
+ end " Finishing running test ($TEST_RESULT )"
271
+ }
272
+ rewrite_rabbitmq_hostname () {
273
+ IFS=' :' read -r -a array <<< " $2"
274
+ if [ " ${array[0]} " == " rabbitmq" ]; then
275
+ echo " ${2// rabbitmq/ $1 } "
276
+ else
277
+ echo " $2 "
278
+ fi
279
+ }
243
280
test () {
281
+ if [[ " $PROFILES " == * " cluster" * && ! -z " $RABBITMQ_CLUSTER_NODES " ]]; then
282
+ test_on_cluster
283
+ else
284
+ RMQ_HOST=${RABBITMQ_HOST:- rabbitmq: 15672}
285
+ PUBLIC_RMQ_HOST=${PUBLIC_RABBITMQ_HOST:- $RMQ_HOST }
286
+ _test $RABBITMQ_HOST \
287
+ $PUBLIC_RMQ_HOST \
288
+ $( calculate_rabbitmq_url $PUBLIC_RMQ_HOST ) \
289
+ ${RABBITMQ_HOSTNAME:- rabbitmq}
290
+ fi
291
+ }
292
+
293
+ _test () {
294
+ RMQ_HOST=$1
295
+ PUBLIC_RMQ_HOST=$2
296
+ RMQ_URL=$3
297
+ RMQ_HOSTNAME=$4
298
+
244
299
kill_container_if_exist mocha
245
- begin " Running tests with env variables :"
300
+ begin " Running tests against $RMQ_HOSTNAME with these env variable :"
246
301
247
- RABBITMQ_HOST=${RABBITMQ_HOST:- rabbitmq: 15672}
248
- PUBLIC_RABBITMQ_HOST=${PUBLIC_RABBITMQ_HOST:- $RABBITMQ_HOST }
249
- RABBITMQ_URL=$( calculate_rabbitmq_url $PUBLIC_RABBITMQ_HOST )
250
- RABBITMQ_HOSTNAME=${RABBITMQ_HOSTNAME:- rabbitmq}
251
302
SELENIUM_TIMEOUT=${SELENIUM_TIMEOUT:- 20000}
252
303
SELENIUM_POLLING=${SELENIUM_POLLING:- 500}
253
304
254
305
print " > SELENIUM_TIMEOUT: ${SELENIUM_TIMEOUT} "
255
306
print " > SELENIUM_POLLING: ${SELENIUM_POLLING} "
256
- print " > RABBITMQ_HOST: ${RABBITMQ_HOST } "
257
- print " > RABBITMQ_HOSTNAME: ${RABBITMQ_HOSTNAME } "
258
- print " > PUBLIC_RABBITMQ_HOST: ${PUBLIC_RABBITMQ_HOST } "
307
+ print " > RABBITMQ_HOST: ${RMQ_HOST } "
308
+ print " > RABBITMQ_HOSTNAME: ${RMQ_HOSTNAME } "
309
+ print " > PUBLIC_RABBITMQ_HOST: ${PUBLIC_RMQ_HOST } "
259
310
print " > RABBITMQ_PATH: ${RABBITMQ_PATH} "
260
- print " > RABBITMQ_URL: ${RABBITMQ_URL } "
311
+ print " > RABBITMQ_URL: ${RMQ_URL } "
261
312
print " > UAA_URL: ${UAA_URL} "
262
313
print " > FAKEPORTAL_URL: ${FAKEPORTAL_URL} "
263
314
mocha_test_tag=($( md5sum $SELENIUM_ROOT_FOLDER /package.json) )
@@ -270,8 +321,8 @@ test() {
270
321
--rm \
271
322
--name mocha \
272
323
--net ${DOCKER_NETWORK} \
273
- --env RABBITMQ_URL=${RABBITMQ_URL } \
274
- --env RABBITMQ_HOSTNAME=${RABBITMQ_HOSTNAME } \
324
+ --env RABBITMQ_URL=${RMQ_URL } \
325
+ --env RABBITMQ_HOSTNAME=${RMQ_HOSTNAME } \
275
326
--env UAA_URL=${UAA_URL} \
276
327
--env FAKE_PORTAL_URL=${FAKEPORTAL_URL} \
277
328
--env RUN_LOCAL=false \
@@ -354,6 +405,9 @@ run_local_with() {
354
405
elif [[ " $COMMAND " == " stop-others" ]]
355
406
then
356
407
teardown_local_others
408
+ elif [[ " $COMMAND " == " stop-rabbitmq" ]]
409
+ then
410
+ stop_local_rabbitmq
357
411
elif [[ " $COMMAND " =~ test[[:space:]]* ([^[:space:]]* ) ]]
358
412
then
359
413
test_local ${BASH_REMATCH[1]}
@@ -466,13 +520,15 @@ start_components() {
466
520
$start
467
521
done
468
522
}
523
+
469
524
teardown_components () {
470
525
begin " Tear down ..."
471
526
for i in " ${REQUIRED_COMPONENTS[@]} "
472
527
do
473
528
local component=" $i "
529
+ stop=" stop_$i "
530
+ type " $stop " & > /dev/null && $stop || kill_container_if_exist " $component "
474
531
print " Tear down $component "
475
- kill_container_if_exist " $component "
476
532
done
477
533
end " Finished teardown"
478
534
}
@@ -481,8 +537,9 @@ save_components_logs() {
481
537
for i in " ${REQUIRED_COMPONENTS[@]} "
482
538
do
483
539
local component=" $i "
540
+ save=" save_logs_$i "
541
+ type " $save " & > /dev/null && $save || save_container_logs " $component "
484
542
print " Saving logs for component $component "
485
- save_container_logs " $component "
486
543
done
487
544
end " Finished saving logs"
488
545
}
0 commit comments