6
6
# The image has to be available before this script is executed.
7
7
#
8
8
9
- set -exo nounset
9
+ set -xo nounset
10
10
shopt -s nullglob
11
11
12
12
# library from container-common-scripts
@@ -36,14 +36,12 @@ test -n "${IMAGE_NAME-}" || false 'make sure $IMAGE_NAME is defined'
36
36
test -n " ${VERSION-} " || false ' make sure $VERSION is defined'
37
37
test -n " ${OS-} " || false ' make sure $OS is defined'
38
38
39
- CIDFILE_DIR =$( mktemp --suffix=postgresql_test_cidfiles -d)
39
+ CID_FILE_DIR =$( mktemp --suffix=postgresql_test_cidfiles -d)
40
40
41
41
volumes_to_clean=
42
42
images_to_clean=()
43
43
files_to_clean=
44
44
test_dir=" $( readlink -f " $( dirname " $0 " ) " ) "
45
- test_short_summary=' '
46
- TESTSUITE_RESULT=1
47
45
48
46
_cleanup_commands_space=
49
47
_cleanup_commands=
@@ -63,22 +61,6 @@ function cleanup() {
63
61
# Print a big fat separator to find the error easier
64
62
echo " =================================== Cleanup begins here ============================="
65
63
66
- for cidfile in $CIDFILE_DIR /* ; do
67
- CONTAINER=$( cat $cidfile )
68
-
69
- echo " Stopping and removing container $CONTAINER ..."
70
- docker stop $CONTAINER
71
- exit_status=$( docker inspect -f ' {{.State.ExitCode}}' $CONTAINER )
72
- if [ " $exit_status " != " 0" ]; then
73
- echo " Dumping logs for $CONTAINER "
74
- docker logs $CONTAINER
75
- fi
76
- docker rm $CONTAINER
77
- rm $cidfile
78
- echo " Done."
79
- done
80
- rmdir $CIDFILE_DIR
81
-
82
64
ct_path_foreach " $volumes_to_clean " cleanup_volume_dir
83
65
84
66
if test -n " ${images_to_clean-} " ; then
@@ -94,16 +76,8 @@ function cleanup() {
94
76
echo " $_cleanup_commands " | while read -r line; do
95
77
eval " $line "
96
78
done
97
-
98
- echo " $test_short_summary "
99
-
100
- if [ $TESTSUITE_RESULT -eq 0 ] ; then
101
- echo " Tests for ${IMAGE_NAME} succeeded."
102
- else
103
- echo " Tests for ${IMAGE_NAME} failed."
104
- fi
79
+ echo " ================== postgresql-container-specific cleanup ends here ====================="
105
80
}
106
- trap cleanup EXIT
107
81
108
82
cleanup_volume_dir ()
109
83
{
@@ -120,7 +94,7 @@ cleanup_volume_dir ()
120
94
121
95
function get_cid() {
122
96
local id=" $1 " ; shift || return 1
123
- echo $( cat " $CIDFILE_DIR /$id " )
97
+ echo $( cat " $CID_FILE_DIR /$id " )
124
98
}
125
99
126
100
function get_container_ip() {
@@ -182,7 +156,7 @@ function create_container() {
182
156
# TODO: fix all create_container() invocations so that we don't need this,
183
157
# e.g. multiline DOCKER_ARGS var should end by trailing backslashes
184
158
cargs=$( echo " $cargs " | tr ' \n' ' ' )
185
- cidfile=" $CIDFILE_DIR /$name "
159
+ cidfile=" $CID_FILE_DIR /$name "
186
160
# create container with a cidfile in a directory for cleanup
187
161
eval " docker run $cargs --cidfile \$ cidfile -d \$ IMAGE_NAME \"\$ @\" "
188
162
echo " Created container $( cat $cidfile ) "
@@ -288,8 +262,6 @@ assert_container_creation_succeeds ()
288
262
if test -n " $ADMIN_PASS " ; then
289
263
PGUSER=postgres PASS=$ADMIN_PASS DB=$DB test_connection " $name "
290
264
fi
291
-
292
- docker stop " $( get_cid " $name " ) "
293
265
}
294
266
295
267
@@ -439,14 +411,14 @@ function run_tests() {
439
411
function run_slave() {
440
412
local suffix=" $1 " ; shift
441
413
docker run $cluster_args -e POSTGRESQL_MASTER_IP=${master_hostname} \
442
- -d --cidfile ${CIDFILE_DIR } /slave-${suffix} .cid $IMAGE_NAME run-postgresql-slave
414
+ -d --cidfile ${CID_FILE_DIR } /slave-${suffix} .cid $IMAGE_NAME run-postgresql-slave
443
415
}
444
416
445
417
function run_master() {
446
418
local suffix=" $1 " ; shift
447
419
master_args=${master_args-}
448
420
docker run $cluster_args $master_args \
449
- -d --cidfile ${CIDFILE_DIR } /master-${suffix} .cid $IMAGE_NAME run-postgresql-master > /dev/null
421
+ -d --cidfile ${CID_FILE_DIR } /master-${suffix} .cid $IMAGE_NAME run-postgresql-master > /dev/null
450
422
}
451
423
452
424
function test_slave_visibility() {
@@ -544,7 +516,7 @@ function run_master_restart_test() {
544
516
test_slave_visibility
545
517
546
518
echo " Kill the master and create a new one"
547
- local cidfile=$CIDFILE_DIR /master-$cid_suffix .cid
519
+ local cidfile=$CID_FILE_DIR /master-$cid_suffix .cid
548
520
docker kill $( cat $cidfile )
549
521
# Don't forget to remove its .cid file
550
522
rm $cidfile
@@ -621,7 +593,6 @@ $volume_options
621
593
622
594
echo " Changing passwords"
623
595
624
- docker stop $( get_cid ${name} )
625
596
DOCKER_ARGS="
626
597
-e POSTGRESQL_DATABASE=${database}
627
598
-e POSTGRESQL_USER=${user}
@@ -735,8 +706,6 @@ ${mount_opts}
735
706
# need this to wait for the container to start up
736
707
PGUSER=user PASS=password test_connection " $container_name "
737
708
PGUSER=backuser PASS=pass DB=backup test_connection " $container_name "
738
-
739
- docker stop " $( get_cid $container_name ) " > /dev/null
740
709
}
741
710
742
711
run_s2i_test () {
@@ -822,8 +791,6 @@ run_s2i_enable_ssl_test()
822
791
823
792
docker run --rm -e PGPASSWORD=" password" " $IMAGE_NAME " psql " postgresql://postgres@$CONTAINER_IP :5432/postgres?sslmode=require" || \
824
793
false " FAIL: Did not manage to connect using SSL only."
825
-
826
- docker stop " $( get_cid " $container_name " ) "
827
794
}
828
795
829
796
run_s2i_bake_data_test ()
@@ -841,8 +808,6 @@ run_s2i_bake_data_test ()
841
808
842
809
test " hello world" == " $( docker exec " $( get_cid " $container_name " ) " \
843
810
bash -c " psql -tA -c 'SELECT * FROM test;'" ) "
844
-
845
- docker stop " $( get_cid " $container_name " ) "
846
811
}
847
812
848
813
run_pgaudit_test ()
@@ -898,20 +863,11 @@ EOSQL"
898
863
grep -E ' AUDIT: SESSION,.*,.*,READ,SELECT,,,SELECT' " ${data_dir} " /userdata/log/postgresql-* .log
899
864
}
900
865
901
- function run_all_tests() {
902
- for test_case in $TEST_LIST ; do
903
- : " Running test $test_case "
904
- $test_case
905
- done ;
906
- }
907
-
908
866
# configuration defaults
909
867
POSTGRESQL_MAX_CONNECTIONS=100
910
868
POSTGRESQL_MAX_PREPARED_TRANSACTIONS=0
911
869
POSTGRESQL_SHARED_BUFFERS=32MB
912
870
913
- # Run the chosen tests
914
- TEST_LIST=${TESTS:- $TEST_LIST } run_all_tests
915
-
916
- TESTSUITE_RESULT=0
917
- echo " All tests passed."
871
+ ct_enable_cleanup
872
+ TEST_SUMMARY=' '
873
+ TEST_SET=${TESTS:- $TEST_LIST } ct_run_tests_from_testset ' postgresql-container_tests'
0 commit comments