hpc-lcov: Convert HPC output into LCOV format

[ bsd3, control, library, program ] [ Propose Tags ]

Convert HPC output into LCOV format.

[Skip to Readme]


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS] 1.0.0, 1.0.1, 1.1.0
Change log CHANGELOG.md
Dependencies aeson (>= && <3), base (>=4.9 && <5), containers (>= && <0.7), hpc (>= && <0.7), hpc-lcov, optparse-applicative (>= && <0.18), path (>=0.6.0 && <0.10), path-io (>=1.2.2 && <2), process (>= && <1.7), text (>= && <2.1), unordered-containers (>= && <0.3), yaml (>=0.8.24 && <0.12) [details]
License BSD-3-Clause
Author Brandon Chinn <brandon@leapyear.io>
Maintainer Brandon Chinn <brandon@leapyear.io>
Revised Revision 2 made by leapyear at 2023-01-05T17:24:45Z
Category Control
Home page https://github.com/LeapYear/hpc-lcov#readme
Bug tracker https://github.com/LeapYear/hpc-lcov/issues
Source repo head: git clone https://github.com/LeapYear/hpc-lcov
Uploaded by leapyear at 2022-11-10T22:00:52Z
Distributions LTSHaskell:1.1.0, NixOS:1.1.0, Stackage:1.1.0
Executables hpc-lcov
Downloads 756 total (22 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2022-11-11 [all 1 reports]

Readme for hpc-lcov-1.1.0

[back to package description]


GitHub Actions codecov Hackage

Convert HPC output into lcov.info files that can be uploaded to coverage services, like Codecov.



  1. Run stack install hpc-lcov
  2. Run your test(s) with coverage, e.g. stack test --coverage
  3. Run hpc-lcov
  4. Upload the generated lcov.info file to your coverage service


Coming soon! (https://github.com/LeapYear/hpc-lcov/issues/3)


How do I convert coverage for an executable?

Note: If you have both tests and executables, HPC will write module information to the same file. Because of this, you'll have to load the coverage for each separately, with a stack clean in between.

  1. Build a single executable with coverage enabled (e.g. stack build :my-exe --coverage)
  2. Run the executable
  3. This should generate a .tix file in the current directory
  4. Run the following, specifying the package that builds the executable:
    stack exec -- hpc-lcov --file my-exe.tix --main-package my-package

How do I merge coverage files?

  1. Install LCOV (e.g. brew install lcov)

  2. Run

    lcov -a lcov1.info -a lcov2.info ... > lcov.info