mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-20 20:10:22 +00:00
43 lines
1.2 KiB
Bash
43 lines
1.2 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
GOPACKAGES="$(go list ./... | grep -v vendor | grep -v e2e)"
|
||
|
COVERFILE="${GO_COVER_DIR}profile.cov"
|
||
|
|
||
|
# no special options, exec to go test w/ all pkgs
|
||
|
if [[ ${TEST_EXITFIRST} != "yes" && -z ${TEST_COVERAGE} ]]; then
|
||
|
# shellcheck disable=SC2086
|
||
|
exec go test ${GOPACKAGES}
|
||
|
fi
|
||
|
|
||
|
# our options are set so we need to handle each go package one
|
||
|
# at at time
|
||
|
if [[ ${TEST_COVERAGE} ]]; then
|
||
|
GOTESTOPTS="-covermode=count -coverprofile=cover.out"
|
||
|
echo "mode: count" > "${COVERFILE}"
|
||
|
fi
|
||
|
|
||
|
failed=0
|
||
|
for gopackage in ${GOPACKAGES}; do
|
||
|
echo "--- testing: ${gopackage} ---"
|
||
|
# shellcheck disable=SC2086
|
||
|
go test ${GOTESTOPTS} "${gopackage}" || ((failed+=1))
|
||
|
if [[ -f cover.out ]]; then
|
||
|
# Append to coverfile
|
||
|
grep -v "^mode: count" cover.out >> "${COVERFILE}"
|
||
|
fi
|
||
|
if [[ ${TEST_COVERAGE} = "stdout" && -f cover.out ]]; then
|
||
|
go tool cover -func=cover.out
|
||
|
fi
|
||
|
if [[ ${TEST_COVERAGE} = "html" && -f cover.out ]]; then
|
||
|
mkdir -p coverage
|
||
|
fn="coverage/${gopackage////-}.html"
|
||
|
echo " * generating coverage html: ${fn}"
|
||
|
go tool cover -html=cover.out -o "${fn}"
|
||
|
fi
|
||
|
rm -f cover.out
|
||
|
if [[ ${failed} -ne 0 && ${TEST_EXITFIRST} = "yes" ]]; then
|
||
|
exit ${failed}
|
||
|
fi
|
||
|
done
|
||
|
exit ${failed}
|