{"id":23716,"library":"fastcov","title":"fastcov","description":"fastcov is a massively parallel gcov wrapper for generating intermediate coverage formats (like lcov info) quickly. It processes .gcda/.gcno files in parallel using subprocesses and hashes source files to avoid re-processing. Current version is 1.16, requires Python >=3.5, and is maintained on GitHub.","status":"active","version":"1.16","language":"python","source_language":"en","source_url":"https://github.com/RPGillespie6/fastcov","tags":["coverage","gcov","lcov","parallel","testing"],"install":[{"cmd":"pip install fastcov","lang":"bash","label":"latest from PyPI"}],"dependencies":[],"imports":[{"note":"fastcov is a module, not a class; calling `fastcov.main()` is typical.","wrong":"from fastcov import fastcov","symbol":"fastcov","correct":"import fastcov"}],"quickstart":{"code":"import subprocess\nsubprocess.run(['fastcov', '--gcov', 'gcov', '--lcov', '-o', 'coverage.info', '--exclude', 'test', '--branch-coverage'], check=True)","lang":"python","description":"Run fastcov as a subprocess to generate lcov info output with branch coverage, excluding test files."},"warnings":[{"fix":"Check for exit codes 3+ for failures, or use `--version` to detect version.","message":"Exit codes shifted in v1.7 to start at 3 (codes 1-2 reserved for shells). If you rely on exit codes, update your checks.","severity":"breaking","affected_versions":">=1.7"},{"fix":"Upgrade to >=1.14 or set GCOV_PREFIX to include longform flags: `--gcov gcov --stdout --long-filename --preserve-paths`.","message":"gcov shortform flags like `-i` (for intermediate format) may cause issues with GCC 11+. fastcov 1.14+ uses longform flags, but older versions might break.","severity":"deprecated","affected_versions":"<1.14"},{"fix":"Upgrade to >=1.14, or avoid combining those flags.","message":"Using `--zerocounters` with `--process-gcno` simultaneously can delete .gcno files (fixed in v1.14). Always verify you have backups.","severity":"gotcha","affected_versions":"<1.14"},{"fix":"Upgrade to >=1.11 or wrap subprocess with timeout.","message":"If gcov crashes or is killed, fastcov may hang forever (fixed in v1.11). For older versions, set a timeout on the subprocess call.","severity":"gotcha","affected_versions":"<1.11"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `--branch` instead (alias) or upgrade fastcov to >=1.10.","cause":"Older versions of fastcov did not support `--branch-coverage`; it was added later.","error":"fastcov: error: unrecognized arguments: --branch-coverage"},{"fix":"Use subprocess to invoke fastcov or import the internal modules directly (not recommended).","cause":"Trying to call `fastcov.main()` directly but the module is not designed that way; fastcov is intended to be run as a CLI tool.","error":"AttributeError: module 'fastcov' has no attribute 'main'"},{"fix":"Use the lcov info output (`--lcov -o output.info`) or rely on the official fastcov JSON schema (if you must).","cause":"Parsing fastcov's internal JSON output format yourself; the format changed in v1.5 to support test names.","error":"KeyError: 'source_files'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}