41 lines
734 B
Bash
Executable File
41 lines
734 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
COVER=cover
|
|
ROOT_PKG=go.uber.org/atomic
|
|
|
|
if [[ -d "$COVER" ]]; then
|
|
rm -rf "$COVER"
|
|
fi
|
|
mkdir -p "$COVER"
|
|
|
|
i=0
|
|
for pkg in "$@"; do
|
|
i=$((i + 1))
|
|
|
|
extracoverpkg=""
|
|
if [[ -f "$GOPATH/src/$pkg/.extra-coverpkg" ]]; then
|
|
extracoverpkg=$( \
|
|
sed -e "s|^|$pkg/|g" < "$GOPATH/src/$pkg/.extra-coverpkg" \
|
|
| tr '\n' ',')
|
|
fi
|
|
|
|
coverpkg=$(go list -json "$pkg" | jq -r '
|
|
.Deps
|
|
| map(select(startswith("'"$ROOT_PKG"'")))
|
|
| map(select(contains("/vendor/") | not))
|
|
| . + ["'"$pkg"'"]
|
|
| join(",")
|
|
')
|
|
if [[ -n "$extracoverpkg" ]]; then
|
|
coverpkg="$extracoverpkg$coverpkg"
|
|
fi
|
|
|
|
go test \
|
|
-coverprofile "$COVER/cover.${i}.out" -coverpkg "$coverpkg" \
|
|
-v "$pkg"
|
|
done
|
|
|
|
gocovmerge "$COVER"/*.out > cover.out
|