Merge pull request #473 from iamqizhao/master

Get more accurate test coverage
diff --git a/coverage.sh b/coverage.sh
index 9de8c91..90bf4ba 100755
--- a/coverage.sh
+++ b/coverage.sh
@@ -4,15 +4,20 @@
 
 workdir=.cover
 profile="$workdir/cover.out"
-mode=count
+mode=set
+end2endtest="google.golang.org/grpc/test"
 
 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"
+        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" ]
+            then
+                f="$workdir/$(echo $pkg | tr / -)"
+                go test -covermode="$mode" -coverprofile="$f.cover" "$pkg"
+                go test -covermode="$mode" -coverpkg "$pkg" -coverprofile="$f.e2e.cover" "$end2endtest"
+        fi
     done
 
     echo "mode: $mode" >"$profile"