5a9bac9668
Also, update TravisCI goclean script to remove the special casing which ignored 'Id' from the lint output since that exception is no longer needed. It was previously required due to the old version of btcjson, but that is no longer in the repo.
39 lines
1.5 KiB
Bash
Executable file
39 lines
1.5 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' | tee /dev/stderr)"
|
|
test -z "$(go tool vet . 2>&1 | grep -v 'Example\|newestSha' | 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
|