跳转至

OpenHarmony XTS 认证开发指南

XTS认证版本二次开发注意事项

最大访问文件数

由于不同产品文件数访问存在差异,已和OpenHarmony实验室沟通允许修改XTS(X Test Suite,应用兼容性测试套)用例最大值。请按具体设备开机后实际剩余可用文件数量修改XTS可用最大文件数。

  1. 计算规则

    XTS可用最大文件数=系统最大访问文件数-开机已打开文件数。

    例如:系统最大访问文件数是100,开机业务已占用2,则XTS可用最大文件数是98。

  2. 查看系统最大访问文件数

    • Nand单板:yaffs最大访问文件数

      源码:yaffscfg.h

      宏定义:#define YAFFSFS_N_HANDLES 100

    • eMMC单板:fatfs最大访问文件数

      源码:ffconf_porting.h

      宏定义:#define FF_FS_LOCK 100

  3. 调整XTS可用最大文件数,修改位置如下

    源码:utils_file_reli_test.c

    修改宏定义:#define MAX_NUM_OF_OPENED_FILES 98

如果不确定业务开机后访问的文件总数,可以使用以下方式验证:

方式一:通过文件系统接口void lsfd(void)查询。

方式二:通过XTS用例实测,修改XTS可用最大文件数后,编译执行XTS用例。如果MAX_NUM_OF_OPENED_FILES配置偏大,则会在testMoveFileAfterMaxFilesOpened循环中失败,如图1所示。

图 1 方式验证示例图

方式验证示例图

最大线程数

如果开发时创建线程失败,可能原因是设置的最大线程数不够。

修改源码:3322_xts.config

修改最大线程数位置:LOSCFG_BASE_CORE_TSK_LIMIT=64

KV使用数量

海思公版XTS版本默认关闭与认证测试无关的KV读写,避免影响kv_store、file等文件系统用例执行。

  1. 当使用UtilsSetEnv()或UtilsSetValue()对KV进行操作时,应采用XTS_SUPPORT宏隔离,防止与XTS认证无关的KV操作占用最大文件访问数。

    例如“/src/application/wearable/nativeapp/nativeui”路径示例代码如下:

    #ifndef XTS_SUPPORT
    UtilsSetValue("abc", "1");
    #endif
    
  2. 当使用UtilsGetValue()获取value时,应采用XTS_SUPPORT宏隔离,并为业务变量初始化提供缺省值。防止XTS版本关闭业务UtilsGetValue()后变量赋值错误。

支持PNG图片解码

XTS版本为了支持acts_validator用例,需要支持PNG图片解码。海思公版默认使能PNG解码,客户二次开发时请勿裁剪XTS版本PNG能力。

修改源码:3322_graphic_lite_config.h

修改位置:

ENABLE_JPEG_AND_PNG 1
CACHE_JPEG_AND_PNG 1

图 1 修改位置示例图

修改位置示例图

如果认证测试出现JPEG解码不兼容的问题,请尝试切换JPEG软解。

修改源码:graphic_hardware_config_wearable.h

修改位置:CAPABILITY_HW_JPEG_DECODE 0

图 2 修改位置示例图

修改位置示例图-0

BMS测试套应用预置

OHOS 5.0 XTS引入BundleMgrTest测试套,主要用于测试应用安装与卸载,需预置应用在板端“/user”下。

以下为预置应用的详情:

  • 应用名称:testdemo1.bin

    包名:com.example.testdemo1

    预置到板端路径及名称:/user/testdemo1.bin

  • 应用名称:testdemo2.bin

    包名:com.example.testdemo2

    预置到板端路径及名称:/user/testdemo2.bin

说明:

  1. 本章节提及到的应用皆为DevEco Studio 5.0 Release IDE编译出的应用,编译方式请参考《OpenHarmony JS应用开发用户指南》中的“IDE”章节
  2. 板端上传应用请参考《DebugKits工具使用指南》中的“串口连接”章节“数据上传与下载”章节

XTS acts测试指导

本章节介绍XTS镜像编译、烧写和acts测试运行方法,ACTS(Application Compatibility Test Suite)即应用兼容性测试套。

编译

使用一站式 CLI 构建 XTS 完整固件包:

fbb set-target pack_diting_community_xts
fbb build --clean

