diff --git a/hack/make/test-integration-cli b/hack/make/test-integration-cli index 18e4ee6602..b0506d261a 100644 --- a/hack/make/test-integration-cli +++ b/hack/make/test-integration-cli @@ -4,9 +4,6 @@ DEST=$1 set -e -# subshell so that we can export PATH without breaking other things -( -export PATH="$DEST/../binary:$DEST/../dynbinary:$PATH" DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-vfs} DOCKER_EXECDRIVER=${DOCKER_EXECDRIVER:-native} @@ -14,22 +11,30 @@ bundle_test_integration_cli() { go_test_dir ./integration-cli } -if ! command -v docker &> /dev/null; then - echo >&2 'error: binary or dynbinary must be run before test-integration-cli' - false -fi - -echo "running cli integration tests using graphdriver: '$DOCKER_GRAPHDRIVER' and execdriver: '$DOCKER_EXECDRIVER'" -docker -d -D -s $DOCKER_GRAPHDRIVER -e $DOCKER_EXECDRIVER -p $DEST/docker.pid &> $DEST/docker.log & - -# pull the busybox image before running the tests -sleep 2 -docker pull busybox - -bundle_test_integration_cli 2>&1 \ - | tee $DEST/test.log - -DOCKERD_PID=$(cat $DEST/docker.pid) -kill $DOCKERD_PID -wait $DOCKERD_PID || true -) +# subshell so that we can export PATH without breaking other things +( + export PATH="$DEST/../binary:$DEST/../dynbinary:$PATH" + + if ! command -v docker &> /dev/null; then + echo >&2 'error: binary or dynbinary must be run before test-integration-cli' + false + fi + + ( set -x; exec \ + docker --daemon --debug \ + --storage-driver "$DOCKER_GRAPHDRIVER" \ + --exec-driver "$DOCKER_EXECDRIVER" \ + --pidfile "$DEST/docker.pid" \ + &> "$DEST/docker.log" + ) & + + # pull the busybox image before running the tests + sleep 2 + ( set -x; docker pull busybox ) + + bundle_test_integration_cli + + DOCKERD_PID=$(set -x; cat $DEST/docker.pid) + ( set -x; kill $DOCKERD_PID ) + wait $DOCKERD_PID || true +) 2>&1 | tee $DEST/test.log