khenaidoo | ffe076b | 2019-01-15 16:08:08 -0500 | [diff] [blame^] | 1 | #!/usr/bin/env bash |
| 2 | # |
| 3 | # Generate coverage HTML for a package |
| 4 | # e.g. PKG=./unit ./cover |
| 5 | # |
| 6 | set -e |
| 7 | |
| 8 | if [ -z "$PKG" ]; then |
| 9 | echo "cover only works with a single package, sorry" |
| 10 | exit 255 |
| 11 | fi |
| 12 | |
| 13 | COVEROUT="coverage" |
| 14 | |
| 15 | if ! [ -d "$COVEROUT" ]; then |
| 16 | mkdir "$COVEROUT" |
| 17 | fi |
| 18 | |
| 19 | # strip leading dot/slash and trailing slash and sanitize other slashes |
| 20 | # e.g. ./etcdserver/etcdhttp/ ==> etcdserver_etcdhttp |
| 21 | COVERPKG=${PKG/#./} |
| 22 | COVERPKG=${COVERPKG/#\//} |
| 23 | COVERPKG=${COVERPKG/%\//} |
| 24 | COVERPKG=${COVERPKG//\//_} |
| 25 | |
| 26 | # generate arg for "go test" |
| 27 | export COVER="-coverprofile ${COVEROUT}/${COVERPKG}.out" |
| 28 | |
| 29 | source ./test |
| 30 | |
| 31 | go tool cover -html=${COVEROUT}/${COVERPKG}.out |