mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-23 00:57:44 +01:00
calculate coverage for all packages referenced by the package
This commit is contained in:
parent
511b9aec5b
commit
8be2255f0b
@ -1,12 +1,35 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
echo "mode: set" >>profile.cov
|
||||
for dir in $(go list ./... | grep -v -E 'vendor|tests')
|
||||
|
||||
deps=""
|
||||
|
||||
# listDeps lists packages referenced by package in $1,
|
||||
# excluding golang standard library and packages in
|
||||
# direcotry vendor
|
||||
function listDeps(){
|
||||
pkg=$1
|
||||
deps=$pkg
|
||||
ds=$(echo $(go list -f '{{.Imports}}' $pkg) | sed 's/[][]//g')
|
||||
for d in $ds
|
||||
do
|
||||
if echo $d | grep -q "github.com/vmware/harbor" && echo $d | grep -qv "vendor"
|
||||
then
|
||||
deps="$deps,$d"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
packages=$(go list ./... | grep -v -E 'vendor|tests')
|
||||
|
||||
for package in $packages
|
||||
do
|
||||
go test -cover -coverprofile=profile.tmp $dir
|
||||
if [ -f profile.tmp ]
|
||||
then
|
||||
cat profile.tmp | tail -n +2 >> profile.cov
|
||||
rm profile.tmp
|
||||
fi
|
||||
listDeps $package
|
||||
|
||||
go test -cover -coverprofile=profile.tmp -coverpkg "$deps" $package
|
||||
if [ -f profile.tmp ]
|
||||
then
|
||||
cat profile.tmp | tail -n +2 >> profile.cov
|
||||
rm profile.tmp
|
||||
fi
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user