From dea91dff0761d0ed030a19564f0b0b93273976c6 Mon Sep 17 00:00:00 2001 From: Diogo Monica Date: Tue, 14 Jul 2015 19:23:53 -0700 Subject: [PATCH 1/2] Adding script to output coverage over all packages Signed-off-by: Diogo Monica --- Makefile | 2 ++ coverage.sh | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100755 coverage.sh diff --git a/Makefile b/Makefile index 661f6d809a..2cd11c0f48 100644 --- a/Makefile +++ b/Makefile @@ -53,6 +53,8 @@ test-full: vet lint protos: @protoc --go_out=plugins=grpc:. proto/*.proto +cov: + @sh coverage.sh --html clean-protos: @rm proto/*.pb.go diff --git a/coverage.sh b/coverage.sh new file mode 100755 index 0000000000..1d64f1fe53 --- /dev/null +++ b/coverage.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# Generate test coverage statistics for Go packages. +# +# Works around the fact that `go test -coverprofile` currently does not work +# with multiple packages, see https://code.google.com/p/go/issues/detail?id=6909 +# +# Usage: script/coverage [--html|--coveralls] +# +# --html Additionally create HTML report and open it in browser +# --coveralls Push coverage statistics to coveralls.io +# + +set -e + +workdir=.cover +profile="$workdir/cover.out" +mode=count + +generate_cover_data() { + rm -rf "$workdir" + mkdir "$workdir" + + for pkg in "$@"; do + f="$workdir/$(echo $pkg | tr / -).cover" + go test -covermode="$mode" -coverprofile="$f" "$pkg" + done + + echo "mode: $mode" >"$profile" + grep -h -v "^mode:" "$workdir"/*.cover >>"$profile" +} + +show_cover_report() { + go tool cover -${1}="$profile" +} + +push_to_coveralls() { + echo "Pushing coverage statistics to coveralls.io" + goveralls -coverprofile="$profile" +} + +generate_cover_data $(go list ./...) +show_cover_report func +case "$1" in +"") + ;; +--html) + show_cover_report html ;; +--coveralls) + push_to_coveralls ;; +*) + echo >&2 "error: invalid option: $1"; exit 1 ;; +esac From bbc53376ba253a14b6e54d247ab2a4c0bc8ebcc3 Mon Sep 17 00:00:00 2001 From: Diogo Monica Date: Tue, 14 Jul 2015 20:16:17 -0700 Subject: [PATCH 2/2] Removing uneeded push to coveralls Signed-off-by: Diogo Monica --- coverage.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/coverage.sh b/coverage.sh index 1d64f1fe53..7ef7202e34 100755 --- a/coverage.sh +++ b/coverage.sh @@ -33,11 +33,6 @@ show_cover_report() { go tool cover -${1}="$profile" } -push_to_coveralls() { - echo "Pushing coverage statistics to coveralls.io" - goveralls -coverprofile="$profile" -} - generate_cover_data $(go list ./...) show_cover_report func case "$1" in