1094332d3Sopenharmony_ci- [HDF Audio系统测试用例使用指南](#hdf-audio系统测试用例使用指南) 2094332d3Sopenharmony_ci - [1. 简介](#1-简介) 3094332d3Sopenharmony_ci - [1.1 目录结构](#11-目录结构) 4094332d3Sopenharmony_ci - [1.2 特殊用例说明](#12-特殊用例说明) 5094332d3Sopenharmony_ci - [1.2.1 硬件耦合相关测试用例](#121-硬件耦合相关测试用例) 6094332d3Sopenharmony_ci - [1.2.1.1 UHDF层非通用(硬件耦合)测试用例](#1211-uhdf层非通用硬件耦合测试用例) 7094332d3Sopenharmony_ci - [1.2.1.2 LIB层非通用(硬件耦合)测试用例](#1212-lib层非通用硬件耦合测试用例) 8094332d3Sopenharmony_ci - [1.2.2 ALSA模式测试用例](#122-alsa模式测试用例) 9094332d3Sopenharmony_ci - [1.2.3 录音阈值上报测试用例](#123-录音阈值上报测试用例) 10094332d3Sopenharmony_ci - [2. 适用版本](#2-适用版本) 11094332d3Sopenharmony_ci - [3. 适用平台(已适配的SOC)](#3-适用平台已适配的soc) 12094332d3Sopenharmony_ci - [4. 使用方法](#4-使用方法) 13094332d3Sopenharmony_ci - [4.1 用例编译](#41-用例编译) 14094332d3Sopenharmony_ci - [4.2 测试套及资源文件推送](#42-测试套及资源文件推送) 15094332d3Sopenharmony_ci - [4.3 测试用例执行(手动执行)](#43-测试用例执行手动执行) 16094332d3Sopenharmony_ci 17094332d3Sopenharmony_ci## HDF Audio系统测试用例使用指南 18094332d3Sopenharmony_ci### 1. 简介 19094332d3Sopenharmony_ci 20094332d3Sopenharmony_ci本使用指南主要说明音频驱动模型对外接口测试用例,并根据测试内容划分不同目录。包含以下内容: 21094332d3Sopenharmony_ci 22094332d3Sopenharmony_ci- ADM对外接口测试用例 23094332d3Sopenharmony_ci- UHDF层接口测试用例 24094332d3Sopenharmony_ci- LIB层接口测试用例 25094332d3Sopenharmony_ci- 功能测试用例 26094332d3Sopenharmony_ci 27094332d3Sopenharmony_ci#### 1.1 目录结构 28094332d3Sopenharmony_ci 29094332d3Sopenharmony_ci 30094332d3Sopenharmony_ci测试用例路径:drivers/peripheral/audio/test/systemtest 31094332d3Sopenharmony_ci 32094332d3Sopenharmony_ci目录结构如下: 33094332d3Sopenharmony_ci 34094332d3Sopenharmony_ci```bash 35094332d3Sopenharmony_ci|-- common #测试用例公共函数 36094332d3Sopenharmony_ci| |-- adm_common #ADM层测试用例公共函数 37094332d3Sopenharmony_ci| |-- hdi_common #UHDF层测试用例公共函数 38094332d3Sopenharmony_ci| |-- hdi_service_common #IDL UHDF层测试用例公共函数 39094332d3Sopenharmony_ci| |-- lib_common #LIB层测试用例公共函数 40094332d3Sopenharmony_ci|-- audio_adapter #声卡测试用例 41094332d3Sopenharmony_ci| |-- audio_usb #USB声卡测试用例 42094332d3Sopenharmony_ci|-- audio_function #功能测试用例 43094332d3Sopenharmony_ci| |-- audio_loadadapter_report #加载声卡成功上报测试用例 44094332d3Sopenharmony_ci| |-- audio_multi_mic_spk #多mic、多speaker测试用例 45094332d3Sopenharmony_ci| |-- audio_pathroute #通路选择测试用例 46094332d3Sopenharmony_ci| |-- audio_server #hdi接口功能测试用例(播放、录音) 47094332d3Sopenharmony_ci| |-- audio_smartpa #外置声卡测试用例 48094332d3Sopenharmony_ci| |-- audio_threshold_report #阈值上报测试用例 49094332d3Sopenharmony_ci|-- adm #ADM层接口测试用例 50094332d3Sopenharmony_ci| |-- audio_adm_interface #adm对外接口测试用例 51094332d3Sopenharmony_ci|-- hdi #UHDF层接口测试用例 52094332d3Sopenharmony_ci| |-- common #hdi接口通用测试用例 53094332d3Sopenharmony_ci| | |-- adapter 54094332d3Sopenharmony_ci| | |-- capture 55094332d3Sopenharmony_ci| | |-- manager 56094332d3Sopenharmony_ci| | |-- render 57094332d3Sopenharmony_ci| |-- hardwaredependence #hdi接口非通用测试用例(硬件耦合) 58094332d3Sopenharmony_ci| | |-- capture 59094332d3Sopenharmony_ci| | |-- render 60094332d3Sopenharmony_ci| |-- hdiperformace #hdi接口时延测试用例 61094332d3Sopenharmony_ci| |-- hdireliability #hdi接口可靠性测试用例 62094332d3Sopenharmony_ci|-- hdi_service #UHDF层idl化接口测试用例 63094332d3Sopenharmony_ci| |-- common #idl化hdi接口通用测试用例 64094332d3Sopenharmony_ci| | |-- adapter 65094332d3Sopenharmony_ci| | |-- capture 66094332d3Sopenharmony_ci| | |-- manager 67094332d3Sopenharmony_ci| | |-- render 68094332d3Sopenharmony_ci| |-- hardwaredependence #idl化hdi接口非通用测试用例(硬件耦合) 69094332d3Sopenharmony_ci| | |-- capture 70094332d3Sopenharmony_ci| | |-- render 71094332d3Sopenharmony_ci| |-- hdiperformace #idl化hdi接口时延测试用例 72094332d3Sopenharmony_ci|-- supportlibs #LIB层接口测试用例(包含adm lib和alsa lib接口测试用例) 73094332d3Sopenharmony_ci |-- common #lib接口通用测试用例 74094332d3Sopenharmony_ci | |-- capture 75094332d3Sopenharmony_ci | |-- render 76094332d3Sopenharmony_ci |-- hardwaredependence #lib接口非通用测试用例(硬件耦合) 77094332d3Sopenharmony_ci |-- capture 78094332d3Sopenharmony_ci |-- render 79094332d3Sopenharmony_ci``` 80094332d3Sopenharmony_ci 81094332d3Sopenharmony_ci#### 1.2 特殊用例说明 82094332d3Sopenharmony_ci##### 1.2.1 硬件耦合相关测试用例 83094332d3Sopenharmony_ci由于音频驱动模型对外接口的部分接口参数与硬件能力有耦合,此类用例与硬件耦合,导致无法作为通用用例。在移植过程中及门禁用例提取过程中,需要特别关注。 84094332d3Sopenharmony_ci 85094332d3Sopenharmony_ci###### 1.2.1.1 UHDF层非通用(硬件耦合)测试用例 86094332d3Sopenharmony_ciUHDF层存在硬件耦合接口,如:SetSampleAttributes、SetChannelMode等。 87094332d3Sopenharmony_ci1. SetSampleAttributes接口测试用例中设置参数时会设置不同的“位宽、采样率、声道数”等与硬件相关的参数。 88094332d3Sopenharmony_ci2. SetChannelMode 接口测试用例中设置声道模式时会设置不同的模式,声道模式的支持与硬件相关。 89094332d3Sopenharmony_ci 90094332d3Sopenharmony_ci硬件不支持,接口会返回失败;硬件支持,接口返回成功。因此不同的开发板会出现不同的结果,在移植测试用例的过程中需要根据硬件的情况进行适配。 91094332d3Sopenharmony_ci 92094332d3Sopenharmony_ci<table width="100%" border="0"> 93094332d3Sopenharmony_ci<caption>非通用测试用例接口列表</caption> 94094332d3Sopenharmony_ci <tr> 95094332d3Sopenharmony_ci <th width="20%" align="center">所属类</th> 96094332d3Sopenharmony_ci <th align="center" width="30%">接口名</th> 97094332d3Sopenharmony_ci <th width="50%" align="center">说明</th> 98094332d3Sopenharmony_ci </tr> 99094332d3Sopenharmony_ci <tr> 100094332d3Sopenharmony_ci <td width="20%" rowspan ="7">capture</td> 101094332d3Sopenharmony_ci <td width="30%">SetSampleAttributes</td> 102094332d3Sopenharmony_ci <td width="50%">遍历设置不同的硬件参数</td> 103094332d3Sopenharmony_ci </tr> 104094332d3Sopenharmony_ci <tr> 105094332d3Sopenharmony_ci <td>GetSampleAttributes</td> 106094332d3Sopenharmony_ci <td>获取设置的硬件参数</td> 107094332d3Sopenharmony_ci </tr> 108094332d3Sopenharmony_ci <tr> 109094332d3Sopenharmony_ci <td>GetFrameSize</td> 110094332d3Sopenharmony_ci <td>与SetSampleAttributes组合测试</td> 111094332d3Sopenharmony_ci </tr> 112094332d3Sopenharmony_ci <tr> 113094332d3Sopenharmony_ci <td>GetFrameCount</td> 114094332d3Sopenharmony_ci <td>与SetSampleAttributes组合测试</td> 115094332d3Sopenharmony_ci </tr> 116094332d3Sopenharmony_ci <tr> 117094332d3Sopenharmony_ci <td>GetMmapPosition</td> 118094332d3Sopenharmony_ci <td>与SetSampleAttributes组合测试</td> 119094332d3Sopenharmony_ci </tr> 120094332d3Sopenharmony_ci <tr> 121094332d3Sopenharmony_ci <td>GetCurrentChannelId</td> 122094332d3Sopenharmony_ci <td>与SetSampleAttributes组合测试</td> 123094332d3Sopenharmony_ci </tr> 124094332d3Sopenharmony_ci <tr> 125094332d3Sopenharmony_ci <td>GetCapturePosition</td> 126094332d3Sopenharmony_ci <td>与SetSampleAttributes组合测试</td> 127094332d3Sopenharmony_ci </tr> 128094332d3Sopenharmony_ci <tr> 129094332d3Sopenharmony_ci <td width="20%" rowspan ="9">render</td> 130094332d3Sopenharmony_ci <td width="30%">SetSampleAttributes</td> 131094332d3Sopenharmony_ci <td width="50%">遍历设置不同的硬件参数</td> 132094332d3Sopenharmony_ci </tr> 133094332d3Sopenharmony_ci <tr> 134094332d3Sopenharmony_ci <td>GetSampleAttributes</td> 135094332d3Sopenharmony_ci <td>获取设置的硬件参数</td> 136094332d3Sopenharmony_ci </tr> 137094332d3Sopenharmony_ci <tr> 138094332d3Sopenharmony_ci <td>SetChannelMode</td> 139094332d3Sopenharmony_ci <td>遍历设置不同的声道模式</td> 140094332d3Sopenharmony_ci </tr> 141094332d3Sopenharmony_ci <tr> 142094332d3Sopenharmony_ci <td>GetChannelMode</td> 143094332d3Sopenharmony_ci <td>获取设置的声道模式</td> 144094332d3Sopenharmony_ci </tr> 145094332d3Sopenharmony_ci <tr> 146094332d3Sopenharmony_ci <td>GetFrameSize</td> 147094332d3Sopenharmony_ci <td>与SetSampleAttributes组合测试</td> 148094332d3Sopenharmony_ci </tr> 149094332d3Sopenharmony_ci <tr> 150094332d3Sopenharmony_ci <td>GetFrameCount</td> 151094332d3Sopenharmony_ci <td>与SetSampleAttributes组合测试</td> 152094332d3Sopenharmony_ci </tr> 153094332d3Sopenharmony_ci <tr> 154094332d3Sopenharmony_ci <td>GetMmapPosition</td> 155094332d3Sopenharmony_ci <td>与SetSampleAttributes组合测试</td> 156094332d3Sopenharmony_ci </tr> 157094332d3Sopenharmony_ci <tr> 158094332d3Sopenharmony_ci <td>GetCurrentChannelId</td> 159094332d3Sopenharmony_ci <td>与SetSampleAttributes组合测试</td> 160094332d3Sopenharmony_ci </tr> 161094332d3Sopenharmony_ci <tr> 162094332d3Sopenharmony_ci <td>GetRenderPosition</td> 163094332d3Sopenharmony_ci <td>与SetSampleAttributes组合测试</td> 164094332d3Sopenharmony_ci </tr> 165094332d3Sopenharmony_ci<table> 166094332d3Sopenharmony_ci 167094332d3Sopenharmony_ci###### 1.2.1.2 LIB层非通用(硬件耦合)测试用例 168094332d3Sopenharmony_ciLIB层存在硬件耦合接口:为音量,增益,场景切换相关接口。 169094332d3Sopenharmony_ci1. 调用lib接口获取硬件的音量范围、增益范围,并校验。 170094332d3Sopenharmony_ci2. 调用lib接口设置不同的音量或增益,超出范围便会失败。 171094332d3Sopenharmony_ci3. 调用lib接口设置不同的通路进行场景切换。 172094332d3Sopenharmony_ci 173094332d3Sopenharmony_ci以上接口调用返回结果均与硬件相关,不同硬件默认的范围、通路不同,测试用例需根据硬件适配。 174094332d3Sopenharmony_ci<table width="100%" border="0"> 175094332d3Sopenharmony_ci<caption>非通用测试用例接口列表</caption> 176094332d3Sopenharmony_ci <tr> 177094332d3Sopenharmony_ci <th width="20%" align="center">所属类</th> 178094332d3Sopenharmony_ci <th align="center" width="50%">命令码</th> 179094332d3Sopenharmony_ci <th width="30%" align="center">说明</th> 180094332d3Sopenharmony_ci </tr> 181094332d3Sopenharmony_ci <tr> 182094332d3Sopenharmony_ci <td width="20%" rowspan ="7">capture</td> 183094332d3Sopenharmony_ci <td width="50%"> AUDIODRV_CTL_IOCTL_GAINTHRESHOLD_CAPTURE</td> 184094332d3Sopenharmony_ci <td width="30%">获取增益阈值</td> 185094332d3Sopenharmony_ci </tr> 186094332d3Sopenharmony_ci <tr> 187094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_GAIN_WRITE_CAPTURE</td> 188094332d3Sopenharmony_ci <td>设置增益</td> 189094332d3Sopenharmony_ci </tr> 190094332d3Sopenharmony_ci <tr> 191094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_GAIN_READ_CAPTURE</td> 192094332d3Sopenharmony_ci <td>获取增益</td> 193094332d3Sopenharmony_ci </tr> 194094332d3Sopenharmony_ci <tr> 195094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_SCENESELECT_CAPTURE</td> 196094332d3Sopenharmony_ci <td>场景切换</td> 197094332d3Sopenharmony_ci </tr> 198094332d3Sopenharmony_ci <tr> 199094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_VOL_THRESHOLD_CAPTURE</td> 200094332d3Sopenharmony_ci <td>获取音量阈值</td> 201094332d3Sopenharmony_ci </tr> 202094332d3Sopenharmony_ci <tr> 203094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_ELEM_WRITE_CAPTURE</td> 204094332d3Sopenharmony_ci <td>设置音量</td> 205094332d3Sopenharmony_ci </tr> 206094332d3Sopenharmony_ci <tr> 207094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_ELEM_READ_CAPTURE</td> 208094332d3Sopenharmony_ci <td>获取音量</td> 209094332d3Sopenharmony_ci </tr> 210094332d3Sopenharmony_ci <tr> 211094332d3Sopenharmony_ci <td width="20%" rowspan ="7">render</td> 212094332d3Sopenharmony_ci <td width="50%">AUDIODRV_CTL_IOCTL_GAINTHRESHOLD</td> 213094332d3Sopenharmony_ci <td width="30%">获取增益阈值</td> 214094332d3Sopenharmony_ci </tr> 215094332d3Sopenharmony_ci <tr> 216094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_GAIN_WRITE</td> 217094332d3Sopenharmony_ci <td>设置增益</td> 218094332d3Sopenharmony_ci </tr> 219094332d3Sopenharmony_ci <tr> 220094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_GAIN_WRITE</td> 221094332d3Sopenharmony_ci <td>获取增益</td> 222094332d3Sopenharmony_ci </tr> 223094332d3Sopenharmony_ci <tr> 224094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_SCENESELECT</td> 225094332d3Sopenharmony_ci <td>场景切换</td> 226094332d3Sopenharmony_ci </tr> 227094332d3Sopenharmony_ci <tr> 228094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_VOL_THRESHOLD</td> 229094332d3Sopenharmony_ci <td>获取音量阈值</td> 230094332d3Sopenharmony_ci </tr> 231094332d3Sopenharmony_ci <tr> 232094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_ELEM_WRITE</td> 233094332d3Sopenharmony_ci <td>设置音量</td> 234094332d3Sopenharmony_ci </tr> 235094332d3Sopenharmony_ci <tr> 236094332d3Sopenharmony_ci <td>AUDIODRV_CTL_IOCTL_ELEM_READ</td> 237094332d3Sopenharmony_ci <td>获取音量</td> 238094332d3Sopenharmony_ci </tr> 239094332d3Sopenharmony_ci<table> 240094332d3Sopenharmony_ci 241094332d3Sopenharmony_ci##### 1.2.2 ALSA模式测试用例 242094332d3Sopenharmony_ci音频驱动模型为支持南向生态厂商快速接入鸿蒙、支持快速产品化而提供的“ALSA兼容方案”,采用插件化的适配器模式通过alsa-lib对接ALSA。当采用“ALSA兼容方案”时,需编译ALSA模式测试用例。测试用例分为两部分: 243094332d3Sopenharmony_ci 244094332d3Sopenharmony_ci1. LIB层接口测试用例 245094332d3Sopenharmony_ci</br>ALSA模式LIB层测试用例为alsa-lib接口测试用例,存放在supportlis/common目录下,与adm_interface_lib测试用例同一目录下的不同测试套文件,在编译文件内配置选择编译目标。 246094332d3Sopenharmony_ci ````bash 247094332d3Sopenharmony_ci ohos_systemtest("hdf_audio_lib_capture_test") { 248094332d3Sopenharmony_ci module_out_path = module_output_path 249094332d3Sopenharmony_ci sources = [ 250094332d3Sopenharmony_ci "../../../common/hdi_common/src/audio_hdi_common.cpp", 251094332d3Sopenharmony_ci "../../../common/lib_common/src/audio_lib_common.cpp", 252094332d3Sopenharmony_ci ] 253094332d3Sopenharmony_ci #drivers_peripheral_audio_feature_alsa_lib 254094332d3Sopenharmony_ci if(defined(drivers_peripheral_audio_feature_alsa_lib) && drivers_peripheral_audio_feature_alsa_lib == true) { 255094332d3Sopenharmony_ci sources += ["src/audio_alsa_libcapture_test.cpp"] 256094332d3Sopenharmony_ci }else { 257094332d3Sopenharmony_ci sources += ["src/audio_libcapture_test.cpp"] 258094332d3Sopenharmony_ci } 259094332d3Sopenharmony_ci ```` 260094332d3Sopenharmony_ci2. UHDF层接口测试用例 261094332d3Sopenharmony_ci</br>ALSA模式UHDF层测试用例与ADM模式共用一套测试用例,ALSA模式部分hdi接口未适配,在测试代码中使用宏区分。 262094332d3Sopenharmony_ci<table width="100%" border="0"> 263094332d3Sopenharmony_ci<caption>ALSA未适配hdi接口列表</caption> 264094332d3Sopenharmony_ci <thead> 265094332d3Sopenharmony_ci <tr> 266094332d3Sopenharmony_ci <th width="20%" align="center">所属类</th> 267094332d3Sopenharmony_ci <th width="40%" align="center">接口</th> 268094332d3Sopenharmony_ci <th width="40%" align="center">说明</th> 269094332d3Sopenharmony_ci </tr> 270094332d3Sopenharmony_ci </thead> 271094332d3Sopenharmony_ci <tbody> 272094332d3Sopenharmony_ci <tr> 273094332d3Sopenharmony_ci <td width="20%" rowspan ="6">capture</td> 274094332d3Sopenharmony_ci <td width="40%">Flush</td> 275094332d3Sopenharmony_ci <td width="40%">刷新</td> 276094332d3Sopenharmony_ci </tr> 277094332d3Sopenharmony_ci <tr> 278094332d3Sopenharmony_ci <td>CheckSceneCapability</td> 279094332d3Sopenharmony_ci <td>查询场景支持能力</td> 280094332d3Sopenharmony_ci </tr> 281094332d3Sopenharmony_ci <tr> 282094332d3Sopenharmony_ci <td>SelectScene</td> 283094332d3Sopenharmony_ci <td>选择场景</td> 284094332d3Sopenharmony_ci </tr> 285094332d3Sopenharmony_ci <tr> 286094332d3Sopenharmony_ci <td>GetGainThreshold</td> 287094332d3Sopenharmony_ci <td>获取增益阈值</td> 288094332d3Sopenharmony_ci </tr> 289094332d3Sopenharmony_ci <tr> 290094332d3Sopenharmony_ci <td>GetGain</td> 291094332d3Sopenharmony_ci <td>获取增益</td> 292094332d3Sopenharmony_ci </tr> 293094332d3Sopenharmony_ci <tr> 294094332d3Sopenharmony_ci <td>SetGain</td> 295094332d3Sopenharmony_ci <td>设置增益</td> 296094332d3Sopenharmony_ci </tr> 297094332d3Sopenharmony_ci <tr> 298094332d3Sopenharmony_ci <td width="20%" rowspan ="8">render</td> 299094332d3Sopenharmony_ci <td width="40%">SetRenderSpeed</td> 300094332d3Sopenharmony_ci <td width="40%">设置播放速度</td> 301094332d3Sopenharmony_ci </tr> 302094332d3Sopenharmony_ci <tr> 303094332d3Sopenharmony_ci <td>GetRenderSpeed</td> 304094332d3Sopenharmony_ci <td>获取播放速度</td> 305094332d3Sopenharmony_ci </tr> 306094332d3Sopenharmony_ci <tr> 307094332d3Sopenharmony_ci <td>SetChannelMode</td> 308094332d3Sopenharmony_ci <td>设置声道模式</td> 309094332d3Sopenharmony_ci </tr> 310094332d3Sopenharmony_ci <tr> 311094332d3Sopenharmony_ci <td>GetChannelMode</td> 312094332d3Sopenharmony_ci <td>获取声道模式</td> 313094332d3Sopenharmony_ci </tr> 314094332d3Sopenharmony_ci <tr> 315094332d3Sopenharmony_ci <td>Flush</td> 316094332d3Sopenharmony_ci <td>刷新</td> 317094332d3Sopenharmony_ci </tr> 318094332d3Sopenharmony_ci <tr> 319094332d3Sopenharmony_ci <td>GetGainThreshold</td> 320094332d3Sopenharmony_ci <td>获取增益阈值</td> 321094332d3Sopenharmony_ci </tr> 322094332d3Sopenharmony_ci <tr> 323094332d3Sopenharmony_ci <td>GetGain</td> 324094332d3Sopenharmony_ci <td>获取增益</td> 325094332d3Sopenharmony_ci </tr> 326094332d3Sopenharmony_ci <tr> 327094332d3Sopenharmony_ci <td>SetGain</td> 328094332d3Sopenharmony_ci <td>设置增益</td> 329094332d3Sopenharmony_ci </tr> 330094332d3Sopenharmony_ci </tbody> 331094332d3Sopenharmony_ci<table> 332094332d3Sopenharmony_ci 333094332d3Sopenharmony_ci ````bash 334094332d3Sopenharmony_ci #gn内添加编译宏ALSA_LIB_MODE用于区分测试用例 335094332d3Sopenharmony_ci if(defined(drivers_peripheral_audio_feature_alsa_lib) && drivers_peripheral_audio_feature_alsa_lib == true) { 336094332d3Sopenharmony_ci defines += [ "ALSA_LIB_MODE" ] 337094332d3Sopenharmony_ci } 338094332d3Sopenharmony_ci #测试用例代码内使用示例 339094332d3Sopenharmony_ci ret = render->attr.SetSampleAttributes(render, &attrs2); 340094332d3Sopenharmony_ci#ifdef ALSA_LIB_MODE 341094332d3Sopenharmony_ci EXPECT_EQ(AUDIO_HAL_SUCCESS, ret); 342094332d3Sopenharmony_ci#else 343094332d3Sopenharmony_ci EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, ret); 344094332d3Sopenharmony_ci#endif 345094332d3Sopenharmony_ci ```` 346094332d3Sopenharmony_ci<b>注:编译ALSA测试用例是需要设置ALSA编译选项,由drivers_peripheral_audio_feature_alsa_lib编译选项控制,当"drivers_peripheral_audio_feature_alsa_lib = true"表示编译ALSA模式测试用例,编译配置文件路径为./drivers/peripheral/audio/audio.gni文件内。</b> 347094332d3Sopenharmony_ci##### 1.2.3 录音阈值上报测试用例 348094332d3Sopenharmony_ci 349094332d3Sopenharmony_ci 码云上音频驱动模型默认不编译录音阈值上报功能代码,因此该功能对应的测试套(hdf_audio_threshold_report_test)默认不编译,如需编译需要手动修改gn文件,去掉“#”字符注释。gn文件路径为./audio_function/BUILD.gn 350094332d3Sopenharmony_ci```bash 351094332d3Sopenharmony_cigroup("function") { 352094332d3Sopenharmony_ci if (!defined(ohos_lite)) { 353094332d3Sopenharmony_ci testonly = true 354094332d3Sopenharmony_ci } 355094332d3Sopenharmony_ci deps = [ "audio_server:hdf_audio_hdi_server_function_test" ] 356094332d3Sopenharmony_ci if (defined(ohos_lite)) { 357094332d3Sopenharmony_ci deps += [ 358094332d3Sopenharmony_ci "audio_pathroute:hdf_audio_hdi_path_route_test", 359094332d3Sopenharmony_ci "audio_smartpa:hdf_audio_smartpa_test", 360094332d3Sopenharmony_ci ] 361094332d3Sopenharmony_ci } else { 362094332d3Sopenharmony_ci #deps += [ "audio_threshold_report:hdf_audio_threshold_report_test" ] #录音阈值上报测试套 363094332d3Sopenharmony_ci .... 364094332d3Sopenharmony_ci``` 365094332d3Sopenharmony_ci### 2. 适用版本 366094332d3Sopenharmony_ci当前测试用例适用码云mater主仓音频驱动模型版本。 367094332d3Sopenharmony_ci 368094332d3Sopenharmony_ci### 3. 适用平台(已适配的SOC) 369094332d3Sopenharmony_ci 目前已适配开发板如下: 370094332d3Sopenharmony_ci1. rk3568 371094332d3Sopenharmony_ci2. Hi3516DV300 372094332d3Sopenharmony_ci 373094332d3Sopenharmony_ci### 4. 使用方法 374094332d3Sopenharmony_ci#### 4.1 用例编译 375094332d3Sopenharmony_ci注:以下目录均以Openharmony代码根目录为根目录 376094332d3Sopenharmony_ci 377094332d3Sopenharmony_ci1. 测试用例模式修改 378094332d3Sopenharmony_ci</br>音频驱动模型UHDF层支持binder模式和passthrough模式,因此针对不同的模式需要编译对应的测试用例,测试用的模式通过修改编译选项控制,编译配置文件路径为<b>“/drivers/peripheral/audio/audio.gni”</b>。编译选项为<b>“true”</b>表示编译;为<b>“false”</b>表示不编译,两种模式测试用例一次只能编译其中一种。 379094332d3Sopenharmony_ci 380094332d3Sopenharmony_ci<table width="100%" border="0"> 381094332d3Sopenharmony_ci<caption></caption> 382094332d3Sopenharmony_ci <tr> 383094332d3Sopenharmony_ci <th width="25%" align="center">编译选项</th> 384094332d3Sopenharmony_ci <th width="25%" align="center">含义</th> 385094332d3Sopenharmony_ci <th width="25%" align="center">值</th> 386094332d3Sopenharmony_ci <th width="25%" align="center">备注</th> 387094332d3Sopenharmony_ci </tr> 388094332d3Sopenharmony_ci <tr> 389094332d3Sopenharmony_ci <td width="25%">enable_audio_adm_so</td> 390094332d3Sopenharmony_ci <td width="25%">passthrough模式</td> 391094332d3Sopenharmony_ci <td width="25%">true/false</td> 392094332d3Sopenharmony_ci <td width="25%">默认不编译(false)</td> 393094332d3Sopenharmony_ci </tr> 394094332d3Sopenharmony_ci <tr> 395094332d3Sopenharmony_ci <td>enable_audio_adm_service</td> 396094332d3Sopenharmony_ci <td>binder模式</td> 397094332d3Sopenharmony_ci <td>true/false</td> 398094332d3Sopenharmony_ci <td>默认编译(true)</td> 399094332d3Sopenharmony_ci </tr> 400094332d3Sopenharmony_ci</table> 401094332d3Sopenharmony_ci 402094332d3Sopenharmony_ci2. 测试用例编译命令 403094332d3Sopenharmony_ci在根目录下输入命令: 404094332d3Sopenharmony_ci ```bash 405094332d3Sopenharmony_ci ./build.sh --product-name XXX --build-target drivers/peripheral/audio/test/systemtest 406094332d3Sopenharmony_ci ``` 407094332d3Sopenharmony_ci“XXX”为产品名,如编译rk3568开发板测试用例,输入如下命令: 408094332d3Sopenharmony_ci```bash 409094332d3Sopenharmony_ci./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/test/systemtest 410094332d3Sopenharmony_ci``` 411094332d3Sopenharmony_ci3. 测试用例输出目录 412094332d3Sopenharmony_ci 413094332d3Sopenharmony_ci以rk3568为例,输出目录为: 414094332d3Sopenharmony_ci```bash 415094332d3Sopenharmony_ci./out/rk3568/tests/systemtest/drivers_peripheral_audio/audio 416094332d3Sopenharmony_ci``` 417094332d3Sopenharmony_ci#### 4.2 测试套及资源文件推送(手动执行) 418094332d3Sopenharmony_ci1. 测试用例执行依赖文件推送 419094332d3Sopenharmony_ci 420094332d3Sopenharmony_ciRender相关测试用例执行需要推送audiorendertest.wav和lowlatencyrendertest.wav两个音频文件,音频文件路径为drivers/peripheral/audio/test/resource/。推动至开发板”/data/test”目录下,具体哪些用例需要推送音频文件可查看drivers/peripheral/audio/test/resource/ohos_test.xml,在cmd窗口输入命令: 421094332d3Sopenharmony_ci```bash 422094332d3Sopenharmony_cihdc shll mkdir /data/test 423094332d3Sopenharmony_cihdc file send XXX[本地路径]/audiorendertest.wav /data/test 424094332d3Sopenharmony_cihdc file send XXX[本地路径]/lowlatencyrendertest.wav /data/test 425094332d3Sopenharmony_ci``` 426094332d3Sopenharmony_ci 427094332d3Sopenharmony_ci2. 测试用例推送 428094332d3Sopenharmony_ci 429094332d3Sopenharmony_ci测试用例使用hdc推送至开发板,在cmd窗口输入命令: 430094332d3Sopenharmony_ci```bash 431094332d3Sopenharmony_cihdc file send XXX[本地路径]/hdf_audio_hdi_manager_test /data/test 432094332d3Sopenharmony_ci``` 433094332d3Sopenharmony_ci 434094332d3Sopenharmony_ci#### 4.3 测试用例执行(手动执行) 435094332d3Sopenharmony_ci 436094332d3Sopenharmony_ci1. 进入单板 437094332d3Sopenharmony_ci通过hdc进入开发板,在cmd窗口输入命令 438094332d3Sopenharmony_ci ```bash 439094332d3Sopenharmony_ci hdc shell 440094332d3Sopenharmony_ci ``` 441094332d3Sopenharmony_ci 442094332d3Sopenharmony_ci2. 修改测试用例权限及执行 443094332d3Sopenharmony_ci进入/data/test目录,输入命令 444094332d3Sopenharmony_ci```bash 445094332d3Sopenharmony_cicd /data/test #进入data目录 446094332d3Sopenharmony_cichmod +x “测试套名称" #更改测试套权限 447094332d3Sopenharmony_ci./测试套 #执行测试套 448094332d3Sopenharmony_ci``` 449094332d3Sopenharmony_ci测试用例执行示例 450094332d3Sopenharmony_ci````bash 451094332d3Sopenharmony_ci# chmod +x hdf_audio_hdi_manager_test 452094332d3Sopenharmony_ci# ./hdf_audio_hdi_manager_test 453094332d3Sopenharmony_ciRunning main() from gmock_main.cc 454094332d3Sopenharmony_ci[==========] Running 4 tests from 1 test case. 455094332d3Sopenharmony_ci[----------] Global test environment set-up. 456094332d3Sopenharmony_ci[----------] 4 tests from AudioHdiManagerTest 457094332d3Sopenharmony_ci[ RUN ] AudioHdiManagerTest.SUB_Audio_HDI_ReleaseAudioManagerObject_0001 458094332d3Sopenharmony_ci[ OK ] AudioHdiManagerTest.SUB_Audio_HDI_ReleaseAudioManagerObject_0001 (1 ms) 459094332d3Sopenharmony_ci[ RUN ] AudioHdiManagerTest.SUB_Audio_HDI_ReleaseAudioManagerObject_0002 460094332d3Sopenharmony_ci[ OK ] AudioHdiManagerTest.SUB_Audio_HDI_ReleaseAudioManagerObject_0002 (0 ms) 461094332d3Sopenharmony_ci[ RUN ] AudioHdiManagerTest.SUB_Audio_HDI_ReleaseAudioManagerObject_0003 462094332d3Sopenharmony_ci[ OK ] AudioHdiManagerTest.SUB_Audio_HDI_ReleaseAudioManagerObject_0003 (0 ms) 463094332d3Sopenharmony_ci[ RUN ] AudioHdiManagerTest.SUB_Audio_HDI_ReleaseAudioManagerObject_0004 464094332d3Sopenharmony_ci[ OK ] AudioHdiManagerTest.SUB_Audio_HDI_ReleaseAudioManagerObject_0004 (1 ms) 465094332d3Sopenharmony_ci[----------] 4 tests from AudioHdiManagerTest (2 ms total) 466094332d3Sopenharmony_ci 467094332d3Sopenharmony_ci[----------] Global test environment tear-down 468094332d3Sopenharmony_ciGtest xml output finished 469094332d3Sopenharmony_ci[==========] 4 tests from 1 test case ran. (4 ms total) 470094332d3Sopenharmony_ci[ PASSED ] 4 tests. 471094332d3Sopenharmony_ci````