+86-755-89202795

华为开放鸿蒙OpenHarmony认证

OpenHarmony兼容性认证主要是验证合作伙伴的设备和业务应用满足OpenHarmony开源兼容性定义的技术要求,确保运行在OpenHarmony上的设备和业务应用能稳定、正常运行,同时使用OpenHarmony的设备和业务应用有一致性的接口和业务体验。

企业级合规

深光标准技术|OpenHarmony轻量系统应用兼容性测试经验分享

一、适合使用 OpenHarmony 轻量系统的设备

由以下表格的兼容性类型介绍可看出,
OpenHarmony 轻量系统是面向MCU类处理器例如Arm Cortex-M、RISC-V 32位的设备,



那适合使用 OpenHarmony 轻量系统的设备有哪些呢?主要是家电类、可穿戴设备、智能传感器、小家电等。



芯片平台:轻量系统常见平台为 ARM Cortex-M 系列(如 STM32、Hi3861、BK7231、ESP32 等),使用 LiteOS 或 RTOS 内核。

深光也同步整理了已经获得openharmony认证的应用了轻量系统的大部分产品使用的芯片和芯片厂家信息。如果您不确定您的产品使用的芯片是否适配过openharmony系统,可以咨询我们。


二、如何进行 OpenHarmony 轻量系统的测试?

轻量系统应用兼容性测试指导
说明:轻量系统因系统能力限制,兼容性测试在系统初始化阶段进行;并且各设备烧录工具存在差异,导致自动化工具(xDevice工具)无法实现真正的自动适配,因此测试执行方式不对合作伙伴进行限制。
流程份2步,如下:
步骤1 编译适配:XTS子系统加入到编译组件中,随版本一起编译;
步骤2 本地执行:完成兼容性测试;
编译适配
XTS子系统加入到编译组件中,随版本一起编译
举例:以hispark_pegasus为例。
1.vendor下增加xts_acts与xts_tools组件定义(vendor\hisilicon\hispark_pegasus\config.json)
{
   "subsystem": "test",
   "components": [
       { "component": "xts_acts", "features":[] },
       { "component": "xts_tools", "features":[] }
   ]
},
2 .使用hb命令触发debug版本(非debug版本不会触发测试编译)
注意事项
hispark_pegasus使用riscv gcc编译工具链与SCons构建工具完成系统编译工作,其他设备如果编译工具链不同需要参考自行完成编译与链接操作。
下面介绍hispark_pegasus的XTS子系统编译流程以供参考。
1.通过hb工具读取系统配置文件(其中涉及文件:vendor\hisilicon\hispark_pegasus\config.json)获取参与编译的子系统以及部件信息;
2.通过gn工具读取 BUILD.gn文件并执行生成 .a文件(XTS子系统gn文件位置:test\xts\acts\build_lite\BUILD.gn);
all_features会读取轻量系统全部acts测试套件:
if (ohos_kernel_type == "liteos_m") {
  all_features += [
    "//test/xts/acts/communication_lite/wifiservice_hal:ActsWifiServiceTest",
    "//test/xts/acts/utils_lite/file_hal:ActsUtilsFileTest",
    ...
  ]
判断非debug版本,all_features置空(非debug版本XTS不参与编译):
  if (ohos_build_type == "debug" && ohos_test_args != "notest") {
    _all_features = ""
    _product_json = rebase_path("${product_path}/config.json")
    foreach(one_feature, all_features) {
      _all_features = _all_features + one_feature + ","
    }
    _args = [
      "--method_name",
      "filter_by_subsystem",
      "--arguments",
      "testsuites=${_all_features}#product_json=${_product_json}",
    ]
    features += exec_script(rebase_path("//test/xts/tools/lite/build/utils.py"),
                            _args,
                            "list lines")
  }
all_features与vendor\hisilicon\hispark_pegasus\config.json子系统组件进行对比,存在的子系统部件才会参与最终编译;
最终编译生成.a归档路径:out\hispark_pegasus\wifiiot_hispark_pegasus\libs,其他产品参考类似找到.a:
其中XTS子系统的.a归档格式libmodule_{测试套件模块名称}.a,以及测试框架.a 归档格式:libhctest.a;
举例:
libmodule_ActsParameterTest.a
libhctest.a
3.通过SCons构建工具完成链接操作(其中涉及文件:device\hisilicon\hispark_pegasus\sdk_liteos\SConstruct),其他产品根据编译工具链选择自行完成链接工作;
if app_name != "wifiiot_app":
    env[‘LIBS‘] = list(map(lambda x:‘-l%s‘%x, env_cfg.get_libs()))
else:
    env[‘LIBS‘] = list(map(lambda x:‘-l%s‘%x, env_cfg.get_libs())) + [‘--whole-archive‘] + list(map(lambda x:‘-l%s‘%x, env_cfg.get_ohos_libs())) + [‘--no-whole-archive‘]
env.Append(LIBS = app_builder.get_app_libs())
env.Append(LIBS = ‘-lwifi_flash‘)
env.Append(LIBS = ‘-lwifi‘)
env.Append(LIBS = ‘-llitekernel_flash‘)
env.Append(LIBS = ‘-lsystem‘)
Sconstruct脚本中链接了测试套对应.a ,没有显示调用所以需要指定 —no-whole-archive。
本地执行:完成兼容性测试
测试组网

  • 轻量系统设备为使用OpenHarmony的被测设备。
  • Windows工作台操作中心,通过串口连接轻量系统设备,进行版本烧录和测试命令下发等。
执行兼容性测试套件
举例:以hispark_pegasus产品执行acts为例。
手工执行兼容性测试套件,需要使用烧录工具以及串口工具,操作步骤如下:
1.获取编译镜像。
在如下目录获取版本镜像:out/hispark_pegasus/wifiiot_hispark_pegasus/。
说明: 判断当前版本镜像是否集成acts测试套件方法:在map文件中查看对应.a是否被编译即可。
2.版本镜像烧录。
测试步骤。
(1)使用串口工具登录模组,并保存串口打印信息。
(2)重启模组,启动过程中兼容性测试自动化执行,等待执行完,查看串口日志。

3.测试结果分析指导。
(1)基于串口打印日志进行分析;

(2)每个测试套件执行以“Start to run test suite”开始,以“xx Tests xx Failures xx Ignored”结束。
4.测试结果归档


以上就是深光开源鸿蒙轻量系统应用兼容性测试经验分享。

欢迎联系深光标准技术,除了轻量系统,我们也完成多款标准系统和小型系统的兼容性测试。从2022年开始至今已经协助很多客户完成开放鸿蒙兼容性测试认证服务,涵盖预测试服务,测试认证流程协助,测试失败fail case定位,技术指导等服务;

系统驱动开源鸿蒙开发需求,我们可以整包项目的编译适配、内核移植、系统移植、驱动适配等工作。

深光现在配备了国内开放鸿蒙系统+国外谷歌安卓GMS双系统的测试能力;面向国外市场,我们建立了成熟的谷歌安卓GMS测试认证;面对国内市场,我们建立了开放鸿蒙兼容性测试认证;可以协助合作伙伴们、一套样品、一站式、完成国内外双系统2个市场测试认证服务。


推荐项目