构建生成 diting-community-xts.fwpkg;DSP 和 BT 配套镜像由目标的打包配置统一处理,不需要改用底层 build.py 命令。

烧写

  1. 使用一站式 CLI 烧写 diting-community-xts.fwpkg。以下为 Windows USB DFU 示例;其他平台和串口烧写参数参见一站式 CLI 开发环境使用指南

    fbb flash -f "$env:FBB_SDK_DIR\output\3322\fwpkg\diting-community-xts.fwpkg" --chip 3322 -d --timeout 180
    
  2. 使用DebugKits工具将“dsp_main.bin”、“dsp_overlay.bin”、“bt_signed.bin”上传到板端对应路径。

    dsp_main.bin镜像上传板端路径:/boot/dsp/dsp_main.bin

    dsp_overlay.bin镜像上传板端路径:/boot/dsp/dsp_overlay.bin

    bt_signed.bin镜像上传板端路径:/boot/bt/bt_signed.bin

须知:

  1. 如烧写了包含“file.bin”的“diting-community-xts.fwpkg”镜像则忽略2。 板端上传bt_signed.bin、dsp_overlay.bin、dsp_main.bin请参考《DebugKits工具使用指南》中的“串口连接”章节“数据上传与下载”章节
  2. BurnTool工具烧写请参考《BurnTool工具使用指南》中的“图形/命令行”章节

运行

完成烧写后,可执行 fbb monitor --port COM3 --baud 750000 打开 UART2 日志串口(将 COM3 替换为实际端口)并重启单板。XTS用例自动运行标志:[HCtest Service] HCTest Framework inited.

图 1 启动日志图

启动日志图

当串口日志打印“All the test suites finished!”证明用例已跑完,如图2所示。

图 2 日志示例图-1

日志示例图-1

对应测试套结果如图3所示。

图 3 日志示例图-2

日志示例图-2

以UtilsFileReliTestSuite为例:UtilsFileReliTestSuite 8条用例 ,失败0条,忽略0条。

XTS acts validator测试指导

XTS 5.0引入JS应用测试套acts_validator认证,使用镜像为“diting-community-xts.fwpkg”。

获取validator测试套

  • 获取与固件版本匹配的 validator 测试应用

    XTS 源码、版本分支和使用说明以 OpenHarmony 官方 GitCode 仓库 openharmony/xts_acts 为准。下载或自行构建测试套件时,应选择与当前固件相同的 OpenHarmony Release 和轻量系统类型;不要混用不同版本的测试应用与设备镜像。

    图 1 官网下载位置示意图

    官网下载位置示意图

  • SDK中validator测试应用安装包备份

    说明:海思版本发布后OH官网用例可能更新,正式认证测试应从官网下载最新用例。

SDK 包文件:validator-xts.bin

安装validator测试套

  1. 在OH认证镜像开机XTS用例结束后,上传validator用例安装包“entry-default-signed.bin”到单板user目录下。

    例如:/user/js/XTS/entry-default-signed.bin

  2. 使用AT安装命令安装应用

    例如:AT+OHOS=OHOSFWK_BM_INSTALL,/user/js/XTS/entry-default-signed.bin

须知:

  1. 安装应用前,请保证单板系统时间正确,避免验签失败。
  2. 上传“entry-default-signed.bin”到板端,请参考《DebugKits工具使用指南》中的“串口连接”章节“数据上传与下载”章节

使用validator测试套

安装完成后点亮表盘,点击validator应用图标进入应用按照应用指引完成测试。

图 1 validator应用测试套表端显示图

validator应用测试套表端显示图

  1. 点击组件测试按照测试指引完成测试。

    图 2 validator应用首页面显示图

    validator应用首页面显示图

  2. 点击API测试按照测试指引完成测试。

    图 3 测试指导图

    测试指导图

  3. 回到主页面点击生成报告。

  4. 退出应用完成测试。
  5. 报告生成路径:/user/app/user/ace/data/com.examplemini.actsvalidator/summary_report.json

须知:

  1. 开机等待XTS自动化用例测试完毕后,再测试validator手工用例,避免用例互相影响导致失败。
  2. validator所有测试项都需要选择“pass”或“fail”结果,即测试项全部执行,才会生成validator测试报告。

XTS认证版本二次开发注意事项

最大访问文件数

