#lcov #覆盖率 #gcov #测试工具

app lcov-util

用于以极快的速度操作和分析 LCOV 跟踪文件的实用命令

12 个版本

0.2.1 2022 年 7 月 18 日
0.1.9 2022 年 6 月 26 日
0.1.6 2021 年 9 月 26 日
0.1.5 2020 年 7 月 28 日
0.1.1 2018 年 2 月 12 日

#1433解析器实现

MIT/Apache

240KB
2.5K SLoC

Rust 1.5K SLoC // 0.0% comments Shell 580 SLoC // 0.3% comments Perl 172 SLoC // 0.0% comments C 94 SLoC // 0.4% comments RPM Specfile 71 SLoC Pan 16 SLoC // 0.2% comments

lcov-util

maintenance status: passively-maintained license crates.io rust 1.56.1+ badge Rust CI codecov

用于快速操作和分析 LCOV 跟踪文件的实用命令。

LCOV 是覆盖率测试工具 gcov 的图形前端。它收集多个源文件的 gcov 数据,并将它们存储在名为 "tracefile" 的文件中。

此 crate 的目的是比原始 LCOV Perl 实现更快地操作 LCOV 跟踪文件。

安装

cargo install lcov-util

性能

LCOV 跟踪文件合并

比较 3 个程序合并 LCOV 跟踪文件执行情况

使用 3 个数据集(由 mkinfo 工具生成

  • 小型:合并 5 个小型跟踪文件(2 个测试,5 个源文件)
  • 中型:合并 5 个中型跟踪文件(3 个测试,50 个源文件)
  • 大型:合并 5 个大型跟踪文件(2 个测试,500 个源文件)
小型 中型 大型
lcov1.16 0.22s 2.41s 21.69s
lcov master 0.23s 2.30s 21.34s
lcov-merge 0.01s 0.21s 2.73s

在这个基准测试中,lcov-merge 的速度比 lcov 1.16 / lcov-master 快 10-20 倍。

  • 环境
    • Arch Linux (5.10.16.3-microsoft-standard-WSL2)
    • AMD Ryzen 9 5950X

有关详细信息,请参阅 benchsuite 目录。

最低支持的 Rust 版本 (MSRV)

最低支持的 Rust 版本是 Rust 1.56.1。在任何给定时间都支持至少最后 3 个稳定的 Rust 版本。

当 crate 处于预发布状态(0.x.x)时,它可能在补丁版本中提高 MSRV。一旦 crate 达到 1.x,任何 MSRV 的提升都将伴随着一个新的次要版本。

许可证

本项目许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交用于包含在 lcov 中的任何贡献,将按照上述方式双授权,不附加任何额外条款或条件。

依赖项

~1.6–2.2MB
~34K SLoC