]>
Commit | Line | Data |
---|---|---|
15c0b25d AP |
1 | #!/usr/bin/env bash |
2 | ||
3 | ||
4 | set -e | |
5 | ||
6 | workdir=.cover | |
7 | profile="$workdir/cover.out" | |
8 | mode=set | |
9 | end2endtest="google.golang.org/grpc/test" | |
10 | ||
11 | generate_cover_data() { | |
12 | rm -rf "$workdir" | |
13 | mkdir "$workdir" | |
14 | ||
15 | for pkg in "$@"; do | |
16 | if [ $pkg == "google.golang.org/grpc" -o $pkg == "google.golang.org/grpc/transport" -o $pkg == "google.golang.org/grpc/metadata" -o $pkg == "google.golang.org/grpc/credentials" ] | |
17 | then | |
18 | f="$workdir/$(echo $pkg | tr / -)" | |
19 | go test -covermode="$mode" -coverprofile="$f.cover" "$pkg" | |
20 | go test -covermode="$mode" -coverpkg "$pkg" -coverprofile="$f.e2e.cover" "$end2endtest" | |
21 | fi | |
22 | done | |
23 | ||
24 | echo "mode: $mode" >"$profile" | |
25 | grep -h -v "^mode:" "$workdir"/*.cover >>"$profile" | |
26 | } | |
27 | ||
28 | show_cover_report() { | |
29 | go tool cover -${1}="$profile" | |
30 | } | |
31 | ||
32 | push_to_coveralls() { | |
33 | goveralls -coverprofile="$profile" | |
34 | } | |
35 | ||
36 | generate_cover_data $(go list ./...) | |
37 | show_cover_report func | |
38 | case "$1" in | |
39 | "") | |
40 | ;; | |
41 | --html) | |
42 | show_cover_report html ;; | |
43 | --coveralls) | |
44 | push_to_coveralls ;; | |
45 | *) | |
46 | echo >&2 "error: invalid option: $1" ;; | |
47 | esac | |
48 | rm -rf "$workdir" |