149 lines
3.0 KiB
Bash
149 lines
3.0 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# go get -u github.com/kisielk/errcheck
|
||
|
# go get -u github.com/golang/lint/golint
|
||
|
# go get -u honnef.co/go/simple/cmd/gosimple
|
||
|
# go get -u honnef.co/go/unused/cmd/unused
|
||
|
# go get -u github.com/mdempsky/unconvert
|
||
|
# go get -u github.com/client9/misspell/cmd/misspell
|
||
|
# go get -u github.com/gordonklaus/ineffassign
|
||
|
# go get -u github.com/fzipp/gocyclo
|
||
|
|
||
|
FILES=$(ls *.go)
|
||
|
|
||
|
echo "Checking gofmt..."
|
||
|
fmtRes=$(gofmt -l -s -d $FILES)
|
||
|
if [ -n "${fmtRes}" ]; then
|
||
|
echo "gofmt checking failed: ${fmtRes}"
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
echo "Checking errcheck..."
|
||
|
# buffer.WriteString always returns nil error; panics if buffer too large
|
||
|
errRes=$(errcheck -blank -ignore 'Write[String|Rune|Byte],os:Close')
|
||
|
# TODO: add -asserts flag (maybe)
|
||
|
if [ $? -ne 0 ]; then
|
||
|
echo "errcheck checking failed: ${errRes}!"
|
||
|
exit 255
|
||
|
fi
|
||
|
if [ -n "${errRes}" ]; then
|
||
|
echo "errcheck checking failed: ${errRes}"
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
echo "Checking govet..."
|
||
|
go vet $FILES
|
||
|
if [ $? -ne 0 ]; then
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
echo "Checking govet -shadow..."
|
||
|
for path in $FILES; do
|
||
|
go tool vet -shadow ${path}
|
||
|
if [ $? -ne 0 ]; then
|
||
|
exit 255
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
echo "Checking golint..."
|
||
|
lintError=0
|
||
|
for path in $FILES; do
|
||
|
lintRes=$(golint ${path})
|
||
|
if [ -n "${lintRes}" ]; then
|
||
|
echo "golint checking ${path} failed: ${lintRes}"
|
||
|
lintError=1
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
if [ ${lintError} -ne 0 ]; then
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
echo "Checking gosimple..."
|
||
|
gosimpleRes=$(gosimple .)
|
||
|
if [ $? -ne 0 ]; then
|
||
|
echo "gosimple checking failed: ${gosimpleRes}!"
|
||
|
exit 255
|
||
|
fi
|
||
|
if [ -n "${gosimpleRes}" ]; then
|
||
|
echo "gosimple checking failed: ${gosimpleRes}"
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
echo "Checking unused..."
|
||
|
unusedRes=$(unused .)
|
||
|
if [ $? -ne 0 ]; then
|
||
|
echo "unused checking failed: ${unusedRes}!"
|
||
|
exit 255
|
||
|
fi
|
||
|
if [ -n "${unusedRes}" ]; then
|
||
|
echo "unused checking failed: ${unusedRes}"
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
echo "Checking unconvert..."
|
||
|
unconvertRes=$(unconvert .)
|
||
|
if [ $? -ne 0 ]; then
|
||
|
echo "unconvert checking failed: ${unconvertRes}!"
|
||
|
exit 255
|
||
|
fi
|
||
|
if [ -n "${unconvertRes}" ]; then
|
||
|
echo "unconvert checking failed: ${unconvertRes}"
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
echo "Checking misspell..."
|
||
|
misspellRes=$(misspell $FILES)
|
||
|
if [ $? -ne 0 ]; then
|
||
|
echo "misspell checking failed: ${misspellRes}!"
|
||
|
exit 255
|
||
|
fi
|
||
|
if [ -n "${misspellRes}" ]; then
|
||
|
echo "misspell checking failed: ${misspellRes}"
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
echo "Checking ineffassign..."
|
||
|
ineffassignRes=$(ineffassign -n .)
|
||
|
if [ $? -ne 0 ]; then
|
||
|
echo "ineffassign checking failed: ${ineffassignRes}!"
|
||
|
exit 255
|
||
|
fi
|
||
|
if [ -n "${ineffassignRes}" ]; then
|
||
|
echo "ineffassign checking failed: ${ineffassignRes}"
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
echo "Checking gocyclo..."
|
||
|
gocycloRes=$(gocyclo -over 20 $FILES)
|
||
|
if [ -n "${gocycloRes}" ]; then
|
||
|
echo "gocyclo warning: ${gocycloRes}"
|
||
|
fi
|
||
|
|
||
|
echo "Running tests..."
|
||
|
if [ -f cover.out ]; then
|
||
|
rm cover.out
|
||
|
fi
|
||
|
|
||
|
go test -timeout 3m --race -cpu 1
|
||
|
if [ $? -ne 0 ]; then
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
go test -timeout 3m --race -cpu 2
|
||
|
if [ $? -ne 0 ]; then
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
go test -timeout 3m --race -cpu 4
|
||
|
if [ $? -ne 0 ]; then
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
go test -timeout 3m -coverprofile cover.out
|
||
|
if [ $? -ne 0 ]; then
|
||
|
exit 255
|
||
|
fi
|
||
|
|
||
|
echo "Success"
|