用途
Line Execution Checker 是一个快速工具,用于检查特定源代码行在测试运行期间是否被执行过。它基于 gcov 覆盖率数据工作,帮助开发者确认某一行代码是否被测试覆盖。
主要能力
- 检查单行是否执行:
./line-checker file.c:42 - 一次检查多行:
./line-checker file.c:42 main.c:100 util.c:55 - 输出每行的执行状态与执行次数,例如:
file.c:42 EXECUTED (5 times)main.c:100 NOT EXECUTEDutil.c:55 EXECUTED (12 times)
- 通过退出码反馈结果:
- 0:所有行均已执行
- 1:一行或多行未执行
- 2:错误
使用方式
- 构建工具:
g++ -O3 -std=c++17 line_checker.cpp -o line-checker - 运行检查:
或一次检查多行:./line-checker file.c:42./line-checker file.c:42 main.c:100 util.c:55
前置条件
覆盖率数据必须已存在,即此前需使用 --coverage 标志运行过测试,生成 .gcda 文件。
适用场景
当用户询问“file.c 的第 X 行是否被执行过?”或“检查这些行是否被覆盖”时,可按以下步骤操作:
- 验证
.gcda文件是否存在:find . -name "*.gcda" -print -quit - 如需要则构建工具:
g++ -O3 -std=c++17 line_checker.cpp -o line-checker - 运行:
./line-checker file.c:X - 向用户报告结果
示例交互:
用户:“parser.c 的第 127 行是否被执行过?”
./line-checker parser.c:127
# 输出:parser.c:127 EXECUTED (3 times)
回复:“是的,第 127 行在测试期间被执行了 3 次。”
限制
- 依赖 gcov 覆盖率数据,必须先以
--coverage标志运行测试生成.gcda文件。 - 需要自行编译 C++ 源文件生成可执行程序。
- 其他平台、收费、价格等信息暂未提供。