|
4 | 4 |
|
5 | 5 | DIRNAME="$(dirname "$(readlink -f "$0")")" |
6 | 6 |
|
| 7 | +: "${RABBITMQ_START_TIMEOUT:=20}" |
| 8 | + |
7 | 9 | trap rm_containters EXIT |
| 10 | +trap errors_found ERR |
| 11 | + |
| 12 | +info_msg() { printf "[\033[34mINFO\033[0m] %b\n" "$*"; } |
| 13 | +error_msg() { printf "[\033[31mERROR\033[0m] %b\n" "$*"; } |
8 | 14 |
|
9 | 15 | rm_containters() { |
10 | | - docker kill rdq-rabbitmq >/dev/null 2>&1 |
11 | | - docker kill rdq-busybox >/dev/null 2>&1 |
12 | | - docker kill rdq-test >/dev/null 2>&1 |
| 16 | + docker kill rdq-test >/dev/null 2>&1 || true |
| 17 | + docker kill rdq-busybox >/dev/null 2>&1 || true |
| 18 | + docker kill rdq-rabbitmq >/dev/null 2>&1 || true |
| 19 | +} |
| 20 | + |
| 21 | +errors_found() { |
| 22 | + error_msg "$0 didn't finish correctly: rc [\033[31m$?\033[0m]" |
13 | 23 | } |
14 | 24 |
|
15 | | -# build docker image |
| 25 | +info_msg "Build rabbitmq-dump-queue test image" |
16 | 26 | "${DIRNAME}/build_container" --target test \ |
17 | 27 | >/dev/null 2>&1 |
18 | 28 |
|
19 | | -echo -e "[\033[34mINFO\033[0m] Start rabbitmq container" |
| 29 | +info_msg "Start rabbitmq container" |
20 | 30 | docker run --network=host --rm -q \ |
21 | 31 | --detach \ |
22 | 32 | --name rdq-rabbitmq \ |
23 | 33 | rabbitmq:4-management >/dev/null |
24 | 34 |
|
25 | | -echo -e "[\033[34mINFO\033[0m] Wait for rabbitmq listener" |
| 35 | +info_msg "Wait for rabbitmq listener up to [\033[32m${RABBITMQ_START_TIMEOUT}s\033[0m]" |
26 | 36 | docker run --network=host --rm -q \ |
27 | 37 | --name rdq-busybox \ |
| 38 | + -e N="$RABBITMQ_START_TIMEOUT" \ |
28 | 39 | busybox \ |
29 | | - sh -c 'nc -w 20 -z localhost 5672 >/dev/null' |
| 40 | + sh -c 'while [ $N -ge 0 ]; do nc -z localhost 5672 >/dev/null && exit 0; sleep 1; N=$((N - 1)); done; exit 1' |
30 | 41 |
|
31 | | -echo -e "[\033[34mINFO\033[0m] Run tests" |
| 42 | +info_msg "Run tests" |
32 | 43 | docker run --network=host --rm \ |
33 | 44 | --name rdq-test\ |
34 | 45 | rabbitmq-dump-queue:test |
0 commit comments