LCOV
What it is
LCOV is free, GPL-2.0 software for Linux and self-hosted environments that captures which parts of a program ran during tests. It produces HTML reports with colored rates, bar graphs, and hyperlinks, and can also write LCOV .info tracefiles. Listed coverage types include line, function, branch, and MC/DC coverage for C/C++, Perl, and Python projects. Reports can be organized hierarchically, as a flat source-file list, or with directory, file, and source-code detail. Users can include or exclude code and filter artifacts such as compiler-generated branches. Differential reports, date and owner binning, historical trends, and coverage gates are supported. Sample callbacks for Git and Perforce identify source changes, authors, and edit dates. lcov, genhtml, and geninfo can parallelize work across cores with a memory limit option. Installation is available through RPM, tarball, or Git clone, with /usr/local as the default location. LCOV is primarily implemented in Perl and needs Perl packages.
For and against
For
- Free GPL-2.0 open-source distribution
- HTML reports include graphs and hyperlinks
- Supports line, function, branch, and MC/DC coverage
- Differential reports and historical trends are available
- Parallel processing can use multiple cores
Against
- Requires a moderately up-to-date Perl installation
- Needs multiple Perl packages
- Optional XS extension requires a C++20-capable compiler
- Volunteer issue support is the listed support route
The verdict
LCOV offers broad coverage reporting and filtering for supported languages, with command-line installation choices and self-hosted use. Its Perl dependencies and Linux focus are important considerations before adoption.
Who it suits
It suits development teams working on Linux projects in C/C++, Perl, or Python. It is relevant when self-hosted coverage reports, filtering, differential views, or coverage gates are needed.
Plans and prices
LCOV
GPL-2.0 licensed; available as RPM, tarball, or Git clone
Read 9 Oct 2026 · github.com
On the record
- Dependencies
- LCOV is primarily implemented in Perl and requires a moderately up-to-date Perl installation and multiple Perl packages.github.com · read 9 Oct 2026
- Differential coverage
- LCOV supports differential coverage reports as well as date and owner binning.github.com · read 9 Oct 2026
- Filtering
- Users can include or exclude code and filter coverage artifacts such as compiler-generated branches.github.com · read 9 Oct 2026
- Installation
- The project provides RPM and tarball releases, and documents installation from a Git clone; the default install location is /usr/local.github.com · read 9 Oct 2026
- Languages
- The project describes support for C/C++, Perl, and Python, and includes translators for LLVM, Python Coverage.py, Perl Devel::Cover, Cobertura-like XML, and JaCoCo data.github.com · read 9 Oct 2026
- License
- The repository identifies LCOV as GPL-2.0 licensed.github.com · read 9 Oct 2026
- Maker
- The GitHub organization describes Linux Test Project as providing tools and test suites to verify the Linux kernel and related subsystems.github.com · read 9 Oct 2026
- Optional extension
- The optional XS extension requires a C++20-capable compiler; the README specifies g++ 8 or later and recommends g++ 14 or later.github.com · read 9 Oct 2026
- Parallel processing
- lcov, genhtml, and geninfo can parallelize work across multiple cores when requested, with an option to limit memory use.github.com · read 9 Oct 2026
- Project scale
- Its reports can show coverage in a hierarchical directory view, a flat source-file list, or directory, file, and source-code detail levels.github.com · read 9 Oct 2026
- Purpose
- LCOV captures and displays information about which parts of a program ran during tests.github.com · read 9 Oct 2026
- Reports
- It generates HTML coverage reports with colored coverage rates, bar graphs, and hyperlinks.github.com · read 9 Oct 2026
- Support
- The README directs users with questions to open an issue or discussion and says issue support is provided by volunteers.github.com · read 9 Oct 2026
- Version control
- Sample callbacks are provided for Git and Perforce to identify source changes, authors, and edit dates.github.com · read 9 Oct 2026