Merge pull request #759 from aluzzardi/integration-race-fixes

integration: Fix API races related to delay in refresh.
This commit is contained in:
Victor Vieux 2015-05-11 16:09:46 -07:00
commit 5b3a03b852
15 changed files with 66 additions and 113 deletions

View File

@ -18,11 +18,9 @@ function teardown() {
# create the container # create the container
docker_swarm run -d --name test_container busybox sleep 500 docker_swarm run -d --name test_container busybox sleep 500
# make sure container is up and no comming file # make sure container is up
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
# grab the checksum of the test file inside the container. # grab the checksum of the test file inside the container.
run docker_swarm exec test_container md5sum $test_file run docker_swarm exec test_container md5sum $test_file
@ -30,10 +28,10 @@ function teardown() {
[ "${#lines[@]}" -ge 1 ] [ "${#lines[@]}" -ge 1 ]
# get the checksum number # get the checksum number
container_checksum=`echo ${lines[0]} | awk '{print $1}'` container_checksum=$(echo ${lines[0]} | awk '{print $1}')
# host file # host file
host_file=$temp_dest/`basename $test_file` host_file=$temp_dest/$(basename $test_file)
[ ! -f $host_file ] [ ! -f $host_file ]
# copy the test file from the container to the host. # copy the test file from the container to the host.
@ -44,10 +42,10 @@ function teardown() {
run md5sum $host_file run md5sum $host_file
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
[ "${#lines[@]}" -ge 1 ] [ "${#lines[@]}" -ge 1 ]
host_checksum=`echo ${lines[0]} | awk '{print $1}'` host_checksum=$(echo ${lines[0]} | awk '{print $1}')
# Verify that they match. # Verify that they match.
[[ "${container_checksum}" == "${host_checksum}" ]] [ "${container_checksum}" == "${host_checksum}" ]
# after ok, remove temp directory and file # after ok, remove temp directory and file
rm -rf $temp_dest rm -rf "$temp_dest"
} }

View File

@ -13,12 +13,10 @@ function teardown() {
docker_swarm run -d --name test_container busybox sleep 500 docker_swarm run -d --name test_container busybox sleep 500
# make sure container is up # make sure container is up
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
# no changs # no changes
run docker_swarm diff test_container run docker_swarm diff test_container
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
[ "${#lines[@]}" -eq 0 ] [ "${#lines[@]}" -eq 0 ]
@ -29,5 +27,5 @@ function teardown() {
# verify # verify
run docker_swarm diff test_container run docker_swarm diff test_container
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
[[ "${lines[*]}" == *"diff.txt"* ]] [[ "${output}" == *"diff.txt"* ]]
} }

View File

@ -20,15 +20,10 @@ function teardown() {
docker_swarm start test_container docker_swarm start test_container
# make sure container is up and not paused # make sure container is up and not paused
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
[[ "${lines[1]}" != *"Paused"* ]]
run docker_swarm exec test_container ls run docker_swarm exec test_container echo foobar
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
[ "${#lines[@]}" -ge 2 ] [ "$output" == "foobar" ]
[[ "${lines[0]}" == *"bin"* ]]
[[ "${lines[1]}" == *"dev"* ]]
} }

View File

@ -14,17 +14,14 @@ function teardown() {
docker_swarm run -d --name test_container busybox sleep 1000 docker_swarm run -d --name test_container busybox sleep 1000
# make sure container is up before killing # make sure container is up before killing
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
# kill # kill
docker_swarm kill test_container docker_swarm kill test_container
# verify # verify
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=exited) ]"
[[ "${lines[1]}" == *"test_container"* ]] [ $(docker_swarm inspect -f '{{ .State.ExitCode }}' test_container) -eq 137 ]
[[ "${lines[1]}" == *"Exited"* ]]
} }

View File

@ -3,6 +3,8 @@
load ../helpers load ../helpers
function teardown() { function teardown() {
# if the state of the container is paused, it can't be removed(rm -f)
run docker_swarm unpause test_container
swarm_manage_cleanup swarm_manage_cleanup
stop_docker stop_docker
} }
@ -14,19 +16,12 @@ function teardown() {
docker_swarm run -d --name test_container busybox sleep 1000 docker_swarm run -d --name test_container busybox sleep 1000
# make sure container is up # make sure container is up
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
docker_swarm pause test_container docker_swarm pause test_container
# verify # verify
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=paused) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Paused"* ]]
# if the state of the container is paused, it can't be removed(rm -f)
docker_swarm unpause test_container
} }

View File

@ -13,10 +13,8 @@ function teardown() {
docker_swarm run -d -p 8000 --name test_container busybox sleep 500 docker_swarm run -d -p 8000 --name test_container busybox sleep 500
# make sure container is up # make sure container is up
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
# port verify # port verify
run docker_swarm port test_container run docker_swarm port test_container

View File

@ -14,17 +14,18 @@ function teardown() {
docker_swarm run -d --name test_container busybox sleep 1000 docker_swarm run -d --name test_container busybox sleep 1000
# make sure container is up # make sure container is up
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]] # Keep track of when the container was started.
local started_at=$(docker_swarm inspect -f '{{ .State.StartedAt }}' test_container)
# restart # restart
docker_swarm restart test_container docker_swarm restart test_container
# verify # verify
run docker_swarm ps -l run docker_swarm ps -l
[ "${#lines[@]}" -eq 2 ] # FIXME(#748): Retry required because of race condition.
[[ "${lines[1]}" == *"test_container"* ]] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"Up"* ]] [ "$(docker_swarm inspect -f '{{ .State.StartedAt }}' test_container)" != "$started_at" ]
} }

