SuperAPI AI 工具集

Line Execution Checker

测试与质量

查看项目

更新于 10-16 03:01

技能介绍

用途

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 EXECUTED
    • util.c:55 EXECUTED (12 times)
  • 通过退出码反馈结果:
    • 0:所有行均已执行
    • 1:一行或多行未执行
    • 2:错误

使用方式

  1. 构建工具:
    g++ -O3 -std=c++17 line_checker.cpp -o line-checker
    
  2. 运行检查:
    ./line-checker file.c:42
    
    或一次检查多行:
    ./line-checker file.c:42 main.c:100 util.c:55
    

前置条件

覆盖率数据必须已存在,即此前需使用 --coverage 标志运行过测试,生成 .gcda 文件。

适用场景

当用户询问“file.c 的第 X 行是否被执行过?”或“检查这些行是否被覆盖”时,可按以下步骤操作:

  1. 验证 .gcda 文件是否存在:find . -name "*.gcda" -print -quit
  2. 如需要则构建工具:g++ -O3 -std=c++17 line_checker.cpp -o line-checker
  3. 运行:./line-checker file.c:X
  4. 向用户报告结果

示例交互:

用户:“parser.c 的第 127 行是否被执行过?”

./line-checker parser.c:127
# 输出:parser.c:127 EXECUTED (3 times)

回复:“是的,第 127 行在测试期间被执行了 3 次。”

限制

  • 依赖 gcov 覆盖率数据,必须先以 --coverage 标志运行测试生成 .gcda 文件。
  • 需要自行编译 C++ 源文件生成可执行程序。
  • 其他平台、收费、价格等信息暂未提供。