| #!/bin/bash |
| set -e |
| |
| DEST=$1 |
| |
| DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-vfs} |
| DOCKER_EXECDRIVER=${DOCKER_EXECDRIVER:-native} |
| |
| bundle_test_integration_cli() { |
| go_test_dir ./integration-cli |
| } |
| |
| # subshell so that we can export PATH without breaking other things |
| exec > >(tee -a $DEST/test.log) 2>&1 |
| ( |
| 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 |
| |
| # intentionally open a couple bogus file descriptors to help test that they get scrubbed in containers |
| exec 41>&1 42>&2 |
| |
| ( 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 |
| |
| source "$(dirname "$BASH_SOURCE")/.ensure-busybox" |
| |
| bundle_test_integration_cli |
| |
| DOCKERD_PID=$(set -x; cat $DEST/docker.pid) |
| ( set -x; kill $DOCKERD_PID ) |
| wait $DOCKERD_PID || true |
| ) |