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] # https://github.com/linux-test-project/lcov/blob/master/lcovrc is the # project's sample configuration and explicitly says a per-user customized # copy belongs at ~/.lcovrc. The /etc/lcovrc copy in that file is system-wide # and is intentionally outside this catalog. 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"]