test scaling different proc types

This commit is contained in:
Michael Hobbs
2015-04-20 20:11:30 -07:00
parent 715921c60e
commit 7348d7790c
2 changed files with 91 additions and 83 deletions

View File

@@ -1 +1,2 @@
web: node web.js
worker: node web.js

View File

@@ -10,109 +10,116 @@ teardown() {
destroy_app
}
@test "(ps) buildstep" {
# CI support: 'Ah. I just spoke with our Docker expert --
# looks like docker exec is built to work with docker-under-libcontainer,
# but we're using docker-under-lxc. I don't have an estimated time for the fix, sorry
skip "circleci does not support docker exec at the moment."
run bash -c "dokku ps $TEST_APP | grep -q \"node web.js\""
echo "output: "$output
echo "status: "$status
assert_success
}
# @test "(ps) buildstep" {
# # CI support: 'Ah. I just spoke with our Docker expert --
# # looks like docker exec is built to work with docker-under-libcontainer,
# # but we're using docker-under-lxc. I don't have an estimated time for the fix, sorry
# skip "circleci does not support docker exec at the moment."
# run bash -c "dokku ps $TEST_APP | grep -q \"node web.js\""
# echo "output: "$output
# echo "status: "$status
# assert_success
# }
@test "(ps) buildstep" {
deploy_app
run bash -c "dokku ps:stop $TEST_APP"
echo "output: "$output
echo "status: "$status
assert_success
for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.*; do
run bash -c "docker ps -q --no-trunc | grep -q $(< $CID_FILE)"
echo "output: "$output
echo "status: "$status
assert_failure
done
# @test "(ps) buildstep" {
# deploy_app
# run bash -c "dokku ps:stop $TEST_APP"
# echo "output: "$output
# echo "status: "$status
# assert_success
# for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.*; do
# run bash -c "docker ps -q --no-trunc | grep -q $(< $CID_FILE)"
# echo "output: "$output
# echo "status: "$status
# assert_failure
# done
run bash -c "dokku ps:start $TEST_APP"
echo "output: "$output
echo "status: "$status
assert_success
for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.*; do
run bash -c "docker ps -q --no-trunc | grep -q $(< $CID_FILE)"
echo "output: "$output
echo "status: "$status
assert_success
done
# run bash -c "dokku ps:start $TEST_APP"
# echo "output: "$output
# echo "status: "$status
# assert_success
# for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.*; do
# run bash -c "docker ps -q --no-trunc | grep -q $(< $CID_FILE)"
# echo "output: "$output
# echo "status: "$status
# assert_success
# done
run bash -c "dokku ps:restart $TEST_APP"
echo "output: "$output
echo "status: "$status
assert_success
for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.*; do
run bash -c "docker ps -q --no-trunc | grep -q $(< $CID_FILE)"
echo "output: "$output
echo "status: "$status
assert_success
done
# run bash -c "dokku ps:restart $TEST_APP"
# echo "output: "$output
# echo "status: "$status
# assert_success
# for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.*; do
# run bash -c "docker ps -q --no-trunc | grep -q $(< $CID_FILE)"
# echo "output: "$output
# echo "status: "$status
# assert_success
# done
run bash -c "dokku ps:rebuild $TEST_APP"
echo "output: "$output
echo "status: "$status
assert_success
for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.*; do
run bash -c "docker ps -q --no-trunc | grep -q $(< $CID_FILE)"
echo "output: "$output
echo "status: "$status
assert_success
done
}
# run bash -c "dokku ps:rebuild $TEST_APP"
# echo "output: "$output
# echo "status: "$status
# assert_success
# for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.*; do
# run bash -c "docker ps -q --no-trunc | grep -q $(< $CID_FILE)"
# echo "output: "$output
# echo "status: "$status
# assert_success
# done
# }
@test "(ps:scale) buildstep" {
run bash -c "dokku ps:scale $TEST_APP web=2"
run bash -c "dokku ps:scale $TEST_APP web=2 worker=2"
echo "output: "$output
echo "status: "$status
assert_success
deploy_app
CIDS=""
for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.web.*; do
CIDS+=$(< $CID_FILE)
CIDS+=" "
for PROC_TYPE in web worker; do
CIDS=""
for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.$PROC_TYPE.*; do
CIDS+=$(< $CID_FILE)
CIDS+=" "
done
CIDS_PATTERN=$(echo $CIDS | sed -e "s: :|:g")
run bash -c "docker ps -q --no-trunc | egrep \"$CIDS_PATTERN\" | wc -l | grep 2"
echo "output: "$output
echo "status: "$status
assert_success
done
CIDS_PATTERN=$(echo $CIDS | sed -e "s: :|:g")
run bash -c "docker ps -q --no-trunc | egrep \"$CIDS_PATTERN\" | wc -l | grep 2"
echo "output: "$output
echo "status: "$status
assert_success
run bash -c "dokku ps:scale $TEST_APP web=1"
run bash -c "dokku ps:scale $TEST_APP web=1 worker=1"
echo "output: "$output
echo "status: "$status
assert_success
CIDS=""
for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.web.*; do
CIDS+=$(< $CID_FILE)
CIDS+=" "
for PROC_TYPE in web worker; do
CIDS=""
for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.$PROC_TYPE.*; do
CIDS+=$(< $CID_FILE)
CIDS+=" "
done
CIDS_PATTERN=$(echo $CIDS | sed -e "s: :|:g")
run bash -c "docker ps -q --no-trunc | egrep \"$CIDS_PATTERN\" | wc -l | grep 1"
echo "output: "$output
echo "status: "$status
assert_success
done
CIDS_PATTERN=$(echo $CIDS | sed -e "s: :|:g")
run bash -c "docker ps -q --no-trunc | egrep \"$CIDS_PATTERN\" | wc -l | grep 1"
echo "output: "$output
echo "status: "$status
assert_success
run bash -c "dokku ps:scale $TEST_APP web=0"
run bash -c "dokku ps:scale $TEST_APP web=0 worker=0"
echo "output: "$output
echo "status: "$status
assert_success
CIDS=""
shopt -s nullglob
for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.web.*; do
CIDS+=$(< $CID_FILE)
CIDS+=" "
for PROC_TYPE in web worker; do
CIDS=""
shopt -s nullglob
for CID_FILE in $DOKKU_ROOT/$TEST_APP/CONTAINER.$PROC_TYPE.*; do
CIDS+=$(< $CID_FILE)
CIDS+=" "1
done
shopt -u nullglob
run bash -c "[[ -z \"$CIDS\" ]]"
echo "output: "$output
echo "status: "$status
assert_success
done
run bash -c "[[ -z \"$CIDS\" ]]"
echo "output: "$output
echo "status: "$status
assert_success
}