合并受阻
感谢提交 Pull Requests!如果您提交的PR已经开发完毕,请评论 "start build" 触发门禁,更多交互操作,请访问OpenHarmony社区支持命令清单。如果需要调整订阅PR、Issue的变更状态,请访问订阅链接。
Thanks for submitting the pull request. If your Pull Request has already been developed, you can leave a "start build" comment to trigger the gated system. For more commands, please visit OpenHarmony Command List. If you need to change the subscription of a Pull Request or Issue, please visit the link.


PR 审查报告:#5567 - wifi2wifi while roaming
仓库:OpenHarmony/communication_wifi
PR 地址:https://gitcode.com/openharmony/communication_wifi/merge_requests/5567
作者:cameng
目标分支:master
PR SHA:649001cd35dd32837c9910c78aa73518905b486a
状态:open
标签:waiting_on_author、dco检查成功
CI 状态:
- ✅ DCO 检查成功
- ✅ 冲突检查通过
- ⚠️ 未见编译/静态检查结果标签(核心问题可能导致编译失败)
变更概要
本 PR 在 wifi2wifi 切换条件中增加"增强漫游进行中"检查(3 个文件,+15/-0),为 #5566 的修订版(移除了空行噪音、测试改为新增断言行而非替换):
ienhance_service.h(+7):IEnhanceService新增纯虚方法:
/**
* @Description query whether enhanced roaming in-progress
*
* @return true if enhanced roaming in progress, else false
*/
virtual void IsEnhancedRoamingInProgress() = 0;
wifi_pro_state_machine.cpp(+6):IsSatisfiedWifi2WifiCondition漫游中返回 false:
IEnhanceService *pEnhanceService = WifiServiceManager::GetInstance().GetEnhanceServiceInst();
if (pEnhanceService != nullptr && pEnhanceService->IsEnhancedRoamingInProgress()) {
WIFI_LOGI("IsSatisfiedWifi2WifiCondition: roaming in progress");
return false;
}
wifi_pro_state_machine_test.cpp(+2):测试新增一行断言。
问题详情
🚨严重
1. 接口声明为 void,却被作为条件表达式使用 → 编译失败(#5566 核心问题未修复)
位置:wifi/base/inner_api/ienhance_service.h / wifi_pro_state_machine.cpp
描述:
// ienhance_service.h
virtual void IsEnhancedRoamingInProgress() = 0; // ← 仍为 void
// wifi_pro_state_machine.cpp
if (pEnhanceService != nullptr && pEnhanceService->IsEnhancedRoamingInProgress()) {
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// void 不能作为 && 操作数 → 编译错误
接口注释明确写 @return true if enhanced roaming in progress, else false,但声明返回 void,与 #5566 相同。void 表达式无法用于 if 条件 → 必然编译失败。
影响:整个 wifi_manage 模块无法编译。
修复建议:返回类型改为 bool:
/**
* @Description query whether enhanced roaming in-progress
*
* @return true if enhanced roaming in progress, else false
*/
virtual bool IsEnhancedRoamingInProgress() = 0;
2. 新增纯虚方法仍无任何实现(#5566 核心问题未修复)
位置:wifi/base/inner_api/ienhance_service.h
描述:IEnhanceService 新增 = 0 纯虚方法,但本 PR 3 个文件中不包含任何实现(EnhanceServiceImpl 与测试 Mock 均未更新)。实现类将因未实现该方法而变为抽象类,实例化处编译失败。
影响:即使修复问题 1,仍会编译失败;若实现位于其他仓库/PR,需说明依赖顺序。
修复建议:在本 PR 中补齐实现并同步 Mock:
// wifi_enhance_service.cpp(示例)
bool EnhanceServiceImpl::IsEnhancedRoamingInProgress()
{
return roamingInProgress_;
}
⚠️主要
3. 新增测试断言仍为恒真断言,未覆盖新逻辑
位置:wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_pro/wifi_pro_state_machine_test.cpp
描述:
HWTEST_F(WifiProStateMachineTest, IsSatisfiedWifi2WifiConditionTest01, TestSize.Level1)
{
pWifiProStateMachine_->isWifi2WifiSwitching_ = false;
+ pWifiProStateMachine_->isDisableWifiAutoSwitch_ = false;
pWifiProStateMachine_->IsSatisfiedWifi2WifiCondition();
EXPECT_EQ(pWifiProStateMachine_->isWifi2WifiSwitching_, false);
+ EXPECT_EQ(pWifiProStateMachine_->isDisableWifiAutoSwitch_, false);
}
较 #5566 的改进:保留了原断言(isWifi2WifiSwitching_)。但新增断言仍为恒真(刚设置为 false 又断言 false),无验证价值;且:
- 未 mock 增强服务(调用真实
GetEnhanceServiceInst()); - 未覆盖新增逻辑分支(漫游中 → 返回 false);
- 未断言函数返回值(
IsSatisfiedWifi2WifiCondition返回 bool,测试忽略)。
影响:新增功能无有效测试覆盖。
修复建议:
HWTEST_F(WifiProStateMachineTest, IsSatisfiedWifi2WifiConditionTest01, TestSize.Level1)
{
pWifiProStateMachine_->isWifi2WifiSwitching_ = false;
// 增强服务为空(默认测试环境)时不影响 wifi2wifi 判定
EXPECT_TRUE(pWifiProStateMachine_->IsSatisfiedWifi2WifiCondition());
}
并补充:mock 增强服务返回"漫游中"时,IsSatisfiedWifi2WifiCondition 返回 false 的用例。
💡建议
4. PR 描述信息量不足
"wifi2wifi switch while roaming in-progress" 仅一句话,未说明:增强漫游中发起 wifi2wifi 的具体冲突现象、漫游状态来源(增强服务侧实现)、判断的时效性(漫游结束后的状态清除)。
总体评分
| 维度 | 评分 | 说明 |
|---|---|---|
| 功能正确性 | 3/10 | void 作条件编译失败、纯虚无实现 |
| 代码质量 | 4/10 | 注释与声明矛盾 |
| 安全性 | 7/10 | 无安全影响 |
| 可维护性 | 5/10 | 说明不足 |
| 测试充分性 | 4/10 | 恒真断言、新逻辑无覆盖 |
| 综合评分 | 3/10 |
审查结论
建议操作:🚨 暂不合并
阻塞性问题:
- 问题 1:
IsEnhancedRoamingInProgress返回void却被用作条件表达式 → 编译失败(#5566 已指出,本版未修复); - 问题 2:新增纯虚方法无实现(实现类与测试 Mock 未同步);
- 问题 3:测试新增断言恒真,新逻辑无覆盖。
建议修复:
- 返回类型改
bool,补齐实现与 Mock; - 测试改为有意义的断言并补充漫游中分支覆盖。
优点:
- 业务意图合理(避免漫游与 wifi2wifi 并发冲突)
- 相比 #5566 移除了无关空行变更、保留了原测试断言
- 空指针防护存在
- DCO 检查通过


感谢提交 Pull Requests!如果您提交的PR已经开发完毕,请评论 "start build" 触发门禁,更多交互操作,请访问OpenHarmony社区支持命令清单。如果需要调整订阅PR、Issue的变更状态,请访问订阅链接。
Thanks for submitting the pull request. If your Pull Request has already been developed, you can leave a "start build" comment to trigger the gated system. For more commands, please visit OpenHarmony Command List. If you need to change the subscription of a Pull Request or Issue, please visit the link.


start build


检测到同仓同分支存在2个或以上PR https://gitcode.com/openharmony/communication_wifi/merge_requests/5567 & https://gitcode.com/openharmony/communication_wifi/merge_requests/5566 关联相同ISSUE,禁止触发门禁


start build


本地或库上代码有更新,全量重新构建,重置所有关联PR的验证状态
门禁构建开始,包含静态检查、代码编译和测试【master_inner_build编译, x86_64_virt编译, ohos-host_mini_tdd编译, dayu600_7885测试, hispark_pegasus测试, hispark_pegasus_3863编译, hispark_taurus_Linux编译, hispark_pegasus编译, dayu600_7885编译, hispark_pegasus_3863测试, dayu200编译, dayu200_tdd编译, dayu200测试】,预计在60分钟内完成,门禁结果会同步发送到注册邮箱。您可以通过如下链接跟踪门禁进展:http://dcp.openharmony.cn/workbench/cicd/detail/6a895dd564650f998bae9b4e/runlist


代码门禁未通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a895dd564650f998bae9b4e/runlist
静态检查:
| # | check type | result | report |
|---|---|---|---|
| 1 | codeCheck | pass | >>> |
编译测试:
| # | Device | build result | test result | package |
|---|---|---|---|---|
| 1 | hispark_taurus_Linux | success | NA | >>> |
| 2 | dayu200 | success | success | >>> |
| 3 | dayu200_tdd | success | NA | >>> |
| 4 | hispark_pegasus | success | success | >>> |
| 5 | master_inner_build | failed(联合门禁失败) | NA | >>> |
| 6 | ohos-host_mini_tdd | success | NA | >>> |
| 7 | dayu600_7885 | success | success | >>> |
| 8 | x86_64_virt | success | NA | >>> |
| 9 | hispark_pegasus_3863 | success | success | >>> |


start build


部分构建失败,仅触发失败构建
门禁构建开始,包含代码编译【master_inner_build编译】,预计在60分钟内完成,门禁结果会同步发送到注册邮箱。您可以通过如下链接跟踪门禁进展:http://dcp.openharmony.cn/workbench/cicd/detail/6a89857a64650f998bbaf0e2/runlist


代码门禁未通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a89857a64650f998bbaf0e2/runlist
| # | Device | build result | package |
|---|---|---|---|
| 1 | master_inner_build | failed(联合门禁失败) | >>> |


start build


部分构建失败,仅触发失败构建
门禁构建开始,包含代码编译【master_inner_build编译】,预计在60分钟内完成,门禁结果会同步发送到注册邮箱。您可以通过如下链接跟踪门禁进展:http://dcp.openharmony.cn/workbench/cicd/detail/6a89907564650f998bbdf081/runlist


代码门禁未通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a89907564650f998bbdf081/runlist
| # | Device | build result | package |
|---|---|---|---|
| 1 | master_inner_build | failed(联合门禁失败) | >>> |


start build


部分构建失败,仅触发失败构建
门禁构建开始,包含代码编译【master_inner_build编译】,预计在60分钟内完成,门禁结果会同步发送到注册邮箱。您可以通过如下链接跟踪门禁进展:http://dcp.openharmony.cn/workbench/cicd/detail/6a89a98a64650f998bc46e0f/runlist


代码门禁未通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a89a98a64650f998bc46e0f/runlist
| # | Device | build result | package |
|---|---|---|---|
| 1 | master_inner_build | failed(联合门禁失败) | >>> |


一、内容说明(相关的Issue)
wifi2wifi switch while roaming in-progress
二、建议测试周期和提测地址
建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:
三、变更内容
3.1 关联PR列表
3.2 数据库和部署说明
bundle exec xxx RAILS_ENV = production;没有写 "无"3.4 其他技术优化内容(做了什么,变更了什么)
3.5 废弃通知(什么字段、方法弃用?)
3.6 后向不兼容变更(是否有无法向后兼容的变更?)
四、研发自测点(自测哪些?冒烟用例全部自测?)
自测测试结论:
五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
检查点:
接口测试:
性能测试:
并发测试:
其他: