| #!/bin/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, eg. |
| # |
| # TESTFLAGS='-test.run ^TestBuild$' ./hack/make.sh test-unit |
| # |
| bundle_test_unit() { |
| TESTFLAGS+=" -test.timeout=${TIMEOUT}" |
| date |
| if [ -z "$TESTDIRS" ]; then |
| TEST_PATH=./... |
| else |
| TEST_PATH=./${TESTDIRS} |
| fi |
| 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) |
| go test $COVER $GCCGOFLAGS -ldflags "$LDFLAGS" "${BUILDFLAGS[@]}" $TESTFLAGS $pkg_list |
| } |
| |
| |
| if [[ "$(go version)" == *"gccgo"* ]]; then |
| GCCGOFLAGS=-gccgoflags="-lpthread" |
| else |
| COVER=-cover |
| fi |
| bundle_test_unit 2>&1 | tee -a "$DEST/test.log" |