{
  "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
    },
    "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\n-c --capture\n-d directory --directory directory\n-b directory --base-directory\n--branch-coverage\n-e tracefile pattern --extract tracefile\n-r tracefile pattern --remove tracefile\n--summary tracefile\n-o tracefile --output-file\n-q --quiet\n-v --verbose\n--ignore-errors errors\n--exclude pattern\n-z --zerocounters\n-t testname --test-name testname\nOnly one of -z, -c, -a, -e, -r, -l, --diff or --summary may be specified at a time.\n"
      }
    ],
    "field": [
      {
        "id": "capture",
        "label": "Capture coverage data",
        "type": "boolean",
        "option": [
          "--capture",
          "-c"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "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"
        ]
      },
      {
        "id": "base_directory",
        "label": "Base directory",
        "type": "path",
        "option": [
          "--base-directory",
          "-b"
        ],
        "path": {
          "kind": "directory",
          "role": "input"
        },
        "sources": [
          "man"
        ]
      },
      {
        "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"
        ]
      },
      {
        "id": "zerocounters",
        "label": "Reset counters",
        "type": "boolean",
        "option": [
          "--zerocounters",
          "-z"
        ],
        "effect": "overwrite",
        "sources": [
          "man"
        ]
      },
      {
        "id": "summary",
        "label": "Summarize tracefile",
        "type": "path",
        "option": [
          "--summary"
        ],
        "path": {
          "kind": "file",
          "role": "input"
        },
        "sources": [
          "man"
        ]
      },
      {
        "id": "test_name",
        "label": "Test name",
        "type": "string",
        "option": [
          "--test-name",
          "-t"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "output_file",
        "label": "Output tracefile",
        "type": "path",
        "option": [
          "--output-file",
          "-o"
        ],
        "path": {
          "kind": "file",
          "role": "output",
          "must_exist": false
        },
        "effect": "overwrite",
        "sources": [
          "man"
        ]
      },
      {
        "id": "branch_coverage",
        "label": "Branch coverage",
        "type": "boolean",
        "option": [
          "--branch-coverage"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "exclude",
        "label": "Exclude pattern",
        "type": "string",
        "option": [
          "--exclude"
        ],
        "multiple": true,
        "sources": [
          "man"
        ]
      },
      {
        "id": "ignore_errors",
        "label": "Ignore errors",
        "type": "string",
        "option": [
          "--ignore-errors"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "quiet",
        "label": "Quiet",
        "type": "boolean",
        "option": [
          "--quiet",
          "-q"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "verbose",
        "label": "Verbose",
        "type": "boolean",
        "option": [
          "--verbose",
          "-v"
        ],
        "sources": [
          "man"
        ]
      }
    ],
    "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"
        ]
      },
      {
        "id": "merge",
        "label": "Merge tracefiles",
        "fields": [
          "add_tracefile",
          "output_file",
          "branch_coverage"
        ],
        "required": [
          "add_tracefile",
          "output_file"
        ]
      },
      {
        "id": "show_summary",
        "label": "Summarize a tracefile",
        "fields": [
          "summary"
        ],
        "required": [
          "summary"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "capture",
          "directory",
          "add_tracefile",
          "summary",
          "output_file"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "base_directory",
          "zerocounters",
          "test_name",
          "branch_coverage",
          "exclude",
          "ignore_errors",
          "quiet",
          "verbose"
        ]
      }
    ]
  }
}
