id = "lcov"
name = "LCOV"
homepage = "https://github.com/linux-test-project/lcov"
description = "LCOV is a graphical front-end for GCC's coverage testing tool gcov."
executables = ["lcov", "genhtml", "geninfo"]
[dotfiles]
paths = ["~/.lcovrc"]
secret = []
side_effect = false
[commands]
format = 1
label = "Capture coverage with lcov"
description = "Capture, add together, extract from, remove from, or summarize lcov tracefiles. genhtml and geninfo are separate programs and are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = true }
[[commands.source]]
id = "man"
kind = "manual"
url = "https://manpages.debian.org/unstable/lcov/lcov.1.en.html"
revision = "2026-10"
evidence = """
-a tracefile_patterns --add-tracefile
-c --capture
-d directory --directory directory
-b directory --base-directory
--branch-coverage
-e tracefile pattern --extract tracefile
-r tracefile pattern --remove tracefile
--summary tracefile
-o tracefile --output-file
-q --quiet
-v --verbose
--ignore-errors errors
--exclude pattern
-z --zerocounters
-t testname --test-name testname
Only one of -z, -c, -a, -e, -r, -l, --diff or --summary may be specified at a time.
"""
[[commands.field]]
id = "capture"
label = "Capture coverage data"
type = "boolean"
option = ["--capture", "-c"]
sources = ["man"]
[[commands.field]]
id = "directory"
label = "Directory to capture from"
description = "Directory holding the .gcda/.gcno files of a user space program."
type = "path"
option = ["--directory", "-d"]
path = { kind = "directory", role = "input" }
sources = ["man"]
[[commands.field]]
id = "base_directory"
label = "Base directory"
type = "path"
option = ["--base-directory", "-b"]
path = { kind = "directory", role = "input" }
sources = ["man"]
[[commands.field]]
id = "add_tracefile"
label = "Add tracefile"
description = "Combine execution counts from this tracefile; repeat for several."
type = "path"
option = ["--add-tracefile", "-a"]
multiple = true
path = { kind = "file", role = "input" }
sources = ["man"]
[[commands.field]]
id = "zerocounters"
label = "Reset counters"
type = "boolean"
option = ["--zerocounters", "-z"]
effect = "overwrite"
sources = ["man"]
[[commands.field]]
id = "summary"
label = "Summarize tracefile"
type = "path"
option = ["--summary"]
path = { kind = "file", role = "input" }
sources = ["man"]
[[commands.field]]
id = "test_name"
label = "Test name"
type = "string"
option = ["--test-name", "-t"]
sources = ["man"]
[[commands.field]]
id = "output_file"
label = "Output tracefile"
type = "path"
option = ["--output-file", "-o"]
path = { kind = "file", role = "output", must_exist = false }
effect = "overwrite"
sources = ["man"]
[[commands.field]]
id = "branch_coverage"
label = "Branch coverage"
type = "boolean"
option = ["--branch-coverage"]
sources = ["man"]
[[commands.field]]
id = "exclude"
label = "Exclude pattern"
type = "string"
option = ["--exclude"]
multiple = true
sources = ["man"]
[[commands.field]]
id = "ignore_errors"
label = "Ignore errors"
type = "string"
option = ["--ignore-errors"]
sources = ["man"]
[[commands.field]]
id = "quiet"
label = "Quiet"
type = "boolean"
option = ["--quiet", "-q"]
sources = ["man"]
[[commands.field]]
id = "verbose"
label = "Verbose"
type = "boolean"
option = ["--verbose", "-v"]
sources = ["man"]
[[commands.task]]
id = "capture_run"
label = "Capture coverage to a tracefile"
fields = ["capture", "directory", "base_directory", "test_name", "output_file", "branch_coverage"]
required = ["directory", "output_file"]
set = { capture = [true] }
lock = ["capture"]
[[commands.task]]
id = "merge"
label = "Merge tracefiles"
fields = ["add_tracefile", "output_file", "branch_coverage"]
required = ["add_tracefile", "output_file"]
[[commands.task]]
id = "show_summary"
label = "Summarize a tracefile"
fields = ["summary"]
required = ["summary"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["capture", "directory", "add_tracefile", "summary", "output_file"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["base_directory", "zerocounters", "test_name", "branch_coverage", "exclude", "ignore_errors", "quiet", "verbose"]