test-unit 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/bin/bash
  2. set -e
  3. # Run Docker's test suite, including sub-packages, and store their output as a bundle
  4. # If $TESTFLAGS is set in the environment, it is passed as extra arguments to 'go test'.
  5. # You can use this to select certain tests to run, eg.
  6. #
  7. # TESTFLAGS='-test.run ^TestBuild$' ./hack/make.sh test-unit
  8. #
  9. bundle_test_unit() {
  10. TESTFLAGS+=" -test.timeout=${TIMEOUT}"
  11. INCBUILD="-i"
  12. count=0
  13. for flag in "${BUILDFLAGS[@]}"; do
  14. if [ "${flag}" == ${INCBUILD} ]; then
  15. unset BUILDFLAGS[${count}]
  16. break
  17. fi
  18. count=$[ ${count} + 1 ]
  19. done
  20. date
  21. if [ -z "$TESTDIRS" ]; then
  22. TEST_PATH=./...
  23. else
  24. TEST_PATH=./${TESTDIRS}
  25. fi
  26. pkg_list=$(go list -e \
  27. -f '{{if ne .Name "github.com/docker/docker"}}
  28. {{.ImportPath}}
  29. {{end}}' \
  30. "${BUILDFLAGS[@]}" $TEST_PATH \
  31. | grep github.com/docker/docker \
  32. | grep -v github.com/docker/docker/vendor \
  33. | grep -v github.com/docker/docker/man \
  34. | grep -v github.com/docker/docker/integration-cli)
  35. go test $COVER $GCCGOFLAGS -ldflags "$LDFLAGS" "${BUILDFLAGS[@]}" $TESTFLAGS $pkg_list
  36. }
  37. if [[ "$(go version)" == *"gccgo"* ]]; then
  38. GCCGOFLAGS=-gccgoflags="-lpthread"
  39. else
  40. COVER=-cover
  41. fi
  42. bundle_test_unit 2>&1 | tee -a "$DEST/test.log"