hpc-lcov

Convert HPC output into LCOV format

https://github.com/LeapYear/hpc-lcov#readme

Version on this page:1.0.1@rev:2
LTS Haskell 23.0:1.1.2
Stackage Nightly 2024-12-09:1.1.2
Latest on Hackage:1.1.2

See all snapshots hpc-lcov appears in

BSD-3-Clause licensed and maintained by Brandon Chinn
This version can be pinned in stack with:hpc-lcov-1.0.1@sha256:9a8247076e9f1e75e38b0e1ce558fcee743cb7aacf46e1b73c109e9326276de9,2845

Module documentation for 1.0.1

hpc-lcov

codecov CircleCI Hackage

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

Quickstart

Stack

  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

Cabal

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

FAQs

How do I convert coverage for an executable?

Note: If you have both tests and executables, HPC will write outputs 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 the executable with coverage enabled (e.g. stack build --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
    

Resources

Changes

Upcoming

1.0.1

Bug fix:

  • Don’t error if the packages field in stack.yaml doesn’t exist

1.0.0

Initial release of hpc-lcov:

  • Generates LCOV files from HPC .tix files
  • Discovers .tix files generated by Stack test suites
  • Allows manually specifying a .tix file (useful for executables with coverage enabled)