| #!/usr/bin/env bash |
| set -e |
| |
| # Run Docker's test suite, including sub-packages, and store their output as a bundle |
| # If $TESTFLAGS is set in the environment, it is passed as extra arguments to 'go test'. |
| # You can use this to select certain tests to run, e.g. |
| # |
| # TESTFLAGS='-test.run ^TestBuild$' ./hack/make.sh test-unit |
| # |
| bundle_test_unit() { |
| TESTFLAGS+=" -test.timeout=${TIMEOUT}" |
| INCBUILD="-i" |
| count=0 |
| for flag in "${BUILDFLAGS[@]}"; do |
| if [ "${flag}" == ${INCBUILD} ]; then |
| unset BUILDFLAGS[${count}] |
| break |
| fi |
| count=$[ ${count} + 1 ] |
| done |
| |
| date |
| if [ -z "$TESTDIRS" ]; then |
| TEST_PATH=./... |
| else |
| TEST_PATH=./${TESTDIRS} |
| fi |
| |
| if [ "$(go env GOHOSTOS)" = 'solaris' ]; then |
| pkg_list=$(go list -e \ |
| -f '{{if ne .Name "github.com/docker/docker"}} |
| {{.ImportPath}} |
| {{end}}' \ |
| "${BUILDFLAGS[@]}" $TEST_PATH \ |
| | grep github.com/docker/docker \ |
| | grep -v github.com/docker/docker/vendor \ |
| | grep -v github.com/docker/docker/daemon/graphdriver \ |
| | grep -v github.com/docker/docker/man \ |
| | grep -v github.com/docker/docker/integration-cli) |
| else |
| pkg_list=$(go list -e \ |
| -f '{{if ne .Name "github.com/docker/docker"}} |
| {{.ImportPath}} |
| {{end}}' \ |
| "${BUILDFLAGS[@]}" $TEST_PATH \ |
| | grep github.com/docker/docker \ |
| | grep -v github.com/docker/docker/vendor \ |
| | grep -v github.com/docker/docker/man \ |
| | grep -v github.com/docker/docker/integration-cli) |
| fi |
| |
| go test -cover -ldflags "$LDFLAGS" "${BUILDFLAGS[@]}" $TESTFLAGS $pkg_list |
| } |
| |
| bundle_test_unit 2>&1 | tee -a "$DEST/test.log" |