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


  • No Candidates
Versions [RSS] 1.0.0, 1.0.1, 1.1.0, 1.1.1
Change log CHANGELOG.md
Dependencies aeson (>= && <3), base (>=4.9 && <5), containers (>= && <0.7), hpc (>= && <0.7), hpc-lcov, optparse-applicative (>= && <0.19), path (>=0.7.0 && <0.10), path-io (>=1.6.2 && <2), process (>= && <1.7), text (>= && <2.1), unordered-containers (>= && <0.3), yaml (>= && <0.12) [details]
License BSD-3-Clause
Author Brandon Chinn <brandonchinn178@gmail.com>
Maintainer Brandon Chinn <brandonchinn178@gmail.com>
Revised Revision 1 made by brandonchinn178 at 2023-05-25T04:42:50Z
Category Control
Home page https://github.com/brandonchinn178/hpc-lcov#readme
Bug tracker https://github.com/brandonchinn178/hpc-lcov/issues
Source repo head: git clone https://github.com/brandonchinn178/hpc-lcov
Uploaded by brandonchinn178 at 2023-05-21T17:17:52Z
Distributions LTSHaskell:1.1.1, NixOS:1.1.1, Stackage:1.1.1
Executables hpc-lcov
Downloads 893 total (11 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-05-21 [all 1 reports]

Readme for hpc-lcov-1.1.1

[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. Download hpc-lcov from the releases page or install it from Hackage with your favorite package manager
  2. Run your tests with coverage enabled
  3. Run hpc-lcov
  4. Upload the generated lcov.info file to your coverage service


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