已合并
feat: 增补UT覆盖率 #4126
likun104创建于 7月24日
feat: 增补UT覆盖率 #4126
已合并
likun104创建于 7月24日
likun104成员
7月24日

Pull Request

描述

增补UT覆盖率

变更类型

请选择本次引入的变更类型:

关联的Issue

如何测试

描述测试此变更的步骤和前提条件:

  1. 流水线跑通过

核对清单

其他信息

在此添加任何其他关于本次 PR 的说明。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 likun104 的贡献)
Llikun104成员
7月24日 添加了label:enhancement
Llikun104成员
7月24日 创建了 pull request,commit a58c242e
atomgit-bot
atomgit-bot
7月24日 评论:

变更摘要

本次 PR 主要目的是大规模增补单元测试覆盖率,涉及 32 个文件、新增约 4669 行代码。同时包含少量生产代码的缺陷修复和防御性校验改进:在 DataSliceHelper 中增加空指针校验,在 ComputeGraphImpl::AddCtrlEdgeForTargets 中修复迭代容器不一致问题,在 DataSliceAdapter::TransSliceInfo 的 switch 中补全 UNSPLIT 分支。此外将 TimeBatchFlowFuncSTest 中等待超时从 500ms 放宽至 5000ms 以避免偶发失败。

主要改动

  • DataSliceHelper 空指针防护: 在 GetSliceInfoGetDavinciSliceInfo 方法中增加 node == nullptr 的校验并返回 FAILED,避免空指针解引用。
  • ComputeGraphImpl::AddCtrlEdgeForTargets 迭代容器修正: 将循环容器从 targets_ 改为 target_nodes_info_,并增加 targets_.find(node) != targets_.end() 的成员检查,修复潜在的遍历容器与判断集合不匹配问题。
  • DataSliceAdapter::TransSliceInfo 补全 UNSPLIT 分支: 在 switch 语句中为 AxisType::UNSPLIT 添加 case 标签,使其与 SLIDINGWINDOW 等分支共享相同的处理逻辑。
  • 大规模新增 UT 用例:在 dataslice_unittest.ccstrided_slice_kernel_unittest.ccslice_kernel_unittest.ccslice_d_kernel_unittest.ccgather_v2_kernel_unittest.cc 等文件中新增约 150+ 条测试用例,覆盖 DataSliceAdapterDataSliceHelperDataSliceElementwiseImplSliceKernelSliceDKernelGatherV2KernelStridedSliceKernel 等模块的边界条件和异常路径。
  • 新增测试文件覆盖工具类:新增 tensor_value_utils_unittest.cccov_utils_misc_unittest.ccbuffer_fusion_cov_unittest.ccop_def_cov_unittest.ccge_ir_utils_cov_unittest.cc 等文件,覆盖 TensorValueUtilsGraphThreadPoolBufferFusionPassBaseOpDef 系列类、OnnxUtils/GeIrUtilsTuningUtilsQuantUtilProfiler 等大量工具和注册机制接口。
likedislike
不准确?
atomgit-bot
atomgit-bot
7月24日 评论:

代码审查

关闭总结

优先级 数量 说明
P0 1 op_desc_utils_unittest.cc:1515-1516const_input_nodes 为空时越界访问
P1 0
P2 2 strided_slice_kernel_unittest.cc:870-879 — tensor 元数据不一致;graph_pass_util_ut.cc:843 — putenv 环境泄漏
P3 2 dataslice_unittest.cc:818 — 未使用变量;ge_ir_utils_cov_unittest.cc:398 — 未使用变量

总体风险判断:中等。P0 问题在特定条件下(GetConstInputNode 返回空 vector)会导致测试 crash。两个 P2 问题分别为潜在 UB 和环境变量污染,可能影响其他测试的稳定性。非测试文件(data_slice_adapter.ccdata_slice_helper.cccompute_graph.cc)的变更均为合理的防御性修复或 bug 修复,无新增逻辑缺陷。

各文件审查结果

