summaryrefslogtreecommitdiff
path: root/scripts/coverage.sh
blob: 1492f0f74fdd6d8abd3f81e0b73c621a760852c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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"