13
13
declare -i PADDING_LEVEL=0
14
14
declare -i STEP=1
15
15
declare -a REQUIRED_COMPONENTS
16
+ declare -a INIT_ONLY_COMPONENTS
16
17
17
18
find_selenium_dir () {
18
19
TEST_PATH=$1
@@ -112,6 +113,7 @@ init_suite() {
112
113
113
114
begin " Initializing suite $SUITE ..."
114
115
print " > REQUIRED_COMPONENTS: ${REQUIRED_COMPONENTS[*]} "
116
+ print " > INIT_ONLY_COMPONENTS: ${INIT_ONLY_COMPONENTS[*]} "
115
117
print " > TEST_CASES_DIR: ${TEST_CASES_DIR} "
116
118
print " > TEST_CONFIG_DIR: ${TEST_CONFIG_DIR} "
117
119
print " > DOCKER_NETWORK: ${DOCKER_NETWORK} "
@@ -214,20 +216,37 @@ wait_for_oidc_endpoint_docker() {
214
216
calculate_rabbitmq_url () {
215
217
echo " ${RABBITMQ_SCHEME:- http} ://$1 ${PUBLIC_RABBITMQ_PATH:- $RABBITMQ_PATH } "
216
218
}
217
-
219
+ calculate_forward_proxy_url () {
220
+ PROXIED_URL=$1
221
+ PROXY_HOSTNAME=$2
222
+ PROXY_PORT=$3
223
+ SCHEME=$( echo " $PROXIED_URL " | cut -d: -f1)
224
+ PATH=$( echo " $PROXIED_URL " | cut -d/ -f4-)
225
+ echo " $SCHEME ://$PROXY_HOSTNAME :$PROXY_PORT /$PATH "
226
+ }
218
227
wait_for_url () {
219
- BASE_URL=$1
228
+ BASE_URL=$1
220
229
if [[ $BASE_URL == * " localhost" ** ]]; then
221
- wait_for_url_local $BASE_URL
230
+ wait_for_url_local $@
222
231
else
223
- wait_for_url_docker $BASE_URL
232
+ wait_for_url_docker $@
224
233
fi
225
234
}
226
235
wait_for_url_local () {
227
236
url=$1
237
+ proxy=${2:- none}
238
+ proxy_user=${3:- none}
239
+ proxy_pass=$4
240
+ curl_args=" -L -f -v"
228
241
max_retry=10
229
242
counter=0
230
- until (curl -k -L -f -v $url > /dev/null 2>&1 )
243
+ if [[ " $proxy " != " none" && " $proxy " != " " ]]; then
244
+ curl_args=" --proxy ${proxy} ${curl_args} "
245
+ fi
246
+ if [[ " $proxy_user " != " none" && " $proxy_user " != " " ]]; then
247
+ curl_args=" --proxy-user ${proxy_user} :${proxy_pass} ${curl_args} "
248
+ fi
249
+ until (curl $curl_args $url > /dev/null 2>&1 )
231
250
do
232
251
print " Waiting for $url to start (local)"
233
252
sleep 5
@@ -240,7 +259,14 @@ wait_for_url_docker() {
240
259
url=$1
241
260
max_retry=10
242
261
counter=0
243
- until (docker run --net ${DOCKER_NETWORK} --rm curlimages/curl:7.85.0 -k -L -f -v $url > /dev/null 2>&1 )
262
+ curl_args=" -L -f -v"
263
+ if [[ " $proxy " != " none" && " $proxy " != " " ]]; then
264
+ curl_args=" --proxy ${proxy} ${curl_args} "
265
+ fi
266
+ if [[ " $proxy_user " != " none" && " $proxy_user " != " " ]]; then
267
+ curl_args=" --proxy-user ${proxy_user} :${proxy_pass} ${curl_args} "
268
+ fi
269
+ until (docker run --net ${DOCKER_NETWORK} --rm curlimages/curl:7.85.0 $curl_args $url > /dev/null 2>&1 )
244
270
do
245
271
print " Waiting for $url to start (docker)"
246
272
sleep 5
@@ -373,7 +399,8 @@ profiles_with_local_or_docker() {
373
399
generate_env_file () {
374
400
begin " Generating env file ..."
375
401
mkdir -p $CONF_DIR
376
- ${BIN_DIR} /gen-env-file $TEST_CONFIG_DIR $ENV_FILE
402
+ ${BIN_DIR} /gen-env-file $TEST_CONFIG_DIR ${ENV_FILE} .tmp
403
+ grep -v ' ^#' ${ENV_FILE} .tmp > $ENV_FILE
377
404
source $ENV_FILE
378
405
end " Finished generating env file."
379
406
}
@@ -471,6 +498,9 @@ generate-client-keystore-if-required() {
471
498
fi
472
499
}
473
500
501
+ initOnly () {
502
+ determine_init_only_components $@
503
+ }
474
504
run () {
475
505
runWith rabbitmq
476
506
}
@@ -515,6 +545,12 @@ elif [[ "$COMMAND" == "stop-rabbitmq" ]]
515
545
test_local ${BASH_REMATCH[1]}
516
546
fi
517
547
}
548
+ determine_init_only_components () {
549
+ for (( i= 1 ; i<= $# ; i++ )) {
550
+ eval val=' $' $i
551
+ INIT_ONLY_COMPONENTS+=( " $val " )
552
+ }
553
+ }
518
554
determine_required_components_including_rabbitmq () {
519
555
for (( i= 1 ; i<= $# ; i++ )) {
520
556
eval val=' $' $i
@@ -541,7 +577,7 @@ run_on_docker_with() {
541
577
build_mocha_image
542
578
start_selenium
543
579
544
- trap teardown_components EXIT
580
+ trap " teardown_components" EXIT
545
581
546
582
start_components
547
583
test
@@ -618,11 +654,27 @@ ensure_components() {
618
654
start_components () {
619
655
for i in " ${REQUIRED_COMPONENTS[@]} "
620
656
do
621
- start=" start_$i "
622
- $start
657
+ local ret=$( is_init_only_component $i )
658
+ if [[ $ret == 1 ]]
659
+ then
660
+ init=" init_$i "
661
+ $init
662
+ else
663
+ start=" start_$i "
664
+ $start
665
+ fi
623
666
done
624
667
}
625
-
668
+ is_init_only_component () {
669
+ for i in " ${INIT_ONLY_COMPONENTS[@]} "
670
+ do
671
+ if [[ $i == $1 ]]
672
+ then
673
+ return 1
674
+ fi
675
+ done
676
+ return 0
677
+ }
626
678
teardown_components () {
627
679
skip_rabbitmq=${1:- false}
628
680
0 commit comments