754c4fbe0c
This adds a new build tag named rpctest which must be set in order for rpctest-based tests to be executed. The new build tag is also added to the goclean.sh script which is executed by Travis during continuous integration builds. This change is being made because the rpctest framework requires additional careful user configuration to ensure the version of btcd under test can be programmatically launched from the system path with all of the necessary ports open whereas all of the other tests are self-contained within the test binary itself. Since said additional configuration is typically not done, it leads to a lot of false positives. Putting the tests behind a build tag allows them to remain to be available and run during continuous integration without imposing the additional configuration requirements on users.
38 lines
1.4 KiB
Bash
Executable file
38 lines
1.4 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. golint (https://github.com/golang/lint)
|
|
# 3. go vet (http://golang.org/cmd/vet)
|
|
# 4. race detector (http://blog.golang.org/race-detector)
|
|
# 5. test coverage (http://blog.golang.org/cover)
|
|
|
|
set -ex
|
|
|
|
# Automatic checks
|
|
test -z "$(go fmt $(glide novendor) | tee /dev/stderr)"
|
|
test -z "$(for package in $(glide novendor); do golint $package; done | grep -v 'ALL_CAPS\|OP_\|NewFieldVal' | tee /dev/stderr)"
|
|
test -z "$(go vet $(glide novendor) 2>&1 | tee /dev/stderr)"
|
|
env GORACE="halt_on_error=1" go test -v -race -tags rpctest $(glide novendor)
|
|
|
|
# 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*' \
|
|
-not -path './vendor*' -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
|