| #!/usr/bin/env bash |
| # |
| # Run unit tests |
| # |
| # TESTFLAGS - add additional test flags. Ex: |
| # |
| # TESTFLAGS="-v -run TestBuild" hack/test/unit |
| # |
| # TESTDIRS - run tests for specified packages. Ex: |
| # |
| # TESTDIRS="./pkg/term" hack/test/unit |
| # |
| set -eu -o pipefail |
| |
| TESTFLAGS+=" -test.timeout=${TIMEOUT:-5m}" |
| BUILDFLAGS=( -tags "netgo seccomp libdm_no_deferred_remove" ) |
| TESTDIRS="${TESTDIRS:-"./..."}" |
| |
| exclude_paths="/vendor/|/integration" |
| pkg_list=$(go list $TESTDIRS | grep -vE "($exclude_paths)") |
| |
| for pkg in $pkg_list; do |
| go test "${BUILDFLAGS[@]}" \ |
| -cover \ |
| -coverprofile=profile.out \ |
| -covermode=atomic \ |
| ${TESTFLAGS} \ |
| "${pkg}" |
| |
| if test -f profile.out; then |
| cat profile.out >> coverage.txt |
| rm profile.out |
| fi |
| done |