@@ -32,6 +32,8 @@ SCREENS=${SELENIUM_ROOT_FOLDER}/screens/${SUITE}
3232CONF_DIR=/tmp/selenium/${SUITE}
3333ENV_FILE=$CONF_DIR /.env
3434
35+ rm -rf $CONF_DIR
36+
3537for f in $SCRIPT /components/* ; do
3638 if [[ ! " $f " == * README.md ]]
3739 then
@@ -54,6 +56,9 @@ parse_arguments() {
5456 elif [[ " $1 " == " stop-others" ]]
5557 then
5658 echo " stop-others"
59+ elif [[ " $1 " == " stop-rabbitmq" ]]
60+ then
61+ echo " stop-rabbitmq"
5762 elif [[ " $1 " == " test" ]]
5863 then
5964 echo " test $2 "
@@ -107,7 +112,10 @@ init_suite() {
107112 print " > TEST_CASES_DIR: ${TEST_CASES_DIR} "
108113 print " > TEST_CONFIG_DIR: ${TEST_CONFIG_DIR} "
109114 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} "
111119 print " > ENV_FILE: ${ENV_FILE} "
112120 print " > COMMAND: ${COMMAND} "
113121 end " Initialized suite"
@@ -239,25 +247,68 @@ wait_for_url_docker() {
239247 done
240248}
241249
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+ }
243280test () {
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+
244299 kill_container_if_exist mocha
245- begin " Running tests with env variables :"
300+ begin " Running tests against $RMQ_HOSTNAME with these env variable :"
246301
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}
251302 SELENIUM_TIMEOUT=${SELENIUM_TIMEOUT:- 20000}
252303 SELENIUM_POLLING=${SELENIUM_POLLING:- 500}
253304
254305 print " > SELENIUM_TIMEOUT: ${SELENIUM_TIMEOUT} "
255306 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 } "
259310 print " > RABBITMQ_PATH: ${RABBITMQ_PATH} "
260- print " > RABBITMQ_URL: ${RABBITMQ_URL } "
311+ print " > RABBITMQ_URL: ${RMQ_URL } "
261312 print " > UAA_URL: ${UAA_URL} "
262313 print " > FAKEPORTAL_URL: ${FAKEPORTAL_URL} "
263314 mocha_test_tag=($( md5sum $SELENIUM_ROOT_FOLDER /package.json) )
@@ -270,8 +321,8 @@ test() {
270321 --rm \
271322 --name mocha \
272323 --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 } \
275326 --env UAA_URL=${UAA_URL} \
276327 --env FAKE_PORTAL_URL=${FAKEPORTAL_URL} \
277328 --env RUN_LOCAL=false \
@@ -354,6 +405,9 @@ run_local_with() {
354405 elif [[ " $COMMAND " == " stop-others" ]]
355406 then
356407 teardown_local_others
408+ elif [[ " $COMMAND " == " stop-rabbitmq" ]]
409+ then
410+ stop_local_rabbitmq
357411 elif [[ " $COMMAND " =~ test[[:space:]]* ([^[:space:]]* ) ]]
358412 then
359413 test_local ${BASH_REMATCH[1]}
@@ -466,13 +520,15 @@ start_components() {
466520 $start
467521 done
468522}
523+
469524teardown_components () {
470525 begin " Tear down ..."
471526 for i in " ${REQUIRED_COMPONENTS[@]} "
472527 do
473528 local component=" $i "
529+ stop=" stop_$i "
530+ type " $stop " & > /dev/null && $stop || kill_container_if_exist " $component "
474531 print " Tear down $component "
475- kill_container_if_exist " $component "
476532 done
477533 end " Finished teardown"
478534}
@@ -481,8 +537,9 @@ save_components_logs() {
481537 for i in " ${REQUIRED_COMPONENTS[@]} "
482538 do
483539 local component=" $i "
540+ save=" save_logs_$i "
541+ type " $save " & > /dev/null && $save || save_container_logs " $component "
484542 print " Saving logs for component $component "
485- save_container_logs " $component "
486543 done
487544 end " Finished saving logs"
488545}
0 commit comments