LCOV tooling - finding gaps, parsing coverage files, marker syntax
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: lcov
description: LCOV tooling - finding gaps, parsing coverage files, marker syntax
---
# LCOV Tooling
## Finding Coverage Gaps
```bash
# 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
| Command | Output |
|---------|--------|
| `make check-coverage` | `reports/coverage/coverage.info`, `reports/coverage/summary.txt` |
| `make check-coverage TEST=unit/foo` | `reports/coverage/unit/foo.coverage.info`, `.coverage.txt` |
## Exclusion Markers
| Marker | Effect |
|--------|--------|
| `LCOV_EXCL_LINE` | Exclude entire line |
| `LCOV_EXCL_BR_LINE` | Exclude branch only |
| `LCOV_EXCL_START` / `LCOV_EXCL_STOP` | Block exclusion (wrapper.c only) |
Usage:
```c
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
```bash
# 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$"
```
## Related Skills
- `coverage` - Policy (90% requirement, exclusion rules)
- `testability` - Refactoring patterns for gaps
No comments yet. Be the first to comment!
Playbook for creating and editing uCoz landing pages via MCP tools (`templates_tool`, `ftp_tool`, `modules_tool`). Use for tasks such as: "build a landing page", "update the homepage as a landing page", "create a promo page on the homepage", "add a lead form / menu / SEO to the homepage". Homepage: `page_list`, `page_get`; first publish — `page_update` with full `page_tmpl`; HTML edits after generation — `patch_template` (module_id=2, template_id=1), not `update_template`. Activate the mail f...
Interact with the Paperclip control plane API to manage tasks, coordinate with other agents, and follow company governance. Use when you need to check assignments, update task status, delegate work, post comments, set up or manage routines (recurring scheduled tasks), or call any Paperclip API endpoint. Do NOT use for the actual domain work itself (writing code, research, etc.) — only for Paperclip coordination.
Digital Audio Workstation usage, music composition, interactive music systems, and game audio implementation for immersive soundscapes.
Instantly.ai cold email outreach API - manage campaigns, leads, accounts, and analytics. Use for cold email automation, lead management, campaign creation/monitoring, and email account warmup.
Run a single Terminal-Bench problem through Paperclip in a bounded, human-in-the-loop improvement cycle until the smoke passes, the board rejects the next fix, the iteration budget is exhausted, or a real blocker is named. Each iteration runs a bounded smoke against an isolated Paperclip App worktree, captures artifacts, diagnoses the exact stop point with `/diagnose-why-work-stopped`, requests board confirmation before any product fix, then reruns against the same worktree. Use whenever an i...