23 lines
507 B
Bash
Executable file
23 lines
507 B
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
lcov_path="${1:-}"
|
|
if [[ -z "${lcov_path}" || ! -f "${lcov_path}" ]]; then
|
|
echo "usage: $0 <path/to/file.lcov>" >&2
|
|
exit 2
|
|
fi
|
|
|
|
# lcov format includes per-file LF (lines found) and LH (lines hit). Sum those.
|
|
awk '
|
|
/^LF:/ { lf += substr($0, 4) }
|
|
/^LH:/ { lh += substr($0, 4) }
|
|
END {
|
|
if (lf == 0) {
|
|
printf("lines: 0/0 (0.00%%)\n")
|
|
exit 0
|
|
}
|
|
pct = (lh * 100.0) / lf
|
|
printf("lines: %d/%d (%.2f%%)\n", lh, lf, pct)
|
|
}
|
|
' "${lcov_path}"
|
|
|