已合并
feat: 增补UT覆盖率 #4126
likun104创建于 7月24日
feat: 增补UT覆盖率 #4126
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 likun104 的贡献)atomgit-bot
7月24日 评论:
7月24日 评论:
变更摘要
本次 PR 主要目的是大规模增补单元测试覆盖率,涉及 32 个文件、新增约 4669 行代码。同时包含少量生产代码的缺陷修复和防御性校验改进:在 DataSliceHelper 中增加空指针校验,在 ComputeGraphImpl::AddCtrlEdgeForTargets 中修复迭代容器不一致问题,在 DataSliceAdapter::TransSliceInfo 的 switch 中补全 UNSPLIT 分支。此外将 TimeBatchFlowFuncSTest 中等待超时从 500ms 放宽至 5000ms 以避免偶发失败。
主要改动
DataSliceHelper空指针防护: 在GetSliceInfo和GetDavinciSliceInfo方法中增加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.cc、strided_slice_kernel_unittest.cc、slice_kernel_unittest.cc、slice_d_kernel_unittest.cc、gather_v2_kernel_unittest.cc等文件中新增约 150+ 条测试用例,覆盖DataSliceAdapter、DataSliceHelper、DataSliceElementwiseImpl、SliceKernel、SliceDKernel、GatherV2Kernel、StridedSliceKernel等模块的边界条件和异常路径。 - 新增测试文件覆盖工具类:新增
tensor_value_utils_unittest.cc、cov_utils_misc_unittest.cc、buffer_fusion_cov_unittest.cc、op_def_cov_unittest.cc、ge_ir_utils_cov_unittest.cc等文件,覆盖TensorValueUtils、GraphThreadPool、BufferFusionPassBase、OpDef系列类、OnnxUtils/GeIrUtils、TuningUtils、QuantUtil、Profiler等大量工具和注册机制接口。


不准确?
atomgit-bot
7月24日 评论:
7月24日 评论:
代码审查
关闭总结
| 优先级 | 数量 | 说明 |
|---|---|---|
| P0 | 1 | op_desc_utils_unittest.cc:1515-1516 — const_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.cc、data_slice_helper.cc、compute_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 |
⛔ 需要修改


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


7月25日 添加了label:approved
7月25日 解决了最后一个问题
7月25日 合入了pull request
Pull Request
描述
增补UT覆盖率
变更类型
请选择本次引入的变更类型:
关联的Issue
如何测试
描述测试此变更的步骤和前提条件:
核对清单
其他信息
在此添加任何其他关于本次 PR 的说明。