• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gmock/gmock.h>
17 #include <gtest/gtest.h>
18 #include "audio_common_test.h"
19 
20 using namespace std;
21 using namespace comfun;
22 using namespace testing::ext;
23 namespace {
24 class AudioAdapterTest : public testing::Test {
25 public:
26     struct AudioManager *managerFuncs = nullptr;
27     struct AudioAdapterDescriptor *descs = nullptr;
28     struct AudioAdapterDescriptor *desc = nullptr;
29     struct AudioAdapter *adapter = nullptr;
30     virtual void SetUp();
31     virtual void TearDown();
32 };
33 
SetUp()34 void AudioAdapterTest::SetUp()
35 {
36     managerFuncs = GetAudioManagerFuncs();
37     ASSERT_NE(managerFuncs, nullptr);
38     int32_t size = 0;
39     ASSERT_EQ(HDF_SUCCESS, managerFuncs->GetAllAdapters(managerFuncs, &descs, &size));
40     desc = &descs[0];
41     ASSERT_EQ(HDF_SUCCESS, managerFuncs->LoadAdapter(managerFuncs, desc, &adapter));
42 }
43 
TearDown()44 void AudioAdapterTest::TearDown()
45 {
46     ASSERT_NE(managerFuncs, nullptr);
47     managerFuncs->UnloadAdapter(managerFuncs, adapter);
48     adapter = nullptr;
49 }
50 
51 HWTEST_F(AudioAdapterTest, GetAudioRenderFuncWhenHwRenderIsNull, TestSize.Level1)
52 {
53     struct AudioHwRender *hwRender = nullptr;
54     EXPECT_EQ(HDF_FAILURE, GetAudioRenderFunc(hwRender));
55 }
56 
57 HWTEST_F(AudioAdapterTest, GetAudioRenderFuncWhenParamIsValid, TestSize.Level1)
58 {
59     struct AudioHwRender hwRender;
60     EXPECT_EQ(HDF_SUCCESS, GetAudioRenderFunc(&hwRender));
61 }
62 
63 HWTEST_F(AudioAdapterTest, CheckParaDescWhenDescIsNull, TestSize.Level1)
64 {
65     const struct AudioDeviceDescriptor *desc = nullptr;
66     const char *type = "Render";
67     EXPECT_EQ(HDF_FAILURE, CheckParaDesc(desc, type));
68 }
69 
70 HWTEST_F(AudioAdapterTest, CheckParaDescWhenTypeIsNull, TestSize.Level1)
71 {
72     struct AudioDeviceDescriptor desc;
73     const char *type = nullptr;
74     EXPECT_EQ(HDF_FAILURE, CheckParaDesc(&desc, type));
75 }
76 
77 HWTEST_F(AudioAdapterTest, CheckParaDescWhenPortIdLessThanZero, TestSize.Level1)
78 {
79     struct AudioDeviceDescriptor desc;
80     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
81     const char *type = "Render";
82     desc.portId = AUDIO_HAL_ERR_NOT_SUPPORT;
83     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, CheckParaDesc(&desc, type));
84 }
85 
86 HWTEST_F(AudioAdapterTest, CheckParaDescWhenPinsIsPinNone, TestSize.Level1)
87 {
88     struct AudioDeviceDescriptor desc;
89     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
90     const char *type = "Render";
91     desc.pins = PIN_NONE;
92     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, CheckParaDesc(&desc, type));
93 }
94 
95 HWTEST_F(AudioAdapterTest, CheckParaDescWhenTypeIsError, TestSize.Level1)
96 {
97     struct AudioDeviceDescriptor desc;
98     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
99     const char *type = "123";
100     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, CheckParaDesc(&desc, type));
101 }
102 
103 HWTEST_F(AudioAdapterTest, CheckParaDescWhenParamIsValid, TestSize.Level1)
104 {
105     struct AudioDeviceDescriptor desc;
106     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
107     const char *type = "Render";
108     EXPECT_EQ(HDF_SUCCESS, CheckParaDesc(&desc, type));
109 }
110 
111 HWTEST_F(AudioAdapterTest, CheckParaAttrWhenAttrsIsNull, TestSize.Level1)
112 {
113     const struct AudioSampleAttributes *attrs = nullptr;
114     EXPECT_EQ(HDF_FAILURE, CheckParaAttr(attrs));
115 }
116 
117 HWTEST_F(AudioAdapterTest, CheckParaAttrWhenPeriodLessThanZero, TestSize.Level1)
118 {
119     struct AudioSampleAttributes attrs;
120     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
121     attrs.period = AUDIO_HAL_ERR_NOT_SUPPORT;
122     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, CheckParaAttr(&attrs));
123 }
124 
125 HWTEST_F(AudioAdapterTest, CheckParaAttrWhenTypeIsNotSupport, TestSize.Level1)
126 {
127     struct AudioSampleAttributes attrs;
128     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
129     attrs.type = (enum AudioCategory)AUDIO_HAL_ERR_NOT_SUPPORT;
130     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, CheckParaAttr(&attrs));
131 }
132 
133 HWTEST_F(AudioAdapterTest, CheckParaAttrWhenFormatIsNotSupport, TestSize.Level1)
134 {
135     struct AudioSampleAttributes attrs;
136     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
137     attrs.format = AUDIO_FORMAT_G726;
138     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, CheckParaAttr(&attrs));
139 }
140 
141 HWTEST_F(AudioAdapterTest, CheckParaAttrWhenParamIsValid, TestSize.Level1)
142 {
143     struct AudioSampleAttributes attrs;
144     EXPECT_EQ(HDF_SUCCESS,  InitAttrs(attrs));
145     EXPECT_EQ(HDF_SUCCESS, CheckParaAttr(&attrs));
146 }
147 
148 HWTEST_F(AudioAdapterTest, AttrFormatToBitWhenAttrsIsNull, TestSize.Level1)
149 {
150     const struct AudioSampleAttributes *attrs = nullptr;
151     int32_t format = -1;
152     EXPECT_EQ(HDF_FAILURE, AttrFormatToBit(attrs, &format));
153 }
154 
155 HWTEST_F(AudioAdapterTest, AttrFormatToBitWhenFormatIsNull, TestSize.Level1)
156 {
157     struct AudioSampleAttributes attrs;
158     int32_t *format = nullptr;
159     EXPECT_EQ(HDF_FAILURE, AttrFormatToBit(&attrs, format));
160 }
161 
162 HWTEST_F(AudioAdapterTest, AttrFormatToBitWhenAttrsIsNotSupport, TestSize.Level1)
163 {
164     struct AudioSampleAttributes attrs;
165     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
166     attrs.format = AUDIO_FORMAT_AAC_MAIN;
167     int32_t format = -1;
168     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, AttrFormatToBit(&attrs, &format));
169 }
170 
171 HWTEST_F(AudioAdapterTest, AttrFormatToBitWhenParamIsValid, TestSize.Level1)
172 {
173     struct AudioSampleAttributes attrs;
174     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
175     int32_t format = -1;
176     EXPECT_EQ(HDF_SUCCESS, AttrFormatToBit(&attrs, &format));
177 }
178 
179 HWTEST_F(AudioAdapterTest, InitHwRenderParamWhenHwRenderIsNull, TestSize.Level1)
180 {
181     struct AudioDeviceDescriptor desc;
182     struct AudioSampleAttributes attrs;
183     EXPECT_EQ(HDF_FAILURE, InitHwRenderParam(nullptr, &desc, &attrs));
184 }
185 
186 HWTEST_F(AudioAdapterTest, InitHwRenderParamWhenDescIsNull, TestSize.Level1)
187 {
188     struct AudioHwRender hwRender;
189     struct AudioSampleAttributes attrs;
190     EXPECT_EQ(HDF_FAILURE, InitHwRenderParam(&hwRender, nullptr, &attrs));
191 }
192 
193 HWTEST_F(AudioAdapterTest, InitHwRenderParamWhenAttrsIsNull, TestSize.Level1)
194 {
195     struct AudioHwRender hwRender;
196     struct AudioDeviceDescriptor desc;
197     EXPECT_EQ(HDF_FAILURE, InitHwRenderParam(&hwRender, &desc, nullptr));
198 }
199 
200 HWTEST_F(AudioAdapterTest, InitHwRenderParamWhenPortIdLessThanZero, TestSize.Level1)
201 {
202     struct AudioDeviceDescriptor desc;
203     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
204     desc.portId = AUDIO_HAL_ERR_NOT_SUPPORT;
205     struct AudioSampleAttributes attrs;
206     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
207     struct AudioHwRender hwRender;
208     EXPECT_EQ(HDF_SUCCESS, InitHwRender(hwRender, desc, attrs));
209     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, InitHwRenderParam(&hwRender, &desc, &attrs));
210 }
211 
212 HWTEST_F(AudioAdapterTest, InitHwRenderParamWhenPeriodLessThanZero, TestSize.Level1)
213 {
214     struct AudioDeviceDescriptor desc;
215     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
216     struct AudioSampleAttributes attrs;
217     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
218     attrs.period = AUDIO_HAL_ERR_NOT_SUPPORT;
219     struct AudioHwRender hwRender;
220     EXPECT_EQ(HDF_SUCCESS, InitHwRender(hwRender, desc, attrs));
221     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, InitHwRenderParam(&hwRender, &desc, &attrs));
222 }
223 
224 HWTEST_F(AudioAdapterTest, InitHwRenderParamWhenFormatIsNotSupport, TestSize.Level1)
225 {
226     struct AudioDeviceDescriptor desc;
227     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
228     struct AudioSampleAttributes attrs;
229     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
230     attrs.format = AUDIO_FORMAT_AAC_MAIN;
231     struct AudioHwRender hwRender;
232     EXPECT_EQ(HDF_SUCCESS, InitHwRender(hwRender, desc, attrs));
233     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, InitHwRenderParam(&hwRender, &desc, &attrs));
234 }
235 
236 HWTEST_F(AudioAdapterTest, InitHwRenderParamWhenChannelCountIsZero, TestSize.Level1)
237 {
238     struct AudioDeviceDescriptor desc;
239     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
240     struct AudioSampleAttributes attrs;
241     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
242     attrs.channelCount = 0;
243     struct AudioHwRender hwRender;
244     EXPECT_EQ(HDF_SUCCESS, InitHwRender(hwRender, desc, attrs));
245     EXPECT_EQ(HDF_FAILURE, InitHwRenderParam(&hwRender, &desc, &attrs));
246 }
247 
248 HWTEST_F(AudioAdapterTest, InitHwRenderParamWhenParamIsValid, TestSize.Level1)
249 {
250     struct AudioDeviceDescriptor desc;
251     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
252     struct AudioSampleAttributes attrs;
253     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
254     struct AudioHwRender hwRender;
255     hwRender.renderParam.frameRenderMode.buffer = nullptr;
256     EXPECT_EQ(HDF_SUCCESS, InitHwRender(hwRender, desc, attrs));
257     EXPECT_EQ(HDF_SUCCESS, InitHwRenderParam(&hwRender, &desc, &attrs));
258     if (hwRender.renderParam.frameRenderMode.buffer != nullptr) {
259         OsalMemFree(hwRender.renderParam.frameRenderMode.buffer);
260         hwRender.renderParam.frameRenderMode.buffer = nullptr;
261     }
262 }
263 
264 HWTEST_F(AudioAdapterTest, InitForGetPortCapabilityWhenCapabilityIndexIsNull, TestSize.Level1)
265 {
266     struct AudioPort portIndex;
267     EXPECT_EQ(HDF_SUCCESS, InitPort(portIndex));
268     struct AudioPortCapability *capabilityIndex = nullptr;
269     EXPECT_EQ(HDF_FAILURE, InitForGetPortCapability(portIndex, capabilityIndex));
270 }
271 
272 HWTEST_F(AudioAdapterTest, InitForGetPortCapabilityWhenDirIsPortIn, TestSize.Level1)
273 {
274     struct AudioPort portIndex;
275     EXPECT_EQ(HDF_SUCCESS, InitPort(portIndex));
276     portIndex.dir = PORT_IN;
277     struct AudioPortCapability capabilityIndex;
278     EXPECT_EQ(HDF_SUCCESS, InitForGetPortCapability(portIndex, &capabilityIndex));
279 }
280 
TestInitForGetPortCapability(uint32_t portId)281 void TestInitForGetPortCapability(uint32_t portId)
282 {
283     struct AudioPort portIndex;
284     EXPECT_EQ(HDF_SUCCESS, InitPort(portIndex));
285     portIndex.portId = portId;
286     struct AudioPortCapability capabilityIndex;
287     ASSERT_EQ(HDF_SUCCESS, InitForGetPortCapability(portIndex, &capabilityIndex));
288 
289     EXPECT_NE(capabilityIndex.subPorts, nullptr);
290     if (capabilityIndex.subPorts != nullptr) {
291         EXPECT_EQ(capabilityIndex.subPorts->portId, portIndex.portId);
292         EXPECT_EQ(capabilityIndex.subPorts->desc, portIndex.portName);
293         EXPECT_EQ(capabilityIndex.subPorts->mask, PORT_PASSTHROUGH_LPCM);
294     }
295     if (capabilityIndex.subPorts != nullptr) {
296         free(capabilityIndex.subPorts);
297         capabilityIndex.subPorts = nullptr;
298     }
299 }
300 
301 HWTEST_F(AudioAdapterTest, InitForGetPortCapabilityWhenPortIdIsZero, TestSize.Level1)
302 {
303     TestInitForGetPortCapability(0);
304 }
305 
306 HWTEST_F(AudioAdapterTest, InitForGetPortCapabilityWhenPortIdIsOne, TestSize.Level1)
307 {
308     struct AudioPort portIndex;
309     EXPECT_EQ(HDF_SUCCESS, InitPort(portIndex));
310     portIndex.portId = 1;
311     struct AudioPortCapability capabilityIndex;
312     EXPECT_EQ(HDF_SUCCESS, InitForGetPortCapability(portIndex, &capabilityIndex));
313 }
314 
315 HWTEST_F(AudioAdapterTest, InitForGetPortCapabilityWhenPortIdIsHdmiPortId, TestSize.Level1)
316 {
317     TestInitForGetPortCapability(12); // 12 as portID
318 }
319 
320 HWTEST_F(AudioAdapterTest, InitForGetPortCapabilityWhenPortIdIsTwo, TestSize.Level1)
321 {
322     struct AudioPort portIndex;
323     EXPECT_EQ(HDF_SUCCESS, InitPort(portIndex));
324     portIndex.dir = PORT_OUT;
325     portIndex.portId = AUDIO_PORT_ID;
326     struct AudioPortCapability capabilityIndex;
327     EXPECT_EQ(HDF_SUCCESS, InitForGetPortCapability(portIndex, &capabilityIndex));
328 }
329 
330 HWTEST_F(AudioAdapterTest, AudioAdapterReleaseCapSubPortsWhenPortCapabilitysIsNull, TestSize.Level1)
331 {
332     const struct AudioPortAndCapability *portCapabilitys = nullptr;
333     int32_t num = PORTNUM;
334     AudioAdapterReleaseCapSubPorts(portCapabilitys, num);
335     EXPECT_EQ(nullptr, portCapabilitys);
336 }
337 
338 HWTEST_F(AudioAdapterTest, AudioAdapterReleaseCapSubPortsWhenParamIsValid, TestSize.Level1)
339 {
340     struct AudioPortAndCapability portCapabilitys;
341     struct AudioSubPortCapability *subPorts =
342         (struct AudioSubPortCapability *)calloc(1, sizeof(struct AudioSubPortCapability));
343     ASSERT_NE(subPorts, nullptr);
344     portCapabilitys.capability.subPorts = subPorts;
345     int32_t num = PORTNUM;
346     AudioAdapterReleaseCapSubPorts(&portCapabilitys, num);
347     EXPECT_EQ(nullptr, portCapabilitys.capability.subPorts);
348 }
349 
350 HWTEST_F(AudioAdapterTest, AudioAdapterInitAllPortsWhenAdapterIsNull, TestSize.Level1)
351 {
352     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterInitAllPorts(nullptr));
353 }
354 
355 HWTEST_F(AudioAdapterTest, AudioAdapterInitAllPortsWhenPortCapabilitysIsNotNull, TestSize.Level1)
356 {
357     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
358     struct AudioPortAndCapability capability;
359     struct AudioPortAndCapability *pCapability = hwAdapter->portCapabilitys;
360     hwAdapter->portCapabilitys = &capability;
361     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts((struct AudioAdapter *)hwAdapter));
362     hwAdapter->portCapabilitys = pCapability;
363 }
364 
365 HWTEST_F(AudioAdapterTest, AudioAdapterInitAllPortsWhenPortsIsNull, TestSize.Level1)
366 {
367     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
368     struct AudioPort *pPorts = hwAdapter->adapterDescriptor.ports;
369     hwAdapter->adapterDescriptor.ports = nullptr;
370     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterInitAllPorts((struct AudioAdapter *)hwAdapter));
371     hwAdapter->adapterDescriptor.ports = pPorts;
372 }
373 
374 HWTEST_F(AudioAdapterTest, AudioAdapterInitAllPortsWhenPortNumIsZero, TestSize.Level1)
375 {
376     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
377     hwAdapter->adapterDescriptor.portNum = 0;
378     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterInitAllPorts((struct AudioAdapter *)hwAdapter));
379 }
380 
381 HWTEST_F(AudioAdapterTest, AudioAdapterInitAllPortsWhenParamIsValid, TestSize.Level1)
382 {
383     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
384 }
385 
386 HWTEST_F(AudioAdapterTest, AudioReleaseRenderHandleWhenHwRenderIsNull, TestSize.Level1)
387 {
388     struct AudioHwRender *hwRender = nullptr;
389     AudioReleaseRenderHandle(hwRender);
390     EXPECT_EQ(nullptr, hwRender);
391 }
392 
393 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenHwRenderIsNull, TestSize.Level1)
394 {
395     struct AudioHwRender *hwRender = nullptr;
396     struct AudioDeviceDescriptor desc;
397     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
398     struct AudioSampleAttributes attrs;
399     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
400     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
401     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateRenderPre(hwRender, &desc, &attrs, hwAdapter));
402 }
403 
404 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenDescIsNull, TestSize.Level1)
405 {
406     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
407     ASSERT_NE(hwRender, nullptr);
408     struct AudioDeviceDescriptor *desc = nullptr;
409     struct AudioSampleAttributes attrs;
410     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
411     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
412     int32_t ret = AudioAdapterCreateRenderPre(hwRender, desc, &attrs, hwAdapter);
413     EXPECT_EQ(HDF_FAILURE, ret);
414     free(hwRender);
415     hwRender = nullptr;
416 }
417 
418 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenAttrsIsNull, TestSize.Level1)
419 {
420     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
421     ASSERT_NE(hwRender, nullptr);
422     struct AudioDeviceDescriptor desc;
423     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
424     struct AudioSampleAttributes *attrs = nullptr;
425     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
426     int32_t ret = AudioAdapterCreateRenderPre(hwRender, &desc, attrs, hwAdapter);
427     EXPECT_EQ(HDF_FAILURE, ret);
428     free(hwRender);
429     hwRender = nullptr;
430 }
431 
432 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenAdapterIsNull, TestSize.Level1)
433 {
434     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
435     ASSERT_NE(hwRender, nullptr);
436     struct AudioDeviceDescriptor desc;
437     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
438     struct AudioSampleAttributes attrs;
439     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
440     struct AudioHwAdapter *hwAdapter = nullptr;
441     int32_t ret = AudioAdapterCreateRenderPre(hwRender, &desc, &attrs, hwAdapter);
442     EXPECT_EQ(HDF_FAILURE, ret);
443     free(hwRender);
444     hwRender = nullptr;
445 }
446 
447 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenPortIdLessThanZero, TestSize.Level1)
448 {
449     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
450     ASSERT_NE(hwRender, nullptr);
451     struct AudioDeviceDescriptor devDesc;
452     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
453     devDesc.portId = AUDIO_HAL_ERR_NOT_SUPPORT;
454     struct AudioSampleAttributes attrs;
455     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
456     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateRenderPre(hwRender, &devDesc, &attrs, (struct AudioHwAdapter *)adapter));
457     free(hwRender);
458     hwRender = nullptr;
459 }
460 
461 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenAdapterNameIsNull, TestSize.Level1)
462 {
463     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
464     ASSERT_NE(hwRender, nullptr);
465     struct AudioDeviceDescriptor devDesc;
466     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
467     struct AudioSampleAttributes attrs;
468     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
469     struct AudioHwAdapter *hwAdapter = reinterpret_cast<AudioHwAdapter *>(adapter);
470     hwAdapter->adapterDescriptor.adapterName = nullptr;
471     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateRenderPre(hwRender, &devDesc, &attrs, hwAdapter));
472     free(hwRender);
473     hwRender = nullptr;
474 }
475 
476 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenParamIsValid, TestSize.Level1)
477 {
478     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
479     ASSERT_NE(hwRender, nullptr);
480     struct AudioDeviceDescriptor devDesc;
481     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
482     struct AudioSampleAttributes attrs;
483     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
484     struct AudioHwAdapter *hwAdapter = reinterpret_cast<AudioHwAdapter *>(adapter);
485     EXPECT_EQ(HDF_SUCCESS, AudioAdapterCreateRenderPre(hwRender, &devDesc, &attrs, hwAdapter));
486     free(hwRender);
487     hwRender = nullptr;
488 }
489 
490 HWTEST_F(AudioAdapterTest, AudioAdapterBindServiceRenderWhenHwRenderIsNull, TestSize.Level1)
491 {
492     EXPECT_EQ(HDF_FAILURE, AudioAdapterBindServiceRender(nullptr));
493 }
494 
495 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenAdapterIsNull, TestSize.Level1)
496 {
497     struct AudioDeviceDescriptor desc;
498     struct AudioSampleAttributes attrs;
499     struct AudioRender *render;
500     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateRender(nullptr, &desc, &attrs, &render));
501 }
502 
503 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenDescIsNull, TestSize.Level1)
504 {
505     struct AudioSampleAttributes attrs;
506     struct AudioRender *render;
507     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateRender(adapter, nullptr, &attrs, &render));
508 }
509 
510 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenAttrsIsNull, TestSize.Level1)
511 {
512     struct AudioDeviceDescriptor devDesc;
513     struct AudioRender *render;
514     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateRender(adapter, &devDesc, nullptr, &render));
515 }
516 
517 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenRenderIsNull, TestSize.Level1)
518 {
519     struct AudioDeviceDescriptor devDesc;
520     struct AudioSampleAttributes attrs;
521     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateRender(adapter, &devDesc, &attrs, nullptr));
522 }
523 
524 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenAdapterMgrRenderFlagIsGreaterThanOne, TestSize.Level1)
525 {
526     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
527     hwAdapter->adapterMgrRenderFlag = 1;
528     struct AudioDeviceDescriptor devDesc;
529     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
530     struct AudioSampleAttributes attrs;
531     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
532     struct AudioRender *render;
533     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL,
534         AudioAdapterCreateRender((struct AudioAdapter *)hwAdapter, &devDesc, &attrs, &render));
535 }
536 
537 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenPeriodIsLessThanZero, TestSize.Level1)
538 {
539     struct AudioDeviceDescriptor devDesc;
540     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
541     struct AudioSampleAttributes attrs;
542     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
543     attrs.period = -1;
544     struct AudioRender *render;
545     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterCreateRender(adapter, &devDesc, &attrs, &render));
546 }
547 
548 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenParamIsValid, TestSize.Level1)
549 {
550     struct AudioDeviceDescriptor devDesc;
551     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
552     struct AudioSampleAttributes attrs;
553     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
554     struct AudioRender *render;
555     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterCreateRender(adapter, &devDesc, &attrs, &render));
556     EXPECT_EQ(HDF_SUCCESS, AudioAdapterDestroyRender(adapter, render));
557 }
558 
559 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyRenderWhenAdapterIsNull, TestSize.Level1)
560 {
561     struct AudioRender render;
562     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterDestroyRender(nullptr, &render));
563 }
564 
565 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyRenderWhenRenderIsNull, TestSize.Level1)
566 {
567     struct AudioRender *render = nullptr;
568     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterDestroyRender(adapter, render));
569 }
570 
571 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyRenderWhenBufferIsNotNull, TestSize.Level1)
572 {
573     struct AudioDeviceDescriptor devDesc;
574     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
575     struct AudioSampleAttributes attrs;
576     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
577     struct AudioRender *render;
578     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterCreateRender(adapter, &devDesc, &attrs, &render));
579 
580     AudioHandle handle = (AudioHandle)render;
581     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
582     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterDestroyRender(adapter, render));
583 }
584 
585 HWTEST_F(AudioAdapterTest, GetAudioCaptureFuncWhenHwCaptureIsNull, TestSize.Level1)
586 {
587     struct AudioHwCapture *hwCapture = nullptr;
588     EXPECT_EQ(HDF_FAILURE, GetAudioCaptureFunc(hwCapture));
589 }
590 
591 HWTEST_F(AudioAdapterTest, GetAudioCaptureFuncWhenParamIsValid, TestSize.Level1)
592 {
593     struct AudioHwCapture hwCapture;
594     EXPECT_EQ(HDF_SUCCESS, GetAudioCaptureFunc(&hwCapture));
595 }
596 
597 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenHwCaptureIsNull, TestSize.Level1)
598 {
599     struct AudioDeviceDescriptor desc;
600     struct AudioSampleAttributes attrs;
601     EXPECT_EQ(HDF_FAILURE, InitHwCaptureParam(nullptr, &desc, &attrs));
602 }
603 
604 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenDescIsNull, TestSize.Level1)
605 {
606     struct AudioHwCapture hwCapture;
607     struct AudioSampleAttributes attrs;
608     EXPECT_EQ(HDF_FAILURE, InitHwCaptureParam(&hwCapture, nullptr, &attrs));
609 }
610 
611 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenAttrsIsNull, TestSize.Level1)
612 {
613     struct AudioHwCapture hwCapture;
614     struct AudioDeviceDescriptor desc;
615     EXPECT_EQ(HDF_FAILURE, InitHwCaptureParam(&hwCapture, &desc, nullptr));
616 }
617 
618 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenPortIdLessThanZero, TestSize.Level1)
619 {
620     struct AudioDeviceDescriptor desc;
621     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
622     desc.portId = AUDIO_HAL_ERR_NOT_SUPPORT;
623     struct AudioSampleAttributes attrs;
624     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
625     struct AudioHwCapture hwCapture;
626     EXPECT_EQ(HDF_SUCCESS, InitHwCapture(hwCapture, desc, attrs));
627     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, InitHwCaptureParam(&hwCapture, &desc, &attrs));
628 }
629 
630 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenPeriodLessThanZero, TestSize.Level1)
631 {
632     struct AudioDeviceDescriptor desc;
633     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
634     struct AudioSampleAttributes attrs;
635     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
636     attrs.period = AUDIO_HAL_ERR_NOT_SUPPORT;
637     struct AudioHwCapture hwCapture;
638     EXPECT_EQ(HDF_SUCCESS, InitHwCapture(hwCapture, desc, attrs));
639     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, InitHwCaptureParam(&hwCapture, &desc, &attrs));
640 }
641 
642 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenFormatIsNotSupport, TestSize.Level1)
643 {
644     struct AudioDeviceDescriptor desc;
645     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
646     struct AudioSampleAttributes attrs;
647     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
648     attrs.format = AUDIO_FORMAT_AAC_MAIN;
649     struct AudioHwCapture hwCapture;
650     EXPECT_EQ(HDF_SUCCESS, InitHwCapture(hwCapture, desc, attrs));
651     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, InitHwCaptureParam(&hwCapture, &desc, &attrs));
652 }
653 
654 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenChannelCountIsZero, TestSize.Level1)
655 {
656     struct AudioDeviceDescriptor desc;
657     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
658     struct AudioSampleAttributes attrs;
659     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
660     attrs.channelCount = 0;
661     struct AudioHwCapture hwCapture;
662     EXPECT_EQ(HDF_SUCCESS, InitHwCapture(hwCapture, desc, attrs));
663     EXPECT_EQ(HDF_FAILURE, InitHwCaptureParam(&hwCapture, &desc, &attrs));
664 }
665 
666 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenParamIsValid, TestSize.Level1)
667 {
668     struct AudioDeviceDescriptor desc;
669     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
670     struct AudioSampleAttributes attrs;
671     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
672     struct AudioHwCapture hwCapture;
673     EXPECT_EQ(HDF_SUCCESS, InitHwCapture(hwCapture, desc, attrs));
674     EXPECT_EQ(HDF_SUCCESS, InitHwCaptureParam(&hwCapture, &desc, &attrs));
675 }
676 
677 HWTEST_F(AudioAdapterTest, AudioReleaseCaptureHandleWhenHwCaptureIsNull, TestSize.Level1)
678 {
679     struct AudioHwCapture *hwCapture = nullptr;
680     AudioReleaseCaptureHandle(hwCapture);
681     EXPECT_EQ(nullptr, hwCapture);
682 }
683 
684 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCapturePreWhenHwCaptureIsNull, TestSize.Level1)
685 {
686     struct AudioHwCapture *hwCapture = nullptr;
687     struct AudioDeviceDescriptor desc;
688     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
689     struct AudioSampleAttributes attrs;
690     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
691     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
692     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateCapturePre(hwCapture, &desc, &attrs, hwAdapter));
693 }
694 
695 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCapturePreWhenDescIsNull, TestSize.Level1)
696 {
697     struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)calloc(1, sizeof(*hwCapture));
698     ASSERT_NE(hwCapture, nullptr);
699     struct AudioDeviceDescriptor *desc = nullptr;
700     struct AudioSampleAttributes attrs;
701     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
702     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
703     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateCapturePre(hwCapture, desc, &attrs, hwAdapter));
704     free(hwCapture);
705     hwCapture = nullptr;
706 }
707 
708 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCapturePreWhenAttrsIsNull, TestSize.Level1)
709 {
710     struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)calloc(1, sizeof(*hwCapture));
711     ASSERT_NE(hwCapture, nullptr);
712     struct AudioDeviceDescriptor desc;
713     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
714     struct AudioSampleAttributes *attrs = nullptr;
715     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
716     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateCapturePre(hwCapture, &desc, attrs, hwAdapter));
717     free(hwCapture);
718     hwCapture = nullptr;
719 }
720 
721 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCapturePreWhenAdapterIsNull, TestSize.Level1)
722 {
723     struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)calloc(1, sizeof(*hwCapture));
724     ASSERT_NE(hwCapture, nullptr);
725     struct AudioDeviceDescriptor desc;
726     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
727     struct AudioSampleAttributes attrs;
728     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
729     struct AudioHwAdapter *hwAdapter = nullptr;
730     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateCapturePre(hwCapture, &desc, &attrs, hwAdapter));
731     free(hwCapture);
732     hwCapture = nullptr;
733 }
734 
735 HWTEST_F(AudioAdapterTest, AudioAdapterInterfaceLibModeCaptureWhenHwCaptureIsNull, TestSize.Level1)
736 {
737     EXPECT_EQ(HDF_FAILURE, AudioAdapterInterfaceLibModeCapture(nullptr));
738 }
739 
740 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenAdapterIsNull, TestSize.Level1)
741 {
742     struct AudioDeviceDescriptor desc;
743     struct AudioSampleAttributes attrs;
744     struct AudioCapture *capture;
745     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateCapture(nullptr, &desc, &attrs, &capture));
746 }
747 
748 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenDescIsNull, TestSize.Level1)
749 {
750     struct AudioSampleAttributes attrs;
751     struct AudioCapture *capture;
752     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateCapture(adapter, nullptr, &attrs, &capture));
753 }
754 
755 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenAttrsIsNull, TestSize.Level1)
756 {
757     struct AudioDeviceDescriptor devDesc;
758     struct AudioCapture *capture;
759     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateCapture(adapter, &devDesc, nullptr, &capture));
760 }
761 
762 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenCaptureIsNull, TestSize.Level1)
763 {
764     struct AudioDeviceDescriptor devDesc;
765     struct AudioSampleAttributes attrs;
766     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateCapture(adapter, &devDesc, &attrs, nullptr));
767 }
768 
769 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenAdapterMgrCaptureFlagIsGreaterThanOne, TestSize.Level1)
770 {
771     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
772     hwAdapter->adapterMgrCaptureFlag = 1;
773     struct AudioDeviceDescriptor devDesc;
774     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(devDesc));
775     struct AudioSampleAttributes attrs;
776     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
777     struct AudioCapture *capture;
778     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL,
779         AudioAdapterCreateCapture((struct AudioAdapter *)adapter, &devDesc, &attrs, &capture));
780 }
781 
782 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenPeriodIsLessThanZero, TestSize.Level1)
783 {
784     struct AudioDeviceDescriptor devDesc;
785     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(devDesc));
786     struct AudioSampleAttributes attrs;
787     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
788     attrs.period = -1;
789     struct AudioCapture *capture;
790     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterCreateCapture(adapter, &devDesc, &attrs, &capture));
791 }
792 
793 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenParamIsValid, TestSize.Level1)
794 {
795     struct AudioDeviceDescriptor devDesc;
796     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(devDesc));
797     struct AudioSampleAttributes attrs;
798     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
799     struct AudioCapture *capture;
800     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterCreateCapture(adapter, &devDesc, &attrs, &capture));
801     EXPECT_EQ(HDF_SUCCESS, AudioAdapterDestroyCapture(adapter, capture));
802 }
803 
804 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyCaptureWhenAdapterIsNull, TestSize.Level1)
805 {
806     struct AudioCapture capture;
807     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterDestroyCapture(nullptr, &capture));
808 }
809 
810 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyCaptureWhenCaptureIsNull, TestSize.Level1)
811 {
812     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterDestroyCapture(adapter, nullptr));
813 }
814 
815 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyCaptureWhenBufferIsNotNull, TestSize.Level1)
816 {
817     struct AudioDeviceDescriptor devDesc;
818     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(devDesc));
819     struct AudioSampleAttributes attrs;
820     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
821     struct AudioCapture *capture;
822     /* to support different products */
823     int32_t ret = AudioAdapterCreateCapture(adapter, &devDesc, &attrs, &capture);
824     if ((ret == AUDIO_HAL_SUCCESS) || (ret == AUDIO_HAL_ERR_INTERNAL)) {
825         EXPECT_TRUE(true);
826     }
827 
828     AudioHandle handle = (AudioHandle)capture;
829     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
830     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterDestroyCapture(adapter, capture));
831 }
832 
833 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenAdapterIsNull, TestSize.Level1)
834 {
835     struct AudioPort port;
836     struct AudioPortCapability capability;
837     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPortCapability(nullptr, &port, &capability));
838 }
839 
840 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenPortIsNull, TestSize.Level1)
841 {
842     struct AudioPortCapability capability;
843     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPortCapability(adapter, nullptr, &capability));
844 }
845 
846 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenCapabilityIsNull, TestSize.Level1)
847 {
848     struct AudioPort *port = desc->ports;
849     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPortCapability(adapter, port, nullptr));
850 }
851 
852 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenPortNameIsNull, TestSize.Level1)
853 {
854     struct AudioPort port;
855     port.portName = nullptr;
856     struct AudioPortCapability capability;
857     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPortCapability(adapter, &port, &capability));
858 }
859 
860 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenPortCapabilitysIsNull, TestSize.Level1)
861 {
862     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
863     hwAdapter->portCapabilitys = nullptr;
864     struct AudioPort *port = desc->ports;
865     struct AudioPortCapability capability;
866     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL,
867         AudioAdapterGetPortCapability((struct AudioAdapter *)hwAdapter, port, &capability));
868 }
869 
870 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenPortNumIsZero, TestSize.Level1)
871 {
872     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
873     hwAdapter->adapterDescriptor.portNum = 0;
874     struct AudioPort *port = desc->ports;
875     struct AudioPortCapability capability;
876     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL,
877         AudioAdapterGetPortCapability((struct AudioAdapter *)hwAdapter, port, &capability));
878 }
879 
880 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenParamIsValid, TestSize.Level1)
881 {
882     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
883     struct AudioPort *port = desc->ports;
884     struct AudioPortCapability capability;
885     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterGetPortCapability(adapter, port, &capability));
886 }
887 
888 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenPortIdIsError, TestSize.Level1)
889 {
890     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
891     struct AudioPort *port = desc->ports;
892     uint32_t portId = port->portId;
893     port->portId = 1;
894     struct AudioPortCapability capability;
895     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterGetPortCapability(adapter, port, &capability));
896     port->portId = portId;
897 }
898 
899 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenAdapterIsNull, TestSize.Level1)
900 {
901     struct AudioPort port;
902     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
903     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterSetPassthroughMode(nullptr, &port, mode));
904 }
905 
906 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortIsNull, TestSize.Level1)
907 {
908     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
909     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterSetPassthroughMode(adapter, nullptr, mode));
910 }
911 
912 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortNameIsNull, TestSize.Level1)
913 {
914     struct AudioPort port;
915     port.portName = nullptr;
916     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
917     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterSetPassthroughMode(adapter, &port, mode));
918 }
919 
920 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortDirIsPortIn, TestSize.Level1)
921 {
922     struct AudioPort port;
923     port.portName = "usb";
924     port.dir = PORT_IN;
925     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
926     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode(adapter, &port, mode));
927 }
928 
929 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortCapabilitysIsNull, TestSize.Level1)
930 {
931     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
932     hwAdapter->portCapabilitys = nullptr;
933     struct AudioPort *port = desc->ports;
934     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
935     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode((struct AudioAdapter *)hwAdapter, port, mode));
936 }
937 
938 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortIdIsError, TestSize.Level1)
939 {
940     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
941     struct AudioPort *port = desc->ports;
942     uint32_t portId = port->portId;
943     port->portId = 1;
944     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
945     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode(adapter, port, mode));
946     port->portId = portId;
947 }
948 
949 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortNumIsZero, TestSize.Level1)
950 {
951     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
952     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
953     hwAdapter->adapterDescriptor.portNum = 0;
954     struct AudioPort *port = desc->ports;
955     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
956     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode((struct AudioAdapter *)hwAdapter, port, mode));
957 }
958 
959 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenSubPortsIsNull, TestSize.Level1)
960 {
961     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
962     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
963     free(hwAdapter->portCapabilitys->capability.subPorts);
964     hwAdapter->portCapabilitys->capability.subPorts = nullptr;
965     struct AudioPort *port = desc->ports;
966     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
967     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode((struct AudioAdapter *)hwAdapter, port, mode));
968 }
969 
970 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenParamIsValid, TestSize.Level1)
971 {
972     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
973     struct AudioPort *port = desc->ports;
974     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
975     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterSetPassthroughMode(adapter, port, mode));
976 }
977 
978 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenModeIsError, TestSize.Level1)
979 {
980     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
981     struct AudioPort *port = desc->ports;
982     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_RAW;
983     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode(adapter, port, mode));
984 }
985 
986 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenAdapterIsNull, TestSize.Level1)
987 {
988     struct AudioPort port;
989     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
990     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPassthroughMode(nullptr, &port, &mode));
991 }
992 
993 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortIsNull, TestSize.Level1)
994 {
995     struct AudioPort *port = nullptr;
996     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
997     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPassthroughMode(adapter, port, &mode));
998 }
999 
1000 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenModeIsNull, TestSize.Level1)
1001 {
1002     struct AudioPort *port = desc->ports;
1003     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPassthroughMode(adapter, port, nullptr));
1004 }
1005 
1006 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortNameIsNull, TestSize.Level1)
1007 {
1008     struct AudioPort port;
1009     port.portName = nullptr;
1010     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1011     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPassthroughMode(adapter, &port, &mode));
1012 }
1013 
1014 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortDirIsPortIn, TestSize.Level1)
1015 {
1016     struct AudioPort port;
1017     port.portName = "usb";
1018     port.dir = PORT_IN;
1019     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1020     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterGetPassthroughMode(adapter, &port, &mode));
1021 }
1022 
1023 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortCapabilitysIsNull, TestSize.Level1)
1024 {
1025     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
1026     hwAdapter->portCapabilitys = nullptr;
1027     struct AudioPort *port = desc->ports;
1028     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1029     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterGetPassthroughMode((AudioAdapter *)hwAdapter, port, &mode));
1030 }
1031 
1032 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortNumIsZero, TestSize.Level1)
1033 {
1034     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
1035     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
1036     hwAdapter->adapterDescriptor.portNum = 0;
1037     struct AudioPort *port = desc->ports;
1038     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1039     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterGetPassthroughMode((AudioAdapter *)hwAdapter, port, &mode));
1040 }
1041 
1042 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenParamIsValid, TestSize.Level1)
1043 {
1044     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
1045     struct AudioPort *port = desc->ports;
1046     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1047     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterGetPassthroughMode(adapter, port, &mode));
1048 }
1049 
1050 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortIdIsError, TestSize.Level1)
1051 {
1052     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
1053     struct AudioPort *port = desc->ports;
1054     uint32_t portId = port->portId;
1055     port->portId = 1;
1056     AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1057     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterGetPassthroughMode(adapter, port, &mode));
1058     port->portId = portId;
1059 }
1060 }
1061