Claude-skill-registry Code Coverage with gcov
Add gcov code coverage instrumentation to C/C++ projects
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gcov-coverage" ~/.claude/skills/majiayu000-claude-skill-registry-code-coverage-with-gcov && rm -rf "$T"
manifest:
skills/data/gcov-coverage/SKILL.mdsource content
Code Coverage with gcov
Purpose
Instrument C/C++ programs with gcov to measure test coverage.
How It Works
Build with Coverage
gcc --coverage -o program source.c
Run Program
./program # Creates .gcda files with execution data
Generate Reports
Text report:
gcov source.c # Creates source.c.gcov with line-by-line coverage
HTML report:
gcovr --html-details -o coverage.html
Coverage Flags
(shorthand for--coverage
)-fprofile-arcs -ftest-coverage -lgcov- Add to both
andCFLAGSLDFLAGS
Build System Integration
Makefile
ENABLE_COVERAGE ?= 0 ifeq ($(ENABLE_COVERAGE),1) CFLAGS += --coverage LDFLAGS += --coverage endif
CMake
option(ENABLE_COVERAGE "Enable coverage" OFF) if(ENABLE_COVERAGE) add_compile_options(--coverage) add_link_options(--coverage) endif()
When User Requests Coverage
Steps
- Detect build system (Makefile/CMake/other)
- Add
to CFLAGS and LDFLAGS--coverage - Clean previous build:
ormake cleanrm -f *.gcda *.gcno - Build with coverage:
ormake ENABLE_COVERAGE=1cmake -DENABLE_COVERAGE=ON - Run tests:
ormake test./test_suite - Generate report:
gcovr --html-details coverage.html --print-summary - Present summary and path to HTML report
Output
Text (.gcov files):
-: 0:Source:main.c 5: 42: int x = 10; #####: 43: unused_code();
= executed 5 times5:
= not executed#####:
= non-executable-:
HTML: Interactive report with color-coded coverage
Metrics
- Line coverage: Executed lines / total lines
- Branch coverage: Taken branches / total branches
- Function coverage: Called functions / total functions
Target: 80%+ line coverage, 70%+ branch coverage