12 releases
0.2.1 | Jul 18, 2022 |
---|---|
0.1.9 | Jun 26, 2022 |
0.1.6 | Sep 26, 2021 |
0.1.5 | Jul 28, 2020 |
0.1.1 | Feb 12, 2018 |
#1524 in Parser implementations
154 downloads per month
240KB
2.5K
SLoC
lcov-util
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
cargo install lcov-util
Performance
Merge LCOV tracefiles
Comparing the execution of merging LCOV tracefiles, between 3 programs:
lcov 1.16
: Latest released version ofLCOV
lcov master
: Latest development version ofLCOV
lcov-merge
:lcov-merge
executable fromlcov-util
v0.2.0
with 3 datasets (generated by mkinfo
tool from LCOV repository):
- small: merging 5 small tracefiles (2 tests, 5 source files)
- medium: merging 5 medium tracefiles (3 tests, 50 source files)
- large: merging 5 large tracefiles (2 tests, 500 source files)
small | medium | large | |
---|---|---|---|
lcov 1.16 |
0.22s | 2.41s | 21.69s |
lcov master |
0.23s | 2.30s | 21.34s |
lcov-merge |
0.01s | 0.21s | 2.73s |
In this benchmark, lcov-merge
is 10-20x faster than lcov 1.16
/ lcov-master
.
- Environment:
- Arch Linux (5.10.16.3-microsoft-standard-WSL2)
- AMD Ryzen 9 5950X
See benchsuite
directory for details.
Minimum supported Rust version (MSRV)
The minimum supported Rust version is Rust 1.56.1. At least the last 3 versions of stable Rust are supported at any given time.
While a crate is pre-release status (0.x.x) it may have its MSRV bumped in a patch release. Once a crate has reached 1.x, any MSRV bump will be accompanied with a new minor version.
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.
Dependencies
~4MB
~68K SLoC