lcov-util

Crates.io Travis CI Build Status LICENSE

Utility commands to manipulate and analyze LCOV tracefiles blazingly fast.

[LCOV] is a graphical front-end for coverage testing tool [gcov]. It collects gcov data for multiple source files and stores them into the file called as "tracefile".

The purpose of this crate is to operate the LCOV tracefile faster than the original LCOV Perl implementation.

Install

console $ cargo install lcov-util

Performance

Merge LCOV tracefiles

Comparing the execution of merging LCOV tracefiles, between 3 programs:

with 3 datasets (generated by mkinfo tool from LCOV repository):

| | small | medium | large | | ---------------- | ----- | ------ | ------- | | lcov 1.13 | 3.55s | 11.36s | 500.17s | | lcov master | 0.57s | 5.38s | 52.44s | | lcov-merge | 0.06s | 0.74s | 10.16s |

In this benchmark, lcov-merge is 15-60x faster than lcov 1.13, and 5-9.5x faster than lcov-master.

See benchsuite directory for details.

License

This project is licensed under either of

Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in lcov by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.