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} "
@@ -218,20 +220,37 @@ wait_for_oidc_endpoint_docker() {
218
220
calculate_rabbitmq_url () {
219
221
echo " ${RABBITMQ_SCHEME:- http} ://$1 ${PUBLIC_RABBITMQ_PATH:- $RABBITMQ_PATH } "
220
222
}
221
-
223
+ calculate_forward_proxy_url () {
224
+ PROXIED_URL=$1
225
+ PROXY_HOSTNAME=$2
226
+ PROXY_PORT=$3
227
+ SCHEME=$( echo " $PROXIED_URL " | cut -d: -f1)
228
+ PATH=$( echo " $PROXIED_URL " | cut -d/ -f4-)
229
+ echo " $SCHEME ://$PROXY_HOSTNAME :$PROXY_PORT /$PATH "
230
+ }
222
231
wait_for_url () {
223
- BASE_URL=$1
232
+ BASE_URL=$1
224
233
if [[ $BASE_URL == * " localhost" ** ]]; then
225
- wait_for_url_local $BASE_URL
234
+ wait_for_url_local $@
226
235
else
227
- wait_for_url_docker $BASE_URL
236
+ wait_for_url_docker $@
228
237
fi
229
238
}
230
239
wait_for_url_local () {
231
240
url=$1
241
+ proxy=${2:- none}
242
+ proxy_user=${3:- none}
243
+ proxy_pass=$4
244
+ curl_args=" -L -f -v"
232
245
max_retry=10
233
246
counter=0
234
- until (curl -k -L -f -v $url > /dev/null 2>&1 )
247
+ if [[ " $proxy " != " none" && " $proxy " != " " ]]; then
248
+ curl_args=" --proxy ${proxy} ${curl_args} "
249
+ fi
250
+ if [[ " $proxy_user " != " none" && " $proxy_user " != " " ]]; then
251
+ curl_args=" --proxy-user ${proxy_user} :${proxy_pass} ${curl_args} "
252
+ fi
253
+ until (curl $curl_args $url > /dev/null 2>&1 )
235
254
do
236
255
print " Waiting for $url to start (local)"
237
256
sleep 5
@@ -244,7 +263,14 @@ wait_for_url_docker() {
244
263
url=$1
245
264
max_retry=10
246
265
counter=0
247
- until (docker run --net ${DOCKER_NETWORK} --rm curlimages/curl:7.85.0 -k -L -f -v $url > /dev/null 2>&1 )
266
+ curl_args=" -L -f -v"
267
+ if [[ " $proxy " != " none" && " $proxy " != " " ]]; then
268
+ curl_args=" --proxy ${proxy} ${curl_args} "
269
+ fi
270
+ if [[ " $proxy_user " != " none" && " $proxy_user " != " " ]]; then
271
+ curl_args=" --proxy-user ${proxy_user} :${proxy_pass} ${curl_args} "
272
+ fi
273
+ until (docker run --net ${DOCKER_NETWORK} --rm curlimages/curl:7.85.0 $curl_args $url > /dev/null 2>&1 )
248
274
do
249
275
print " Waiting for $url to start (docker)"
250
276
sleep 5
@@ -377,7 +403,8 @@ profiles_with_local_or_docker() {
377
403
generate_env_file () {
378
404
begin " Generating env file ..."
379
405
mkdir -p $CONF_DIR
380
- ${BIN_DIR} /gen-env-file $TEST_CONFIG_DIR $ENV_FILE
406
+ ${BIN_DIR} /gen-env-file $TEST_CONFIG_DIR ${ENV_FILE} .tmp
407
+ grep -v ' ^#' ${ENV_FILE} .tmp > $ENV_FILE
381
408
source $ENV_FILE
382
409
end " Finished generating env file."
383
410
}
@@ -475,6 +502,9 @@ generate-client-keystore-if-required() {
475
502
fi
476
503
}
477
504
505
+ initOnly () {
506
+ determine_init_only_components $@
507
+ }
478
508
run () {
479
509
runWith rabbitmq
480
510
}
@@ -519,6 +549,12 @@ elif [[ "$COMMAND" == "stop-rabbitmq" ]]
519
549
test_local ${BASH_REMATCH[1]}
520
550
fi
521
551
}
552
+ determine_init_only_components () {
553
+ for (( i= 1 ; i<= $# ; i++ )) {
554
+ eval val=' $' $i
555
+ INIT_ONLY_COMPONENTS+=( " $val " )
556
+ }
557
+ }
522
558
determine_required_components_including_rabbitmq () {
523
559
for (( i= 1 ; i<= $# ; i++ )) {
524
560
eval val=' $' $i
@@ -545,7 +581,7 @@ run_on_docker_with() {
545
581
build_mocha_image
546
582
start_selenium
547
583
548
- trap teardown_components EXIT
584
+ trap " teardown_components" EXIT
549
585
550
586
start_components
551
587
test
@@ -622,11 +658,27 @@ ensure_components() {
622
658
start_components () {
623
659
for i in " ${REQUIRED_COMPONENTS[@]} "
624
660
do
625
- start=" start_$i "
626
- $start
661
+ local ret=$( is_init_only_component $i )
662
+ if [[ $ret == 1 ]]
663
+ then
664
+ init=" init_$i "
665
+ $init
666
+ else
667
+ start=" start_$i "
668
+ $start
669
+ fi
627
670
done
628
671
}
629
-
672
+ is_init_only_component () {
673
+ for i in " ${INIT_ONLY_COMPONENTS[@]} "
674
+ do
675
+ if [[ $i == $1 ]]
676
+ then
677
+ return 1
678
+ fi
679
+ done
680
+ return 0
681
+ }
630
682
teardown_components () {
631
683
skip_rabbitmq=${1:- false}
632
684
0 commit comments