3 个不稳定版本

0.2.1 2024 年 8 月 7 日
0.2.0 2024 年 1 月 17 日
0.1.0 2023 年 9 月 14 日

#199 in 命令行工具

Download history 147/week @ 2024-08-05 8/week @ 2024-08-12

每月 155 下载

GPL-2.0 许可证

44KB
911

drcov2lcov

drcov2lcov 是 DynamoRIO 的 drcov2lcov 在 Rust 中的实现。

当前支持的功能

功能 DynamoRIO 的标志
使用 -i--input 选项指定单个输入文件 -输入
指定一个目录,其中将处理所有 drcov.*.log 文件 -目录
指定一个包含要处理的 drcov 文件列表的文件 -列表
指定一个输出文件以存储行覆盖率信息。默认:<当前目录>/coverage.info -输出
drcov 文件中过滤特定模块。这允许仅生成与给定正则表达式匹配的模块的行覆盖率。默认:None -模块过滤器
从行覆盖率收集中过滤特定模块 -模块跳过过滤器
对于每个模块,在行覆盖率收集中过滤特定的源代码路径 -源过滤器
对于每个模块,在行覆盖率收集中过滤特定的源代码路径 -源跳过过滤器
在收集特定模块的调试信息之前,将模块路径替换为另一个路径 -路径映射
从输入中减少 drov 文件集,到一个包含相同覆盖率信息的较小 drcov 文件集 -减少集

不支持的功能

功能 DynamoRIO 的标志
指定测试函数正则表达式以在输出文件中生成测试覆盖率信息 -测试模式

比 DynamoRIO 的 drcov2lcov 的额外功能

drcov2lcov 的实现支持生成使用 Dwarf v5 符号编译的可执行文件/库的行覆盖率(这是最新编译器的默认值)
以及使用压缩 Dwarf 数据编译的可执行文件/库的行覆盖率。
此外,所有过滤器参数都可以接受多个过滤器,而不是 DynamoRIO 实现中的单个过滤器。

用法

要从 drcov 文件生成行覆盖率,您只需运行

drcov2lcov --input <input_file>

这将生成一个包含行覆盖率的 coverage.info 文件到当前工作目录。
如果您想将行覆盖率保存到不同的路径/名称,可以运行

drcov2lcov --input <input_file> --output <output_file>

安装

您可以克隆此存储库并运行

cargo build --release

如果您想从源代码构建此项目或通过运行以下命令直接从 crates.io 安装

cargo install drcov2lcov

依赖关系

~10MB
~182K SLoC