| #!/usr/bin/env bash |
| set -e -u -o pipefail |
| |
| ARCH=$(uname -m) |
| if [ "$ARCH" == "x86_64" ]; then |
| ARCH="amd64" |
| fi |
| |
| export DOCKER_ENGINE_GOARCH=${DOCKER_ENGINE_GOARCH:-${ARCH}} |
| |
| # Set defaults |
| : ${TESTFLAGS:=} |
| : ${TESTDEBUG:=} |
| |
| integration_api_dirs=${TEST_INTEGRATION_DIR:-"$( |
| find /tests/integration -type d | |
| grep -vE '(^/tests/integration($|/internal)|/testdata)')"} |
| |
| run_test_integration() { |
| [[ "$TESTFLAGS" != *-check.f* ]] && run_test_integration_suites |
| run_test_integration_legacy_suites |
| } |
| |
| run_test_integration_suites() { |
| local flags="-test.v -test.timeout=${TIMEOUT:-10m} $TESTFLAGS" |
| for dir in $integration_api_dirs; do |
| if ! ( |
| cd $dir |
| echo "Running $PWD" |
| test_env ./test.main $flags |
| ); then exit 1; fi |
| done |
| } |
| |
| run_test_integration_legacy_suites() { |
| ( |
| flags="-check.v -check.timeout=${TIMEOUT:-200m} -test.timeout=360m $TESTFLAGS" |
| cd /tests/integration-cli |
| echo "Running $PWD" |
| test_env ./test.main $flags |
| ) |
| } |
| |
| # use "env -i" to tightly control the environment variables that bleed into the tests |
| test_env() { |
| ( |
| set -e +u |
| [ -n "$TESTDEBUG" ] && set -x |
| env -i \ |
| DOCKER_API_VERSION="$DOCKER_API_VERSION" \ |
| DOCKER_INTEGRATION_DAEMON_DEST="$DOCKER_INTEGRATION_DAEMON_DEST" \ |
| DOCKER_TLS_VERIFY="$DOCKER_TEST_TLS_VERIFY" \ |
| DOCKER_CERT_PATH="$DOCKER_TEST_CERT_PATH" \ |
| DOCKER_ENGINE_GOARCH="$DOCKER_ENGINE_GOARCH" \ |
| DOCKER_GRAPHDRIVER="$DOCKER_GRAPHDRIVER" \ |
| DOCKER_USERLANDPROXY="$DOCKER_USERLANDPROXY" \ |
| DOCKER_HOST="$DOCKER_HOST" \ |
| DOCKER_REMAP_ROOT="$DOCKER_REMAP_ROOT" \ |
| DOCKER_REMOTE_DAEMON="$DOCKER_REMOTE_DAEMON" \ |
| DOCKERFILE="$DOCKERFILE" \ |
| GOPATH="$GOPATH" \ |
| GOTRACEBACK=all \ |
| HOME="$ABS_DEST/fake-HOME" \ |
| PATH="$PATH" \ |
| TEMP="$TEMP" \ |
| TEST_CLIENT_BINARY="$TEST_CLIENT_BINARY" \ |
| "$@" |
| ) |
| } |
| |
| sh /scripts/ensure-emptyfs.sh |
| run_test_integration |