| #!/usr/bin/env bash | |
| set -e | |
| set -x | |
| MODE=atomic | |
| echo "mode: $MODE" > coverage.txt | |
| # All packages. | |
| PKG=$(go list ./...) | |
| staticcheck $PKG | |
| unused $PKG | |
| # Packages that have any tests. | |
| PKG=$(go list -f '{{if .TestGoFiles}} {{.ImportPath}} {{end}}' ./...) | |
| go test -v $PKG | |
| for d in $PKG; do | |
| go test -race -coverprofile=profile.out -covermode=$MODE $d | |
| if [ -f profile.out ]; then | |
| cat profile.out | grep -v "^mode: " >> coverage.txt | |
| rm profile.out | |
| fi | |
| done | |