From 229ec3602d7ec3dfc638b7f1f09d19208713cbe8 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Wed, 3 Apr 2019 13:03:17 -0500 Subject: [PATCH] test: add coveralls support --- .travis.yml | 3 +++ test_linux.sh | 42 ++++++++++++++++++++++++++++++------------ 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index aa18b8ce..822c29ae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,6 +29,9 @@ matrix: install: - go get github.com/onsi/ginkgo/ginkgo - go get github.com/containernetworking/cni/cnitool + - go get golang.org/x/tools/cmd/cover + - go get github.com/modocache/gover + - go get github.com/mattn/goveralls script: - | diff --git a/test_linux.sh b/test_linux.sh index c5e4d6fa..858534b3 100755 --- a/test_linux.sh +++ b/test_linux.sh @@ -6,35 +6,53 @@ # set -e +# switch into the repo root directory +cd "$(dirname $0)" + +# Build all plugins before testing source ./build_linux.sh echo "Running tests" -GINKGO_FLAGS="-p --randomizeAllSpecs --randomizeSuites --failOnPending --progress --skipPackage=pkg/hns" +function testrun { + sudo -E bash -c "umask 0; cd ${GOPATH}/src; PATH=${GOROOT}/bin:$(pwd)/bin:${PATH} go test $@" +} -# user has not provided PKG override -if [ -z "$PKG" ]; then - GINKGO_FLAGS="$GINKGO_FLAGS -r ." - LINT_TARGETS="./..." +COVERALLS=${COVERALLS:-""} -# user has provided PKG override +if [ -n "${COVERALLS}" ]; then + echo "with coverage profile generation..." else - GINKGO_FLAGS="$GINKGO_FLAGS $PKG" - LINT_TARGETS="$PKG" + echo "without coverage profile generation..." fi -sudo -E bash -c "umask 0; cd ${GOPATH}/src/${REPO_PATH}; PATH=${GOROOT}/bin:$(pwd)/bin:${PATH} ginkgo ${GINKGO_FLAGS}" +PKG=${PKG:-$(cd ${GOPATH}/src/${REPO_PATH}; go list ./... | xargs echo)} + +# coverage profile only works per-package +i=0 +for t in ${PKG}; do + if [ -n "${COVERALLS}" ]; then + COVERFLAGS="-covermode set -coverprofile ${i}.coverprofile" + fi + testrun "${COVERFLAGS:-""} ${t}" + i=$((i+1)) +done + +# Submit coverage information +if [ -n "${COVERALLS}" ]; then + gover + goveralls -service=travis-ci -coverprofile=gover.coverprofile +fi -cd ${GOPATH}/src/${REPO_PATH}; echo "Checking gofmt..." -fmtRes=$(go fmt $LINT_TARGETS) +fmtRes=$(go fmt $PKG) if [ -n "${fmtRes}" ]; then echo -e "go fmt checking failed:\n${fmtRes}" exit 255 fi echo "Checking govet..." -vetRes=$(go vet $LINT_TARGETS) +vetRes=$(go vet $PKG) if [ -n "${vetRes}" ]; then echo -e "govet checking failed:\n${vetRes}" exit 255