c2ed8ffc2b
This commit corrects various things found by the static checkers (comments, unkeyed fields, return after some if/else). Add generated files and legacy files to the whitelist to be ignored. Catch .travis.yml up with btcd so goclean can be run.
39 lines
1.6 KiB
Bash
Executable file
39 lines
1.6 KiB
Bash
Executable file
#!/bin/bash
|
|
# The script does automatic checking on a Go package and its sub-packages, including:
|
|
# 1. gofmt (http://golang.org/cmd/gofmt/)
|
|
# 2. goimports (https://github.com/bradfitz/goimports)
|
|
# 3. golint (https://github.com/golang/lint)
|
|
# 4. go vet (http://golang.org/cmd/vet)
|
|
# 5. race detector (http://blog.golang.org/race-detector)
|
|
# 6. test coverage (http://blog.golang.org/cover)
|
|
|
|
set -ex
|
|
|
|
# Automatic checks
|
|
test -z "$(gofmt -l -w . | tee /dev/stderr)"
|
|
test -z "$(goimports -l -w . | tee /dev/stderr)"
|
|
test -z "$(golint ./... | grep -v 'ALL_CAPS\|OP_\|NewFieldVal\|RpcCommand\|RpcRawCommand\|RpcSend\|Dns\|api.pb.go\|StartConsensusRpc\|factory_test.go\|legacy' | tee /dev/stderr)"
|
|
test -z "$(go tool vet . 2>&1 | grep -v 'Example\|newestSha\|rpcserver/server.go' | tee /dev/stderr)"
|
|
env GORACE="halt_on_error=1" go test -v -race ./...
|
|
|
|
# Run test coverage on each subdirectories and merge the coverage profile.
|
|
|
|
set +x
|
|
echo "mode: count" > profile.cov
|
|
|
|
# Standard go tooling behavior is to ignore dirs with leading underscores.
|
|
for dir in $(find . -maxdepth 10 -not -path '.' -not -path './.git*' \
|
|
-not -path '*/_*' -not -path './cmd*' -not -path './release*' -type d)
|
|
do
|
|
if ls $dir/*.go &> /dev/null; then
|
|
go test -covermode=count -coverprofile=$dir/profile.tmp $dir
|
|
if [ -f $dir/profile.tmp ]; then
|
|
cat $dir/profile.tmp | tail -n +2 >> profile.cov
|
|
rm $dir/profile.tmp
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# To submit the test coverage result to coveralls.io,
|
|
# use goveralls (https://github.com/mattn/goveralls)
|
|
# goveralls -coverprofile=profile.cov -service=travis-ci
|