support parallel tests on same host

This commit is contained in:
Michael Hobbs
2016-03-03 18:18:09 -08:00
parent 7dd8d635bc
commit 62731aa434
3 changed files with 20 additions and 22 deletions

View File

@@ -30,12 +30,13 @@ build_nginx_config() {
@test "(core) remove exited containers" {
deploy_app
# make sure we have many exited containers of the same 'type'
run bash -c "for cnt in 1 2 3; do dokku run $TEST_APP hostname; done"
run bash -c "for cnt in 1 2 3; do dokku run $TEST_APP echo $TEST_APP; done"
echo "output: "$output
echo "status: "$status
assert_success
run bash -c "docker ps -a -f 'status=exited' --no-trunc=false | grep '/exec hostname'"
run bash -c "docker ps -a -f 'status=exited' --no-trunc=true | grep \"/exec echo $TEST_APP\""
echo "output: "$output
echo "status: "$status
assert_success
@@ -45,24 +46,20 @@ build_nginx_config() {
assert_success
sleep 5 # wait for dokku cleanup to happen in the background
run bash -c "docker ps -a -f 'status=exited' --no-trunc=false | grep '/exec hostname'"
run bash -c "docker ps -a -f 'status=exited' --no-trunc=true | grep \"/exec echo $TEST_APP\""
echo "output: "$output
echo "status: "$status
assert_failure
run bash -c "docker ps -a -f 'status=exited' -q --no-trunc=false"
echo "output: "$output
echo "status: "$status
assert_output ""
}
@test "(core) run (with DOKKU_RM_CONTAINER/--rm-container)" {
deploy_app
run bash -c "dokku --rm-container run $TEST_APP hostname"
run bash -c "dokku --rm-container run $TEST_APP echo $TEST_APP"
echo "output: "$output
echo "status: "$status
assert_success
run bash -c "docker ps -a -f 'status=exited' --no-trunc=false | grep '/exec hostname'"
run bash -c "docker ps -a -f 'status=exited' --no-trunc=true | grep \"/exec echo $TEST_APP\""
echo "output: "$output
echo "status: "$status
assert_failure
@@ -72,11 +69,11 @@ build_nginx_config() {
echo "status: "$status
assert_success
run bash -c "dokku --rm-container run $TEST_APP hostname"
run bash -c "dokku --rm-container run $TEST_APP echo $TEST_APP"
echo "output: "$output
echo "status: "$status
assert_success
run bash -c "docker ps -a -f 'status=exited' --no-trunc=false | grep '/exec hostname'"
run bash -c "docker ps -a -f 'status=exited' --no-trunc=true | grep \"/exec echo $TEST_APP\""
echo "output: "$output
echo "status: "$status
assert_failure
@@ -91,11 +88,11 @@ build_nginx_config() {
echo "status: "$status
assert_success
run bash -c "dokku --rm-container run $TEST_APP hostname"
run bash -c "dokku --rm-container run $TEST_APP echo $TEST_APP"
echo "output: "$output
echo "status: "$status
assert_success
run bash -c "docker ps -a -f 'status=exited' --no-trunc=false | grep '/exec hostname'"
run bash -c "docker ps -a -f 'status=exited' --no-trunc=true | grep \"/exec echo $TEST_APP\""
echo "output: "$output
echo "status: "$status
assert_failure

View File

@@ -16,8 +16,8 @@ assert_urls() {
run dokku urls $TEST_APP
echo "output: "$output
echo "status: "$status
echo "urls:" $(tr ' ' '\n' <<< "${urls}")
assert_output < <(tr ' ' '\n' <<< "${urls}")
echo "urls:" $(tr ' ' '\n' <<< "${urls}" | sort)
assert_output < <(tr ' ' '\n' <<< "${urls}" | sort)
}
build_nginx_config() {

View File

@@ -8,8 +8,9 @@ PLUGIN_AVAILABLE_PATH=${PLUGIN_AVAILABLE_PATH:="$PLUGIN_PATH/available"}
PLUGIN_ENABLED_PATH=${PLUGIN_ENABLED_PATH:="$PLUGIN_PATH/enabled"}
PLUGIN_CORE_PATH=${PLUGIN_CORE_PATH:="$DOKKU_LIB_ROOT/core-plugins"}
PLUGIN_CORE_AVAILABLE_PATH=${PLUGIN_CORE_AVAILABLE_PATH:="$PLUGIN_CORE_PATH/available"}
TEST_APP=testsuiteapp
CUSTOM_TEMPLATE_SSL_DOMAIN=customssltemplate.dokku.me
UUID=$(tr -dc 'a-z0-9' < /dev/urandom | fold -w 32 | head -n 1)
TEST_APP="rdmtestapp-${UUID}"
# test functions
flunk() {
@@ -112,17 +113,17 @@ assert_exit_status() {
# dokku functions
create_app() {
dokku apps:create $TEST_APP
dokku apps:create "$TEST_APP"
}
destroy_app() {
local RC="$1"; local RC=${RC:=0}
dokku --force apps:destroy $TEST_APP
dokku --force apps:destroy "$TEST_APP"
return "$RC"
}
add_domain() {
dokku domains:add $TEST_APP "$1"
dokku domains:add "$TEST_APP" "$1"
}
# shellcheck disable=SC2119
@@ -213,7 +214,7 @@ setup_client_repo() {
setup_test_tls() {
local TLS_TYPE="$1"; local TLS="/home/dokku/$TEST_APP/tls"
mkdir -p $TLS
mkdir -p "$TLS"
case "$TLS_TYPE" in
wildcard)
@@ -226,8 +227,8 @@ setup_test_tls() {
local TLS_ARCHIVE=server_ssl.tar
;;
esac
tar xf "$BATS_TEST_DIRNAME/$TLS_ARCHIVE" -C $TLS
sudo chown -R dokku:dokku ${TLS}/..
tar xf "$BATS_TEST_DIRNAME/$TLS_ARCHIVE" -C "$TLS"
sudo chown -R dokku:dokku "${TLS}/.."
}
custom_ssl_nginx_template() {