mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00

Travis doesn't print out the final result of integration tests sometimes, and verbose mode helps us debug.
80 lines
2.1 KiB
Bash
Executable File
80 lines
2.1 KiB
Bash
Executable File
#!/bin/bash -e
|
|
#
|
|
# Run all etcd tests
|
|
# ./test
|
|
# ./test -v
|
|
#
|
|
# Run tests for one package
|
|
#
|
|
# PKG=./wal ./test
|
|
# PKG=snap ./test
|
|
|
|
# Invoke ./cover for HTML output
|
|
COVER=${COVER:-"-cover"}
|
|
|
|
source ./build
|
|
|
|
# Hack: gofmt ./ will recursively check the .git directory. So use *.go for gofmt.
|
|
TESTABLE_AND_FORMATTABLE="client discovery error etcdctl/command etcdmain etcdserver etcdserver/etcdhttp etcdserver/etcdhttp/httptypes migrate pkg/fileutil pkg/flags pkg/idutil pkg/ioutil pkg/netutil pkg/osutil pkg/pbutil pkg/types pkg/transport pkg/wait proxy raft snap store version wal"
|
|
# TODO: add it to race testing when the issue is resolved
|
|
# https://github.com/golang/go/issues/9946
|
|
NO_RACE_TESTABLE="rafthttp"
|
|
FORMATTABLE="$TESTABLE_AND_FORMATTABLE $NO_RACE_TESTABLE *.go etcdctl/ integration"
|
|
|
|
# user has not provided PKG override
|
|
if [ -z "$PKG" ]; then
|
|
TEST=$TESTABLE_AND_FORMATTABLE
|
|
NO_RACE_TEST=$NO_RACE_TESTABLE
|
|
FMT=$FORMATTABLE
|
|
|
|
# user has provided PKG override
|
|
else
|
|
# strip out leading dotslashes and trailing slashes from PKG=./foo/
|
|
TEST=${PKG/#./}
|
|
TEST=${TEST/#\//}
|
|
TEST=${TEST/%\//}
|
|
|
|
# only run gofmt on packages provided by user
|
|
FMT="$TEST"
|
|
fi
|
|
|
|
# split TEST into an array and prepend REPO_PATH to each local package
|
|
split=(${TEST// / })
|
|
TEST=${split[@]/#/${REPO_PATH}/}
|
|
split=(${NO_RACE_TEST// / })
|
|
NO_RACE_TEST=${split[@]/#/${REPO_PATH}/}
|
|
|
|
echo "Running tests..."
|
|
go test -timeout 3m ${COVER} $@ ${TEST} --race
|
|
go test -timeout 3m ${COVER} $@ ${NO_RACE_TEST}
|
|
|
|
if [ -n "$INTEGRATION" ]; then
|
|
echo "Running integration tests..."
|
|
go test -timeout 3m $@ ${REPO_PATH}/integration -v
|
|
fi
|
|
|
|
echo "Checking gofmt..."
|
|
fmtRes=$(gofmt -l $FMT)
|
|
if [ -n "${fmtRes}" ]; then
|
|
echo -e "gofmt checking failed:\n${fmtRes}"
|
|
exit 255
|
|
fi
|
|
|
|
echo "Checking govet..."
|
|
vetRes=$(go vet $TEST)
|
|
if [ -n "${vetRes}" ]; then
|
|
echo -e "govet checking failed:\n${vetRes}"
|
|
exit 255
|
|
fi
|
|
|
|
if command -v go-nyet >/dev/null 2>&1; then
|
|
echo "Checking go-nyet..."
|
|
nyetRes=$(go-nyet -exitWith 0 $FMT)
|
|
if [ -n "${nyetRes}" ]; then
|
|
echo -e "go-nyet checking failed:\n${nyetRes}"
|
|
exit 255
|
|
fi
|
|
fi
|
|
|
|
echo "Success"
|