test-unit 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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, e.g.
  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. if [ "$(go env GOHOSTOS)" = 'solaris' ]; then
  27. pkg_list=$(go list -e \
  28. -f '{{if ne .Name "github.com/docker/docker"}}
  29. {{.ImportPath}}
  30. {{end}}' \
  31. "${BUILDFLAGS[@]}" $TEST_PATH \
  32. | grep github.com/docker/docker \
  33. | grep -v github.com/docker/docker/vendor \
  34. | grep -v github.com/docker/docker/daemon/graphdriver \
  35. | grep -v github.com/docker/docker/man \
  36. | grep -v github.com/docker/docker/integration-cli)
  37. else
  38. pkg_list=$(go list -e \
  39. -f '{{if ne .Name "github.com/docker/docker"}}
  40. {{.ImportPath}}
  41. {{end}}' \
  42. "${BUILDFLAGS[@]}" $TEST_PATH \
  43. | grep github.com/docker/docker \
  44. | grep -v github.com/docker/docker/vendor \
  45. | grep -v github.com/docker/docker/man \
  46. | grep -v github.com/docker/docker/integration-cli)
  47. fi
  48. go test -cover -ldflags "$LDFLAGS" "${BUILDFLAGS[@]}" $TESTFLAGS $pkg_list
  49. }
  50. bundle_test_unit 2>&1 | tee -a "$DEST/test.log"