From 0be6721c85c1f23d744db7eb1f63a33fcffb4479 Mon Sep 17 00:00:00 2001 From: iamqizhao Date: Fri, 6 Nov 2015 13:26:24 -0800 Subject: [PATCH] coverage on multiple packages --- Makefile | 2 +- coverage.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100755 coverage.sh diff --git a/Makefile b/Makefile index 5bc38be2..12e84e4e 100644 --- a/Makefile +++ b/Makefile @@ -47,4 +47,4 @@ clean: go clean google.golang.org/grpc/... coverage: testdeps - goveralls -v google.golang.org/grpc/... + ./coverage.sh --coveralls diff --git a/coverage.sh b/coverage.sh new file mode 100755 index 00000000..b67e85f2 --- /dev/null +++ b/coverage.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +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() { + goveralls -coverprofile="$profile" +} + +generate_cover_data $(go list ./...) +show_cover_report func +push_to_coveralls +case "$1" in +"") + ;; +--coveralls) + push_to_coveralls ;; +*) + echo >&2 "error: invalid option: $1" ;; +esac +rm -rf "$workdir"