文件 结果
base/slice/data_slice_adapter.cc 无问题 — 补充 UNSPLIT case,修复了已有 switch 未覆盖 UNSPLIT 导致误返回 FAILED 的 bug
base/slice/data_slice_helper.cc 无问题 — 两个函数新增 nullptr 防御检查
graph_metadef/graph/normal_graph/compute_graph.cc 无问题 — 循环从 set 改为 vector(保持顺序),并增加 targets_.find 守卫
tests/dflow/udf/st/testcase/built_in/time_batch_flow_func_stest.cpp 无问题 — 超时从 500ms 延长到 5000ms
tests/ge/ut/ge/common/dataslice_unittest.cc P3: 第 818 行未使用变量 null_op_desc
tests/ge/ut/ge/graph/passes/folding_kernel/gather_v2_kernel_unittest.cc 无问题
tests/ge/ut/ge/graph/passes/folding_kernel/slice_d_kernel_unittest.cc 无问题
tests/ge/ut/ge/graph/passes/folding_kernel/slice_kernel_unittest.cc 无问题
tests/ge/ut/ge/graph/passes/folding_kernel/strided_slice_kernel_unittest.cc P2: 第 870-879 行 tensor shape 与 data size 不一致
tests/graph_metadef/ut/graph/testcase/buffer_unittest.cc 无问题
tests/graph_metadef/ut/graph/testcase/constant_utils_unittest.cc 无问题
tests/graph_metadef/ut/graph/testcase/cov_utils_misc_unittest.cc 无问题
tests/graph_metadef/ut/graph/testcase/cycle_detector_unittest.cc 无问题
tests/graph_metadef/ut/graph/testcase/ffts_graph_utils_unittest.cc 无问题
tests/graph_metadef/ut/graph/testcase/ge_ir_utils_cov_unittest.cc P3: 第 398 行未使用变量 attr_pair
tests/graph_metadef/ut/graph/testcase/graph_utils_unittest.cc 无问题
tests/graph_metadef/ut/graph/testcase/node_utils_unittest.cc 无问题
tests/graph_metadef/ut/graph/testcase/op_desc_unittest.cc 无问题
tests/graph_metadef/ut/graph/testcase/op_desc_utils_unittest.cc P0: 第 1515-1516 行越界访问
tests/graph_metadef/ut/graph/testcase/profiler_unittest.cc 无问题
tests/graph_metadef/ut/graph/testcase/tensor_value_utils_unittest.cc 无问题
tests/graph_metadef/ut/graph/testcase/tuning_utils_unittest.cc 无问题
tests/graph_metadef/ut/register/testcase/buffer_fusion_cov_unittest.cc 无问题
tests/graph_metadef/ut/register/testcase/fusion_quant_util_cov_unittest.cc 无问题
tests/graph_metadef/ut/register/testcase/graph_pass_util_ut.cc P2: 第 843 行 putenv 环境泄漏
tests/graph_metadef/ut/register/testcase/op_def_cov_unittest.cc 无问题
tests/graph_metadef/ut/register/testcase/op_def_factory_unittest.cc 无问题
tests/graph_metadef/ut/register/testcase/op_tiling_attr_utils_test.cc 无问题
tests/graph_metadef/ut/register/testcase/register_graph_fusion_4.cc 无问题
tests/graph_metadef/ut/register/testcase/register_graph_fusion_v2_utest.cc 无问题
tests/graph_metadef/ut/register/testcase/register_op_tiling_py_cov_ut.cc 无问题
tests/graph_metadef/ut/register/testcase/register_optiling_unittest.cc 无问题
类型 数量
🔴 阻塞 1
🟡 建议 1

⛔ 需要修改

likedislike
不准确?
CANN-robotCANN-robot成员
7月24日 添加了label:cann-cla/yes
此处折叠了93条消息 查看更多
CANN-robotCANN-robot成员
7月24日 添加了label:ci-pipeline-passed
zhanj
zhanj成员
7月25日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
7月25日 添加了label:approved
CANN-robotCANN-robot成员
7月25日 解决了最后一个问题
CANN-robotCANN-robot成员
7月25日 合入了pull request