hpc-lcov-1.0.1: README.md
# hpc-lcov
[](https://codecov.io/gh/LeapYear/hpc-lcov)


Convert HPC output into `lcov.info` files that can be uploaded to coverage
services, like [Codecov](https://codecov.io).
## Quickstart
### Stack
1. Run `stack install hpc-lcov`
1. Run your test(s) with coverage, e.g. `stack test --coverage`
1. Run `hpc-lcov`
1. 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`)
1. Run the executable
1. This should generate a `.tix` file in the current directory
1. Run the following, specifying the package that builds the executable:
```bash
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`)
1. Run
```bash
lcov -a lcov1.info -a lcov2.info ... > lcov.info
```
## Resources
* [LCOV format description](http://ltp.sourceforge.net/coverage/lcov/geninfo.1.php)
* [More info on HPC](https://wiki.haskell.org/Haskell_program_coverage)