CANN/

hcomm

公开

HCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。

496
代码Commits分支Pull Requests213讨论
已合并

AivUbMemTransport和CcuTransport的UT整改#1783

renyumin创建于 8 天前从master合入到master
讨论8提交1检查0文件改动3

合并人

未指定
r
renyumin8 天前创建

描述

  1. UT打断问题:表现为在 CMakeLists.txt 中 coll_comms/api_c_adpt/ut_coll_comm_res_c_adpt.cc 位于 comms/aiv/ut_AivUbMemTransport_API_test.cc 或 comms/ccu/ut_CcuTransport_API_test.cc 下方时会导致 coll_comms/api_c_adpt/ut_coll_comm_res_c_adpt.cc 中的用例执行中出现 ut_AivUbMemTransport_API_test.cc 或 ut_CcuTransport_API_test.cc 的报错。 image.png 根因分析:原代码中使用 MOCKER(&Hccl::EnvConfig::Parse).stubs().will(ignoreReturnValue()); 打桩,实际执行了 Parse 行为但行为结果被 ignoreReturnValue() 忽略,main.cc 中 setenv("HCCL_DFS_CONFIG", "connection_fault_detction_time:0", 1); 这样设置会使得在 Parse 内抛出异常,该异常未被捕获而被 ignoreReturnValue() 忽略,后续执行到 coll_comms/api_c_adpt/ut_coll_comm_res_c_adpt.cc 内的 UT 用例时再次执行了 Parse 捕获到异常导致用例失败。 解决方案:不再对 Parse 打桩,使用 setenv("HCCL_DFS_CONFIG", "task_exception:on", 1); 使 Parse 能够正常执行,并在 TearDown 中 unsetenv。
  2. 将 UT 用例中重复代码提取封装为 TEST 中的公用函数。

关联的Issue

<!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。--> <!-- 如果这个PR不涉及Issue,可填写"NA"。-->

测试

已调整 CMakeLists.txt 中用例的位置,UT_TEST 正常编译并执行成功,即确认不再对其他用例产生影响。

文档更新

<!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。-->

类型标签

<!-- [x] 表示选中 -->
  • Bug修复
  • 新特性
  • 性能优化
  • 文档更新
  • 其他,请描述:
Pull Request已成功合入, 合并人 @cann-robot
(感谢 renyumin 的贡献)