I have heard writing tests is a good starting point for contributing to Bitcoin Core. How do I work out which parts or specific lines of the codebase need additional test coverage?

2 Answers 2


Marco Falke has a site that analyzes the current line, function and branch coverage for unit tests, functional tests and fuzz tests.

Alternatively, vasild runs clang's tools and then a script to highlight which lines in the coverage report have been modified by a particular patch (PR).


If your intention is to contribute to Bitcoin Core, you must be able to build these reports locally. So that you can compare if your changes have been effective at increasing coverage.

The general steps are:

  • Download the code and compile it
  • Install LCOV for report generation
  • Configure bitcoin to enable line coverage, ie --enable-lcov
  • Execute the coverage task, ie make cov

Once you have the dev environment correctly setup, the commands are:

./configure --enable-lcov
make cov

The official docs are located here: developer-notes.md#compiling-for-test-coverage


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.