diff options
Diffstat (limited to 'scripts/coverage.sh')
| -rwxr-xr-x | scripts/coverage.sh | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/scripts/coverage.sh b/scripts/coverage.sh new file mode 100755 index 0000000..1492f0f --- /dev/null +++ b/scripts/coverage.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Simple coverage helper focusing on new/modified packages. +# Usage: scripts/coverage.sh [packages...] + +pkgs=("$@") +if [ ${#pkgs[@]} -eq 0 ]; then + pkgs=( + "codeberg.org/snonux/hexai/internal/tmux" + "codeberg.org/snonux/hexai/cmd/internal/hexai-action" + ) +fi + +cover_dir="$(mktemp -d)" +trap 'rm -rf "$cover_dir"' EXIT + +echo "Running coverage for packages:" "${pkgs[@]}" + +total=0 +for p in "${pkgs[@]}"; do + out="$cover_dir/$(echo "$p" | tr '/' '_').out" + go test -coverprofile="$out" -covermode=atomic "$p" + echo "--- $p ---" + go tool cover -func="$out" | tail -n1 +done + +echo +echo "Hint: combine coverage across all packages with:" +echo " go test ./... -coverprofile=cover.out && go tool cover -func=cover.out" + |
