mirror of https://github.com/docker/docs.git
51 lines
1.1 KiB
Bash
Executable File
51 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
|
|
|
# Load the helpers.
|
|
. helpers.bash
|
|
|
|
function execute() {
|
|
>&2 echo "++ $@"
|
|
eval "$@"
|
|
}
|
|
|
|
# Tests to run. Defaults to all.
|
|
TESTS=${@:-. discovery api}
|
|
|
|
# Generate a temporary binary for the tests.
|
|
export SWARM_BINARY=`mktemp`
|
|
|
|
# Build Swarm.
|
|
execute time go build -o "$SWARM_BINARY" ../..
|
|
|
|
# Start the docker engine.
|
|
execute docker --daemon --log-level=panic \
|
|
--storage-driver="$STORAGE_DRIVER" --exec-driver="$EXEC_DRIVER" &
|
|
DOCKER_PID=$!
|
|
|
|
# Wait for it to become reachable.
|
|
tries=10
|
|
until docker version &> /dev/null; do
|
|
(( tries-- ))
|
|
if [ $tries -le 0 ]; then
|
|
echo >&2 "error: daemon failed to start"
|
|
exit 1
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
# Pre-fetch the test image.
|
|
execute time docker pull ${DOCKER_IMAGE}:${DOCKER_VERSION} > /dev/null
|
|
|
|
# Run the tests using the same client provided by the test image.
|
|
id=`execute docker create ${DOCKER_IMAGE}:${DOCKER_VERSION}`
|
|
tmp=`mktemp -d`
|
|
execute docker cp "${id}:/usr/local/bin/docker" "$tmp"
|
|
execute docker rm -f "$id" > /dev/null
|
|
export DOCKER_BINARY="${tmp}/docker"
|
|
|
|
# Run the tests.
|
|
execute time bats -p $TESTS
|