tests: add a unit test for the init-process option

This commit is contained in:
Jose Diaz-Gonzalez
2022-08-14 13:45:41 -04:00
parent bc4eaa002f
commit f09b960997
3 changed files with 48 additions and 2 deletions

View File

@@ -49,7 +49,7 @@ main() {
fi
PARALLEL_DEPLOY_COUNT="$(plugn trigger "app-json-process-deploy-parallelism" "$APP" "$PROC_TYPE")"
DOKKU_CHECKS_DISABLED="$DOKKU_CHECKS_DISABLED" parallel --will-cite --halt soon,fail=1 --jobs "$PARALLEL_DEPLOY_COUNT" --ungroup <"$PROCESS_TMP_FILE"
DOKKU_CHECKS_DISABLED="$DOKKU_CHECKS_DISABLED" INJECT_INIT_FLAG="$INJECT_INIT_FLAG" parallel --will-cite --halt soon,fail=1 --jobs "$PARALLEL_DEPLOY_COUNT" --ungroup <"$PROCESS_TMP_FILE"
# cleanup when we scale down
if [[ "$PROC_COUNT" == 0 ]]; then

View File

@@ -19,7 +19,7 @@ main() {
DOCKER_ARGS+=" --label=com.dokku.process-type=$PROC_TYPE --label=com.dokku.dyno=$DYNO"
DOCKER_ARGS+=" --env=DYNO=$DYNO"
DOCKER_ARGS+=" --name=$APP.$DYNO.upcoming-$RANDOM"
if [[ "$INJECT_INIT_FLAG" == "false" ]]; then
if [[ "$INJECT_INIT_FLAG" == "true" ]]; then
DOCKER_ARGS+=" --init"
fi
DOCKER_ARGS+=" $DOCKER_RUN_LABEL_ARGS $DOKKU_GLOBAL_RUN_ARGS "

View File

@@ -55,3 +55,49 @@ teardown() {
assert_output "Host(\`$TEST_APP.dokku.me\`)"
assert_success
}
@test "(scheduler-docker-local) init-process" {
run create_app
echo "output: $output"
echo "status: $status"
assert_success
run deploy_app
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "docker inspect --format '{{.HostConfig.Init}}' $TEST_APP.web.1"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "true"
run /bin/bash -c "docker exec $TEST_APP.web.1 ps auxf"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "docker-init"
run /bin/bash -c "dokku scheduler-docker-local:set $TEST_APP init-process false"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "docker inspect --format '{{.HostConfig.Init}}' $TEST_APP.web.1"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "<nil>"
run /bin/bash -c "docker exec $TEST_APP.web.1 ps auxf"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "docker-init" 0
}