已开启
wifi2wifi while roaming #5567
wifi2wifi while roaming #5567
已开启
cameng创建于 8 小时前
cameng
cameng
8 小时前

一、内容说明(相关的Issue)

wifi2wifi switch while roaming in-progress

二、建议测试周期和提测地址

建议测试完成时间:xxxx.xx.xx
投产上线时间:xxxx.xx.xx
提测地址:CI环境/压测环境
测试账号:

三、变更内容

  • 3.1 关联PR列表

  • 3.2 数据库和部署说明

    1. 常规更新
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:bundle exec xxx RAILS_ENV = production;没有写 "无"
  • 3.4 其他技术优化内容(做了什么,变更了什么)

    • 重构了 xxxx 代码
    • xxxx 算法优化
  • 3.5 废弃通知(什么字段、方法弃用?)

  • 3.6 后向不兼容变更(是否有无法向后兼容的变更?)

四、研发自测点(自测哪些?冒烟用例全部自测?)

自测测试结论:

五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)

检查点:

需求名称 是否影响xx公共模块 是否需要xx功能 需求升级是否依赖其他子产品
xxx 需要 不需要

接口测试:

性能测试:

并发测试:

其他:

likedislike
合并受阻
openharmony_ciopenharmony_ci成员
8 小时前 添加了label:waiting_on_author
camengcameng
8 小时前 关联了issue:wifi2wifi and roaming
openharmony_ci
openharmony_ci成员
8 小时前 评论:

感谢提交 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.

likedislike
openharmony_ciopenharmony_ci成员
8 小时前 添加了label:dco检查成功
LisaMessi
8 小时前 评论:

PR 审查报告:#5567 - wifi2wifi while roaming

仓库:OpenHarmony/communication_wifi
PR 地址https://gitcode.com/openharmony/communication_wifi/merge_requests/5567
作者:cameng
目标分支:master
PR SHA649001cd35dd32837c9910c78aa73518905b486a
状态:open
标签waiting_on_authordco检查成功

CI 状态

  • ✅ DCO 检查成功
  • ✅ 冲突检查通过
  • ⚠️ 未见编译/静态检查结果标签(核心问题可能导致编译失败)

变更概要

本 PR 在 wifi2wifi 切换条件中增加"增强漫游进行中"检查(3 个文件,+15/-0),为 #5566 的修订版(移除了空行噪音、测试改为新增断言行而非替换):

  1. 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;
  1. 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;
}
  1. 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 检查通过
likedislike
camengcameng
8 小时前 推送  1 个提交:7633416d-fix
openharmony_ci
openharmony_ci成员
8 小时前 评论:

感谢提交 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.

likedislike
cameng
cameng
8 小时前 评论:

start build

likedislike
openharmony_ci
openharmony_ci成员
8 小时前 评论:
likedislike
cameng
cameng
8 小时前 评论:

start build

likedislike
openharmony_ci
openharmony_ci成员
8 小时前 评论:

本地或库上代码有更新,全量重新构建,重置所有关联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

likedislike
openharmony_ciopenharmony_ci成员
7 小时前 添加了label:静态检查成功
openharmony_ciopenharmony_ci成员
7 小时前 添加了label:冒烟测试成功
openharmony_ci
openharmony_ci成员
7 小时前 评论:

代码门禁未通过
您可以通过如下链接查看门禁报告: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 >>>

likedislike
cameng
cameng
5 小时前 评论:

start build

likedislike
openharmony_ci
openharmony_ci成员
5 小时前 评论:

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

likedislike
openharmony_ci
openharmony_ci成员
5 小时前 评论:

代码门禁未通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a89857a64650f998bbaf0e2/runlist

# Device build result package
1 master_inner_build failed(联合门禁失败) >>>

likedislike
cameng
cameng
5 小时前 评论:

start build

likedislike
openharmony_ci
openharmony_ci成员
5 小时前 评论:

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

likedislike
openharmony_ci
openharmony_ci成员
5 小时前 评论:

代码门禁未通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a89907564650f998bbdf081/runlist

# Device build result package
1 master_inner_build failed(联合门禁失败) >>>

likedislike
cameng
cameng
3 小时前 评论:

start build

likedislike
openharmony_ci
openharmony_ci成员
3 小时前 评论:

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

likedislike
openharmony_ci
openharmony_ci成员
3 小时前 评论:

代码门禁未通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6a89a98a64650f998bc46e0f/runlist

# Device build result package
1 master_inner_build failed(联合门禁失败) >>>

likedislike