View File

@ -32,10 +32,8 @@ function teardown() {
docker_swarm run -d --name test_container busybox sleep 500 docker_swarm run -d --name test_container busybox sleep 500
# make sure container exsists and is up # make sure container exsists and is up
run docker_swarm ps -a # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
# rm, remove a running container, return error # rm, remove a running container, return error
run docker_swarm rm test_container run docker_swarm rm test_container

View File

@ -18,9 +18,7 @@ function teardown() {
# run # run
docker_swarm run -d --name test_container busybox sleep 100 docker_swarm run -d --name test_container busybox sleep 100
# verify, container exists # verify, container is running
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${output}" == *"test_container"* ]]
[[ "${output}" == *"Up"* ]]
} }

View File

@ -20,10 +20,9 @@ function teardown() {
[[ "${lines[1]}" == *"test_container"* ]] [[ "${lines[1]}" == *"test_container"* ]]
# start # start
run docker_swarm start test_container docker_swarm start test_container
[ "$status" -eq 0 ]
run docker_swarm ps -l # Verify
[ "${#lines[@]}" -eq 2 ] # FIXME(#748): Retry required because of race condition.
[[ "${lines[1]}" == *"test_container"* ]] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"Up"* ]]
} }

View File

@ -16,23 +16,19 @@ function teardown() {
docker_swarm run -d --name test_container busybox sleep 50 docker_swarm run -d --name test_container busybox sleep 50
# make sure container is up # make sure container is up
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
# storage the stats output in TEMP_FILE # storage the stats output in TEMP_FILE
# it will stop automatically when manager stop # it will stop automatically when manager stop
docker_swarm stats test_container > $TEMP_FILE & docker_swarm stats test_container > $TEMP_FILE &
# retry until TEMP_FILE is not empty # retry until TEMP_FILE is not empty
retry 5 1 [ -s $TEMP_FILE ] retry 5 1 eval "[ -s $TEMP_FILE ]"
# if "CPU %" in TEMP_FILE, status is 0 # verify content
run grep "CPU %" $TEMP_FILE grep -q "CPU %" "$TEMP_FILE"
[ "$status" -eq 0 ] grep -q "MEM USAGE/LIMIT" "$TEMP_FILE"
run grep "MEM USAGE/LIMIT" $TEMP_FILE
[ "$status" -eq 0 ]
rm -f $TEMP_FILE rm -f $TEMP_FILE
} }

View File

@ -14,17 +14,13 @@ function teardown() {
docker_swarm run -d --name test_container busybox sleep 500 docker_swarm run -d --name test_container busybox sleep 500
# make sure container is up before stop # make sure container is up before stop
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
# stop # stop
docker_swarm stop test_container docker_swarm stop test_container
# verify # verify
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=exited) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Exited"* ]]
} }

View File

@ -14,10 +14,8 @@ function teardown() {
docker_swarm run -d --name test_container busybox sleep 500 docker_swarm run -d --name test_container busybox sleep 500
# make sure container is running # make sure container is running
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
run docker_swarm top test_container run docker_swarm top test_container
[ "$status" -eq 0 ] [ "$status" -eq 0 ]

View File

@ -14,26 +14,19 @@ function teardown() {
docker_swarm run -d --name test_container busybox sleep 1000 docker_swarm run -d --name test_container busybox sleep 1000
# make sure container is up # make sure container is up
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
# pause # pause
docker_swarm pause test_container docker_swarm pause test_container
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=paused) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Paused"* ]]
# unpause # unpause
docker_swarm unpause test_container docker_swarm unpause test_container
# verify # verify
run docker_swarm ps -l # FIXME(#748): Retry required because of race condition.
[ "${#lines[@]}" -eq 2 ] retry 5 0.5 eval "[ -n $(docker_swarm ps -q --filter=name=test_container --filter=status=running) ]"
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
[[ "${lines[1]}" != *"Paused"* ]]
} }

View File

@ -14,15 +14,8 @@ function teardown() {
# run after 1 seconds, test_container will exit # run after 1 seconds, test_container will exit
docker_swarm run -d --name test_container busybox sleep 1 docker_swarm run -d --name test_container busybox sleep 1
# make sure container exists and is up
run docker_swarm ps -l
[ "${#lines[@]}" -eq 2 ]
[[ "${lines[1]}" == *"test_container"* ]]
[[ "${lines[1]}" == *"Up"* ]]
# wait until exist(after 1 seconds) # wait until exist(after 1 seconds)
run timeout 5 docker -H $SWARM_HOST wait test_container run timeout 5 docker -H $SWARM_HOST wait test_container
[ "$status" -eq 0 ]
[ "${#lines[@]}" -eq 1 ]
[[ "${output}" == "0" ]] [[ "${output}" == "0" ]]
} }