summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerhard Lazu <gerhard@users.noreply.github.com>2017-08-22 20:17:30 +0200
committerGitHub <noreply@github.com>2017-08-22 20:17:30 +0200
commit4e94918a957bfee5905e75c89c14e2e7e9b74600 (patch)
treec92c58b155a00fc1555f4b9fd43c86e5e9ccfac0
parentb02a53eebde065e51e0dc9c4041756950003b0a2 (diff)
parentc89e694abddc7df23ec1da180ddfbfe4909e97ab (diff)
downloadrabbitmq-server-git-4e94918a957bfee5905e75c89c14e2e7e9b74600.tar.gz
Merge pull request #1339 from rabbitmq/rabbitmq-server-1338
Read rabbitmq-env.conf a bit earlier to pick up two variables
-rw-r--r--Makefile18
-rwxr-xr-xscripts/rabbitmq-env9
-rw-r--r--test/rabbitmq-env.bats19
3 files changed, 41 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 46de9c6a38..3e3f3b23e9 100644
--- a/Makefile
+++ b/Makefile
@@ -149,6 +149,24 @@ ERLANG_MK_COMMIT = rabbitmq-tmp
include rabbitmq-components.mk
include erlang.mk
+ifeq ($(strip $(BATS)),)
+BATS := $(ERLANG_MK_TMP)/bats/bin/bats
+endif
+
+BATS_GIT ?= https://github.com/sstephenson/bats
+BATS_COMMIT ?= v0.4.0
+
+$(BATS):
+ $(verbose) mkdir -p $(ERLANG_MK_TMP)
+ $(gen_verbose) git clone --depth 1 --branch=$(BATS_COMMIT) $(BATS_GIT) $(ERLANG_MK_TMP)/bats
+
+.PHONY: bats
+
+bats: $(BATS)
+ $(verbose) $(BATS) $(TEST_DIR)
+
+tests:: bats
+
SLOW_CT_SUITES := backing_queue \
cluster_rename \
clustering_management \
diff --git a/scripts/rabbitmq-env b/scripts/rabbitmq-env
index 52fb4034b0..8cc3af56ae 100755
--- a/scripts/rabbitmq-env
+++ b/scripts/rabbitmq-env
@@ -76,6 +76,10 @@ RABBITMQ_HOME="$(rmq_realpath "${RABBITMQ_SCRIPTS_DIR}/..")"
## Set defaults
. ${RABBITMQ_SCRIPTS_DIR}/rabbitmq-defaults
+## Get configuration variables from the configure environment file
+[ "x" = "x$RABBITMQ_CONF_ENV_FILE" ] && RABBITMQ_CONF_ENV_FILE=${CONF_ENV_FILE}
+[ -f ${RABBITMQ_CONF_ENV_FILE} ] && . ${RABBITMQ_CONF_ENV_FILE} || true
+
DEFAULT_SCHEDULER_BIND_TYPE="db"
[ "x" = "x$RABBITMQ_SCHEDULER_BIND_TYPE" ] && RABBITMQ_SCHEDULER_BIND_TYPE=${DEFAULT_SCHEDULER_BIND_TYPE}
@@ -90,11 +94,6 @@ SERVER_ERL_ARGS="+P 1048576 +t 5000000 +stbt $RABBITMQ_SCHEDULER_BIND_TYPE +zdbb
# it and warn the user.
saved_RABBITMQ_PID_FILE=$RABBITMQ_PID_FILE
-## Get configuration variables from the configure environment file
-[ "x" = "x$RABBITMQ_CONF_ENV_FILE" ] && RABBITMQ_CONF_ENV_FILE=${CONF_ENV_FILE}
-
-[ -f ${RABBITMQ_CONF_ENV_FILE} ] && . ${RABBITMQ_CONF_ENV_FILE} || true
-
if [ "$saved_RABBITMQ_PID_FILE" -a \
"$saved_RABBITMQ_PID_FILE" != "$RABBITMQ_PID_FILE" ]; then
echo "WARNING: RABBITMQ_PID_FILE was already set by the init script to:" 1>&2
diff --git a/test/rabbitmq-env.bats b/test/rabbitmq-env.bats
new file mode 100644
index 0000000000..cbe4a27765
--- /dev/null
+++ b/test/rabbitmq-env.bats
@@ -0,0 +1,19 @@
+@test "can set RABBITMQ_SCHEDULER_BIND_TYPE from rabbitmq-env.conf" {
+ declare -r scripts_dir="$BATS_TEST_DIRNAME/../scripts"
+ export RABBITMQ_SCRIPTS_DIR="$scripts_dir"
+ export RABBITMQ_CONF_ENV_FILE="$BATS_TMPDIR/rabbitmq-env.conf"
+ echo 'RABBITMQ_SCHEDULER_BIND_TYPE=u' > "$RABBITMQ_CONF_ENV_FILE"
+ source "$scripts_dir/rabbitmq-env"
+ echo "expect RABBITMQ_SERVER_ERL_ARGS to contain '+stbt u' but got '$SERVER_ERL_ARGS'"
+ [[ $RABBITMQ_SERVER_ERL_ARGS == *+stbt\ u* ]]
+}
+
+@test "can set RABBITMQ_DISTRIBUTION_BUFFER_SIZE from rabbitmq-env.conf" {
+ declare -r scripts_dir="$BATS_TEST_DIRNAME/../scripts"
+ export RABBITMQ_SCRIPTS_DIR="$scripts_dir"
+ export RABBITMQ_CONF_ENV_FILE="$BATS_TMPDIR/rabbitmq-env.conf"
+ echo 'RABBITMQ_DISTRIBUTION_BUFFER_SIZE=123456' > "$RABBITMQ_CONF_ENV_FILE"
+ source "$scripts_dir/rabbitmq-env"
+ echo "expect RABBITMQ_SERVER_ERL_ARGS to contain '+zdbbl 123456' but got '$SERVER_ERL_ARGS'"
+ [[ $RABBITMQ_SERVER_ERL_ARGS == *+zdbbl\ 123456* ]]
+}