Back to list
mgreenly

lcov

by mgreenly

An AI Coding Agent

1🍴 0📅 Jan 24, 2026

SKILL.md


name: lcov description: LCOV tooling - finding gaps, parsing coverage files, marker syntax

LCOV Tooling

Finding Coverage Gaps

# Run coverage first
make check-coverage

# Uncovered lines
grep "^DA:" reports/coverage/coverage.info | grep ",0$"

# Uncovered branches
grep "^BRDA:" reports/coverage/coverage.info | grep ",0$"

# Uncovered functions
grep "^FNDA:0," reports/coverage/coverage.info

coverage.info Format

SF:/path/to/file.c          # Source file
FN:42,function_name         # Function at line 42
FNDA:5,function_name        # Function called 5 times
DA:45,3                     # Line 45 executed 3 times
DA:46,0                     # Line 46 never executed (GAP!)
BRDA:50,0,0,2               # Line 50, block 0, branch 0, taken 2 times
BRDA:50,0,1,0               # Line 50, block 0, branch 1, never taken (GAP!)
end_of_record

Key patterns:

  • DA:line,0 = uncovered line
  • BRDA:line,block,branch,0 = uncovered branch
  • FNDA:0,name = uncovered function

Coverage Files

CommandOutput
make check-coveragereports/coverage/coverage.info, reports/coverage/summary.txt
make check-coverage TEST=unit/fooreports/coverage/unit/foo.coverage.info, .coverage.txt

Exclusion Markers

MarkerEffect
LCOV_EXCL_LINEExclude entire line
LCOV_EXCL_BR_LINEExclude branch only
LCOV_EXCL_START / LCOV_EXCL_STOPBlock exclusion (wrapper.c only)

Usage:

assert(ptr != NULL);                    // LCOV_EXCL_BR_LINE
if (!ptr) PANIC("Invariant violated");  // LCOV_EXCL_BR_LINE

Note: Markers are NOT reliably honored inside static functions. Inline code instead.

See coverage skill for exclusion policy (what's allowed vs forbidden).

Quick Workflow

# 1. Run coverage
make check-coverage

# 2. Check summary
cat reports/coverage/summary.txt

# 3. Find gaps in specific file
grep -A 1000 "SF:.*myfile.c" reports/coverage/coverage.info | \
  grep -m 1 -B 1000 "end_of_record" | grep ",0$"
  • coverage - Policy (90% requirement, exclusion rules)
  • testability - Refactoring patterns for gaps

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon