mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-12-26 00:25:17 +00:00
45 lines
1.0 KiB
Bash
45 lines
1.0 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
# This script runs unit tests with coverage enabled for a specific list of
|
||
|
# package paths and outputs the coverage to a json file.
|
||
|
#
|
||
|
# Package paths that are not valid in this tree are tolerated.
|
||
|
|
||
|
set -xeuo pipefail
|
||
|
|
||
|
output_json_file="$1"
|
||
|
packages="$2"
|
||
|
|
||
|
# Find the targets. We need to convert from, e.g.
|
||
|
# . objstorage objstorage/objstorageprovider
|
||
|
# to
|
||
|
# . ./objstorage ./objstorage/objstorageprovider
|
||
|
|
||
|
paths=""
|
||
|
sep=""
|
||
|
|
||
|
for p in ${packages}; do
|
||
|
# Check that the path exists and contains Go files.
|
||
|
if ls "${p}"/*.go >/dev/null 2>&1; then
|
||
|
if [[ $p != "." ]]; then
|
||
|
p="./$p"
|
||
|
fi
|
||
|
paths="${paths}${sep}${p}"
|
||
|
sep=" "
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
if [ -z "${paths}" ]; then
|
||
|
echo "Skipping"
|
||
|
touch "${output_json_file}"
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
tmpfile=$(mktemp --suffix -coverprofile)
|
||
|
trap 'rm -f "${tmpfile}"' EXIT
|
||
|
|
||
|
make testcoverage COVER_PROFILE="${tmpfile}" PKG="$paths"
|
||
|
go run github.com/cockroachdb/code-cov-utils/gocover2json@v1.0.0 \
|
||
|
--trim-prefix github.com/cockroachdb/pebble/ \
|
||
|
"${tmpfile}" "${output_json_file}"
|