由于不同产品文件数访问存在差异,已和OpenHarmony实验室沟通允许修改XTS(X Test Suite,应用兼容性测试套)用例最大值。请按具体设备开机后实际剩余可用文件数量修改XTS可用最大文件数。

  1. 计算规则

    XTS可用最大文件数=系统最大访问文件数-开机已打开文件数。

    例如:系统最大访问文件数是100,开机业务已占用2,则XTS可用最大文件数是98。

  2. 查看系统最大访问文件数

    • Nand单板:yaffs最大访问文件数

      源码:yaffscfg.h

      宏定义:#define YAFFSFS_N_HANDLES 100

    • eMMC单板:fatfs最大访问文件数

      源码:ffconf_porting.h

      宏定义:#define FF_FS_LOCK 100

  3. 调整XTS可用最大文件数,修改位置如下

    源码:utils_file_reli_test.c

    修改宏定义:#define MAX_NUM_OF_OPENED_FILES 98

如果不确定业务开机后访问的文件总数,可以使用以下方式验证:

方式一:通过文件系统接口void lsfd(void)查询。

方式二:通过XTS用例实测,修改XTS可用最大文件数后,编译执行XTS用例。如果MAX_NUM_OF_OPENED_FILES配置偏大,则会在testMoveFileAfterMaxFilesOpened循环中失败,如图1所示。

图 1 方式验证示例图

方式验证示例图

最大线程数

如果开发时创建线程失败,可能原因是设置的最大线程数不够。

修改源码:3322_xts.config

修改最大线程数位置:LOSCFG_BASE_CORE_TSK_LIMIT=64

KV使用数量

海思公版XTS版本默认关闭与认证测试无关的KV读写,避免影响kv_store、file等文件系统用例执行。

  1. 当使用UtilsSetEnv()或UtilsSetValue()对KV进行操作时,应采用XTS_SUPPORT宏隔离,防止与XTS认证无关的KV操作占用最大文件访问数。

    例如“/src/application/wearable/nativeapp/nativeui”路径示例代码如下:

    #ifndef XTS_SUPPORT
    UtilsSetValue("abc", "1");
    #endif
    
  2. 当使用UtilsGetValue()获取value时,应采用XTS_SUPPORT宏隔离,并为业务变量初始化提供缺省值。防止XTS版本关闭业务UtilsGetValue()后变量赋值错误。

支持PNG图片解码

XTS版本为了支持acts_validator用例,需要支持PNG图片解码。海思公版默认使能PNG解码,客户二次开发时请勿裁剪XTS版本PNG能力。

修改源码:3322_graphic_lite_config.h

修改位置:

ENABLE_JPEG_AND_PNG 1
CACHE_JPEG_AND_PNG 1

图 1 修改位置示例图

修改位置示例图

如果认证测试出现JPEG解码不兼容的问题,请尝试切换JPEG软解。

修改源码:graphic_hardware_config_wearable.h

修改位置:CAPABILITY_HW_JPEG_DECODE 0

图 2 修改位置示例图

修改位置示例图-0

BMS测试套应用预置

OHOS 5.0 XTS引入BundleMgrTest测试套,主要用于测试应用安装与卸载,需预置应用在板端“/user”下。

以下为预置应用的详情:

  • 应用名称:testdemo1.bin

    包名:com.example.testdemo1

    预置到板端路径及名称:/user/testdemo1.bin

  • 应用名称:testdemo2.bin

    包名:com.example.testdemo2

    预置到板端路径及名称:/user/testdemo2.bin

说明:

  1. 本章节提及到的应用皆为DevEco Studio 5.0 Release IDE编译出的应用,编译方式请参考《OpenHarmony JS应用开发用户指南》中的“IDE”章节
  2. 板端上传应用请参考《DebugKits工具使用指南》中的“串口连接”章节“数据上传与下载”章节

重置HUKS工作密钥

OpenHarmony认证包含HUKS测试,工作密钥经加密后默认保存在“/user/app/user/maindata”中。烧写新XTS版本前确认删除旧密钥,避免新镜像HUKS使用错误的工作密钥导致XTS用例失败。操作步骤如下:

  1. 烧写XTS镜像前,检查文件系统中是否有“/user/app/user/maindata”目录。如果已经存在该目录,则手动删除或格式化擦除FS。
  2. 烧写OpenHarmony XTS镜像。
  3. 开机执行XTS用例,检查HUKS用例结果是否全部通过。