• 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 "audio_adapter_test.h"
17 #include <gmock/gmock.h>
18 #include <gtest/gtest.h>
19 #include "audio_common_test.h"
20 
21 using namespace std;
22 using namespace comfun;
23 using namespace testing::ext;
24 namespace {
25 class AudioAdapterTest : public testing::Test {
26 public:
27     struct AudioManager *managerFuncs = nullptr;
28     struct AudioAdapterDescriptor *descs = nullptr;
29     struct AudioAdapterDescriptor *desc = nullptr;
30     struct AudioAdapter *adapter = nullptr;
31     virtual void SetUp();
32     virtual void TearDown();
33 };
34 
SetUp()35 void AudioAdapterTest::SetUp()
36 {
37     managerFuncs = GetAudioManagerFuncs();
38     ASSERT_NE(managerFuncs, nullptr);
39     int32_t size = 0;
40     ASSERT_EQ(HDF_SUCCESS, managerFuncs->GetAllAdapters(managerFuncs, &descs, &size));
41     desc = &descs[0];
42     ASSERT_EQ(HDF_SUCCESS, managerFuncs->LoadAdapter(managerFuncs, desc, &adapter));
43 }
44 
TearDown()45 void AudioAdapterTest::TearDown()
46 {
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, GetAudioRenderFuncWhenParamIsVaild, 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, CheckParaDescWhenParamIsVaild, 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, CheckParaAttrWhenParamIsVaild, 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, AttrFormatToBitWhenParamIsVaild, 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, InitHwRenderParamWhenParamIsVaild, 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(HDMI_PORT_ID);
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_FAILURE, 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, AudioAdapterReleaseCapSubPortsWhenParamIsVaild, 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, AudioAdapterInitAllPortsWhenParamIsVaild, 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, AudioSetAcodeModeRenderWhenHwRenderIsNull, TestSize.Level1)
394 {
395     InterfaceLibModeRenderSo pInterfaceLibModeRender;
396     EXPECT_EQ(HDF_FAILURE, AudioSetAcodeModeRender(nullptr, &pInterfaceLibModeRender));
397 }
398 
399 HWTEST_F(AudioAdapterTest, AudioSetAcodeModeRenderWhenpInterfaceLibModeRenderIsNull, TestSize.Level1)
400 {
401     struct AudioHwRender hwRender;
402     EXPECT_EQ(HDF_FAILURE, AudioSetAcodeModeRender(&hwRender, nullptr));
403 }
404 
405 HWTEST_F(AudioAdapterTest, AudioSetAcodeModeRenderWhenpDevCtlHandleIsNull, TestSize.Level1)
406 {
407     struct AudioHwRender hwRender;
408     InterfaceLibModeRenderSo pInterfaceLibModeRender;
409     hwRender.devCtlHandle = nullptr;
410     EXPECT_EQ(HDF_FAILURE, AudioSetAcodeModeRender(&hwRender, &pInterfaceLibModeRender));
411 }
412 
413 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenHwRenderIsNull, TestSize.Level1)
414 {
415     struct AudioHwRender *hwRender = nullptr;
416     struct AudioDeviceDescriptor desc;
417     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
418     struct AudioSampleAttributes attrs;
419     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
420     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
421     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateRenderPre(hwRender, &desc, &attrs, hwAdapter));
422 }
423 
424 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenDescIsNull, TestSize.Level1)
425 {
426     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
427     ASSERT_NE(hwRender, nullptr);
428     struct AudioDeviceDescriptor *desc = nullptr;
429     struct AudioSampleAttributes attrs;
430     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
431     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
432     int32_t ret = AudioAdapterCreateRenderPre(hwRender, desc, &attrs, hwAdapter);
433     EXPECT_EQ(HDF_FAILURE, ret);
434     free(hwRender);
435     hwRender = nullptr;
436 }
437 
438 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenAttrsIsNull, TestSize.Level1)
439 {
440     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
441     ASSERT_NE(hwRender, nullptr);
442     struct AudioDeviceDescriptor desc;
443     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
444     struct AudioSampleAttributes *attrs = nullptr;
445     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
446     int32_t ret = AudioAdapterCreateRenderPre(hwRender, &desc, attrs, hwAdapter);
447     EXPECT_EQ(HDF_FAILURE, ret);
448     free(hwRender);
449     hwRender = nullptr;
450 }
451 
452 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenAdapterIsNull, TestSize.Level1)
453 {
454     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
455     ASSERT_NE(hwRender, nullptr);
456     struct AudioDeviceDescriptor desc;
457     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(desc));
458     struct AudioSampleAttributes attrs;
459     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
460     struct AudioHwAdapter *hwAdapter = nullptr;
461     int32_t ret = AudioAdapterCreateRenderPre(hwRender, &desc, &attrs, hwAdapter);
462     EXPECT_EQ(HDF_FAILURE, ret);
463     free(hwRender);
464     hwRender = nullptr;
465 }
466 
467 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenPortIdLessThanZero, TestSize.Level1)
468 {
469     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
470     ASSERT_NE(hwRender, nullptr);
471     struct AudioDeviceDescriptor devDesc;
472     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
473     devDesc.portId = AUDIO_HAL_ERR_NOT_SUPPORT;
474     struct AudioSampleAttributes attrs;
475     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
476     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateRenderPre(hwRender, &devDesc, &attrs, (struct AudioHwAdapter *)adapter));
477     free(hwRender);
478     hwRender = nullptr;
479 }
480 
481 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenAdapterNameIsNull, TestSize.Level1)
482 {
483     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
484     ASSERT_NE(hwRender, nullptr);
485     struct AudioDeviceDescriptor devDesc;
486     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
487     struct AudioSampleAttributes attrs;
488     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
489     struct AudioHwAdapter *hwAdapter = reinterpret_cast<AudioHwAdapter *>(adapter);
490     hwAdapter->adapterDescriptor.adapterName = nullptr;
491     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateRenderPre(hwRender, &devDesc, &attrs, hwAdapter));
492     free(hwRender);
493     hwRender = nullptr;
494 }
495 
496 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderPreWhenParamIsVaild, TestSize.Level1)
497 {
498     struct AudioHwRender *hwRender = (struct AudioHwRender *)calloc(1, sizeof(*hwRender));
499     ASSERT_NE(hwRender, nullptr);
500     struct AudioDeviceDescriptor devDesc;
501     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
502     struct AudioSampleAttributes attrs;
503     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
504     struct AudioHwAdapter *hwAdapter = reinterpret_cast<AudioHwAdapter *>(adapter);
505     EXPECT_EQ(HDF_SUCCESS, AudioAdapterCreateRenderPre(hwRender, &devDesc, &attrs, hwAdapter));
506     free(hwRender);
507     hwRender = nullptr;
508 }
509 
510 HWTEST_F(AudioAdapterTest, AudioAdapterBindServiceRenderWhenHwRenderIsNull, TestSize.Level1)
511 {
512     EXPECT_EQ(HDF_FAILURE, AudioAdapterBindServiceRender(nullptr));
513 }
514 
515 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenAdapterIsNull, TestSize.Level1)
516 {
517     struct AudioDeviceDescriptor desc;
518     struct AudioSampleAttributes attrs;
519     struct AudioRender *render;
520     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateRender(nullptr, &desc, &attrs, &render));
521 }
522 
523 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenDescIsNull, TestSize.Level1)
524 {
525     struct AudioSampleAttributes attrs;
526     struct AudioRender *render;
527     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateRender(adapter, nullptr, &attrs, &render));
528 }
529 
530 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenAttrsIsNull, TestSize.Level1)
531 {
532     struct AudioDeviceDescriptor devDesc;
533     struct AudioRender *render;
534     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateRender(adapter, &devDesc, nullptr, &render));
535 }
536 
537 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenRenderIsNull, TestSize.Level1)
538 {
539     struct AudioDeviceDescriptor devDesc;
540     struct AudioSampleAttributes attrs;
541     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateRender(adapter, &devDesc, &attrs, nullptr));
542 }
543 
544 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenAdapterMgrRenderFlagIsGreaterThanOne, TestSize.Level1)
545 {
546     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
547     hwAdapter->adapterMgrRenderFlag = 1;
548     struct AudioDeviceDescriptor devDesc;
549     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
550     struct AudioSampleAttributes attrs;
551     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
552     struct AudioRender *render;
553     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL,
554         AudioAdapterCreateRender((struct AudioAdapter *)hwAdapter, &devDesc, &attrs, &render));
555 }
556 
557 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenPeriodIsLessThanZero, TestSize.Level1)
558 {
559     struct AudioDeviceDescriptor devDesc;
560     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
561     struct AudioSampleAttributes attrs;
562     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
563     attrs.period = -1;
564     struct AudioRender *render;
565     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterCreateRender(adapter, &devDesc, &attrs, &render));
566 }
567 
568 HWTEST_F(AudioAdapterTest, AudioAdapterCreateRenderWhenParamIsVaild, TestSize.Level1)
569 {
570     struct AudioDeviceDescriptor devDesc;
571     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
572     struct AudioSampleAttributes attrs;
573     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
574     struct AudioRender *render;
575     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterCreateRender(adapter, &devDesc, &attrs, &render));
576     EXPECT_EQ(HDF_SUCCESS, AudioAdapterDestroyRender(adapter, render));
577 }
578 
579 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyRenderWhenAdapterIsNull, TestSize.Level1)
580 {
581     struct AudioRender render;
582     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterDestroyRender(nullptr, &render));
583 }
584 
585 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyRenderWhenRenderIsNull, TestSize.Level1)
586 {
587     struct AudioRender *render = nullptr;
588     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterDestroyRender(adapter, render));
589 }
590 
591 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyRenderWhenBufferIsNotNull, TestSize.Level1)
592 {
593     struct AudioDeviceDescriptor devDesc;
594     EXPECT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
595     struct AudioSampleAttributes attrs;
596     EXPECT_EQ(HDF_SUCCESS, InitAttrs(attrs));
597     struct AudioRender *render;
598     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterCreateRender(adapter, &devDesc, &attrs, &render));
599 
600     AudioHandle handle = (AudioHandle)render;
601     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
602     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterDestroyRender(adapter, render));
603 }
604 
605 HWTEST_F(AudioAdapterTest, GetAudioCaptureFuncWhenHwCaptureIsNull, TestSize.Level1)
606 {
607     struct AudioHwCapture *hwCapture = nullptr;
608     EXPECT_EQ(HDF_FAILURE, GetAudioCaptureFunc(hwCapture));
609 }
610 
611 HWTEST_F(AudioAdapterTest, GetAudioCaptureFuncWhenParamIsVaild, TestSize.Level1)
612 {
613     struct AudioHwCapture hwCapture;
614     EXPECT_EQ(HDF_SUCCESS, GetAudioCaptureFunc(&hwCapture));
615 }
616 
617 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenHwCaptureIsNull, TestSize.Level1)
618 {
619     struct AudioDeviceDescriptor desc;
620     struct AudioSampleAttributes attrs;
621     EXPECT_EQ(HDF_FAILURE, InitHwCaptureParam(nullptr, &desc, &attrs));
622 }
623 
624 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenDescIsNull, TestSize.Level1)
625 {
626     struct AudioHwCapture hwCapture;
627     struct AudioSampleAttributes attrs;
628     EXPECT_EQ(HDF_FAILURE, InitHwCaptureParam(&hwCapture, nullptr, &attrs));
629 }
630 
631 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenAttrsIsNull, TestSize.Level1)
632 {
633     struct AudioHwCapture hwCapture;
634     struct AudioDeviceDescriptor desc;
635     EXPECT_EQ(HDF_FAILURE, InitHwCaptureParam(&hwCapture, &desc, nullptr));
636 }
637 
638 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenPortIdLessThanZero, TestSize.Level1)
639 {
640     struct AudioDeviceDescriptor desc;
641     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
642     desc.portId = AUDIO_HAL_ERR_NOT_SUPPORT;
643     struct AudioSampleAttributes attrs;
644     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
645     struct AudioHwCapture hwCapture;
646     EXPECT_EQ(HDF_SUCCESS, InitHwCapture(hwCapture, desc, attrs));
647     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, InitHwCaptureParam(&hwCapture, &desc, &attrs));
648 }
649 
650 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenPeriodLessThanZero, TestSize.Level1)
651 {
652     struct AudioDeviceDescriptor desc;
653     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
654     struct AudioSampleAttributes attrs;
655     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
656     attrs.period = AUDIO_HAL_ERR_NOT_SUPPORT;
657     struct AudioHwCapture hwCapture;
658     EXPECT_EQ(HDF_SUCCESS, InitHwCapture(hwCapture, desc, attrs));
659     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, InitHwCaptureParam(&hwCapture, &desc, &attrs));
660 }
661 
662 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenFormatIsNotSupport, TestSize.Level1)
663 {
664     struct AudioDeviceDescriptor desc;
665     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
666     struct AudioSampleAttributes attrs;
667     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
668     attrs.format = AUDIO_FORMAT_AAC_MAIN;
669     struct AudioHwCapture hwCapture;
670     EXPECT_EQ(HDF_SUCCESS, InitHwCapture(hwCapture, desc, attrs));
671     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, InitHwCaptureParam(&hwCapture, &desc, &attrs));
672 }
673 
674 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenChannelCountIsZero, TestSize.Level1)
675 {
676     struct AudioDeviceDescriptor desc;
677     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
678     struct AudioSampleAttributes attrs;
679     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
680     attrs.channelCount = 0;
681     struct AudioHwCapture hwCapture;
682     EXPECT_EQ(HDF_SUCCESS, InitHwCapture(hwCapture, desc, attrs));
683     EXPECT_EQ(HDF_FAILURE, InitHwCaptureParam(&hwCapture, &desc, &attrs));
684 }
685 
686 HWTEST_F(AudioAdapterTest, InitHwCaptureParamWhenParamIsVaild, TestSize.Level1)
687 {
688     struct AudioDeviceDescriptor desc;
689     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
690     struct AudioSampleAttributes attrs;
691     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
692     struct AudioHwCapture hwCapture;
693     EXPECT_EQ(HDF_SUCCESS, InitHwCapture(hwCapture, desc, attrs));
694     EXPECT_EQ(HDF_SUCCESS, InitHwCaptureParam(&hwCapture, &desc, &attrs));
695 }
696 
697 HWTEST_F(AudioAdapterTest, AudioReleaseCaptureHandleWhenHwCaptureIsNull, TestSize.Level1)
698 {
699     struct AudioHwCapture *hwCapture = nullptr;
700     AudioReleaseCaptureHandle(hwCapture);
701     EXPECT_EQ(nullptr, hwCapture);
702 }
703 
704 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCapturePreWhenHwCaptureIsNull, TestSize.Level1)
705 {
706     struct AudioHwCapture *hwCapture = nullptr;
707     struct AudioDeviceDescriptor desc;
708     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
709     struct AudioSampleAttributes attrs;
710     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
711     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
712     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateCapturePre(hwCapture, &desc, &attrs, hwAdapter));
713 }
714 
715 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCapturePreWhenDescIsNull, TestSize.Level1)
716 {
717     struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)calloc(1, sizeof(*hwCapture));
718     ASSERT_NE(hwCapture, nullptr);
719     struct AudioDeviceDescriptor *desc = nullptr;
720     struct AudioSampleAttributes attrs;
721     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
722     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
723     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateCapturePre(hwCapture, desc, &attrs, hwAdapter));
724     free(hwCapture);
725     hwCapture = nullptr;
726 }
727 
728 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCapturePreWhenAttrsIsNull, TestSize.Level1)
729 {
730     struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)calloc(1, sizeof(*hwCapture));
731     ASSERT_NE(hwCapture, nullptr);
732     struct AudioDeviceDescriptor desc;
733     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
734     struct AudioSampleAttributes *attrs = nullptr;
735     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
736     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateCapturePre(hwCapture, &desc, attrs, hwAdapter));
737     free(hwCapture);
738     hwCapture = nullptr;
739 }
740 
741 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCapturePreWhenAdapterIsNull, TestSize.Level1)
742 {
743     struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)calloc(1, sizeof(*hwCapture));
744     ASSERT_NE(hwCapture, nullptr);
745     struct AudioDeviceDescriptor desc;
746     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(desc));
747     struct AudioSampleAttributes attrs;
748     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
749     struct AudioHwAdapter *hwAdapter = nullptr;
750     EXPECT_EQ(HDF_FAILURE, AudioAdapterCreateCapturePre(hwCapture, &desc, &attrs, hwAdapter));
751     free(hwCapture);
752     hwCapture = nullptr;
753 }
754 
755 HWTEST_F(AudioAdapterTest, AudioAdapterInterfaceLibModeCaptureWhenHwCaptureIsNull, TestSize.Level1)
756 {
757     EXPECT_EQ(HDF_FAILURE, AudioAdapterInterfaceLibModeCapture(nullptr));
758 }
759 
760 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenAdapterIsNull, TestSize.Level1)
761 {
762     struct AudioDeviceDescriptor desc;
763     struct AudioSampleAttributes attrs;
764     struct AudioCapture *capture;
765     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateCapture(nullptr, &desc, &attrs, &capture));
766 }
767 
768 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenDescIsNull, TestSize.Level1)
769 {
770     struct AudioSampleAttributes attrs;
771     struct AudioCapture *capture;
772     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateCapture(adapter, nullptr, &attrs, &capture));
773 }
774 
775 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenAttrsIsNull, TestSize.Level1)
776 {
777     struct AudioDeviceDescriptor devDesc;
778     struct AudioCapture *capture;
779     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateCapture(adapter, &devDesc, nullptr, &capture));
780 }
781 
782 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenCaptureIsNull, TestSize.Level1)
783 {
784     struct AudioDeviceDescriptor devDesc;
785     struct AudioSampleAttributes attrs;
786     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterCreateCapture(adapter, &devDesc, &attrs, nullptr));
787 }
788 
789 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenAdapterMgrCaptureFlagIsGreaterThanOne, TestSize.Level1)
790 {
791     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
792     hwAdapter->adapterMgrCaptureFlag = 1;
793     struct AudioDeviceDescriptor devDesc;
794     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(devDesc));
795     struct AudioSampleAttributes attrs;
796     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
797     struct AudioCapture *capture;
798     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL,
799         AudioAdapterCreateCapture((struct AudioAdapter *)adapter, &devDesc, &attrs, &capture));
800 }
801 
802 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenPeriodIsLessThanZero, TestSize.Level1)
803 {
804     struct AudioDeviceDescriptor devDesc;
805     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(devDesc));
806     struct AudioSampleAttributes attrs;
807     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
808     attrs.period = -1;
809     struct AudioCapture *capture;
810     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterCreateCapture(adapter, &devDesc, &attrs, &capture));
811 }
812 
813 HWTEST_F(AudioAdapterTest, AudioAdapterCreateCaptureWhenParamIsVaild, TestSize.Level1)
814 {
815     struct AudioDeviceDescriptor devDesc;
816     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(devDesc));
817     struct AudioSampleAttributes attrs;
818     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
819     struct AudioCapture *capture;
820     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterCreateCapture(adapter, &devDesc, &attrs, &capture));
821     EXPECT_EQ(HDF_SUCCESS, AudioAdapterDestroyCapture(adapter, capture));
822 }
823 
824 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyCaptureWhenAdapterIsNull, TestSize.Level1)
825 {
826     struct AudioCapture capture;
827     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterDestroyCapture(nullptr, &capture));
828 }
829 
830 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyCaptureWhenCaptureIsNull, TestSize.Level1)
831 {
832     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterDestroyCapture(adapter, nullptr));
833 }
834 
835 HWTEST_F(AudioAdapterTest, AudioAdapterDestroyCaptureWhenBufferIsNotNull, TestSize.Level1)
836 {
837     struct AudioDeviceDescriptor devDesc;
838     EXPECT_EQ(HDF_SUCCESS, InitDevDescCapture(devDesc));
839     struct AudioSampleAttributes attrs;
840     EXPECT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
841     struct AudioCapture *capture;
842     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterCreateCapture(adapter, &devDesc, &attrs, &capture));
843 
844     AudioHandle handle = (AudioHandle)capture;
845     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
846     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterDestroyCapture(adapter, capture));
847 }
848 
849 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenAdapterIsNull, TestSize.Level1)
850 {
851     struct AudioPort port;
852     struct AudioPortCapability capability;
853     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPortCapability(nullptr, &port, &capability));
854 }
855 
856 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenPortIsNull, TestSize.Level1)
857 {
858     struct AudioPortCapability capability;
859     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPortCapability(adapter, nullptr, &capability));
860 }
861 
862 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenCapabilityIsNull, TestSize.Level1)
863 {
864     struct AudioPort *port = desc->ports;
865     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPortCapability(adapter, port, nullptr));
866 }
867 
868 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenPortNameIsNull, TestSize.Level1)
869 {
870     struct AudioPort port;
871     port.portName = nullptr;
872     struct AudioPortCapability capability;
873     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPortCapability(adapter, &port, &capability));
874 }
875 
876 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenPortCapabilitysIsNull, TestSize.Level1)
877 {
878     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
879     hwAdapter->portCapabilitys = nullptr;
880     struct AudioPort *port = desc->ports;
881     struct AudioPortCapability capability;
882     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL,
883         AudioAdapterGetPortCapability((struct AudioAdapter *)hwAdapter, port, &capability));
884 }
885 
886 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenPortNumIsZero, TestSize.Level1)
887 {
888     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
889     hwAdapter->adapterDescriptor.portNum = 0;
890     struct AudioPort *port = desc->ports;
891     struct AudioPortCapability capability;
892     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL,
893         AudioAdapterGetPortCapability((struct AudioAdapter *)hwAdapter, port, &capability));
894 }
895 
896 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenParamIsVaild, TestSize.Level1)
897 {
898     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
899     struct AudioPort *port = desc->ports;
900     struct AudioPortCapability capability;
901     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterGetPortCapability(adapter, port, &capability));
902 }
903 
904 HWTEST_F(AudioAdapterTest, AudioAdapterGetPortCapabilityWhenPortIdIsError, TestSize.Level1)
905 {
906     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
907     struct AudioPort *port = desc->ports;
908     uint32_t portId = port->portId;
909     port->portId = 1;
910     struct AudioPortCapability capability;
911     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterGetPortCapability(adapter, port, &capability));
912     port->portId = portId;
913 }
914 
915 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenAdapterIsNull, TestSize.Level1)
916 {
917     struct AudioPort port;
918     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
919     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterSetPassthroughMode(nullptr, &port, mode));
920 }
921 
922 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortIsNull, TestSize.Level1)
923 {
924     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
925     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterSetPassthroughMode(adapter, nullptr, mode));
926 }
927 
928 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortNameIsNull, TestSize.Level1)
929 {
930     struct AudioPort port;
931     port.portName = nullptr;
932     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
933     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterSetPassthroughMode(adapter, &port, mode));
934 }
935 
936 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortDirIsPortIn, TestSize.Level1)
937 {
938     struct AudioPort port;
939     port.portName = "usb";
940     port.dir = PORT_IN;
941     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
942     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode(adapter, &port, mode));
943 }
944 
945 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortCapabilitysIsNull, TestSize.Level1)
946 {
947     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
948     hwAdapter->portCapabilitys = nullptr;
949     struct AudioPort *port = desc->ports;
950     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
951     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode((struct AudioAdapter *)hwAdapter, port, mode));
952 }
953 
954 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortIdIsError, TestSize.Level1)
955 {
956     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
957     struct AudioPort *port = desc->ports;
958     uint32_t portId = port->portId;
959     port->portId = 1;
960     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
961     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode(adapter, port, mode));
962     port->portId = portId;
963 }
964 
965 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenPortNumIsZero, TestSize.Level1)
966 {
967     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
968     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
969     hwAdapter->adapterDescriptor.portNum = 0;
970     struct AudioPort *port = desc->ports;
971     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
972     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode((struct AudioAdapter *)hwAdapter, port, mode));
973 }
974 
975 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenSubPortsIsNull, TestSize.Level1)
976 {
977     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
978     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
979     free(hwAdapter->portCapabilitys->capability.subPorts);
980     hwAdapter->portCapabilitys->capability.subPorts = nullptr;
981     struct AudioPort *port = desc->ports;
982     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
983     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode((struct AudioAdapter *)hwAdapter, port, mode));
984 }
985 
986 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenParamIsVaild, TestSize.Level1)
987 {
988     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
989     struct AudioPort *port = desc->ports;
990     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
991     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterSetPassthroughMode(adapter, port, mode));
992 }
993 
994 HWTEST_F(AudioAdapterTest, AudioAdapterSetPassthroughModeWhenModeIsError, TestSize.Level1)
995 {
996     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
997     struct AudioPort *port = desc->ports;
998     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_RAW;
999     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterSetPassthroughMode(adapter, port, mode));
1000 }
1001 
1002 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenAdapterIsNull, TestSize.Level1)
1003 {
1004     struct AudioPort port;
1005     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1006     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPassthroughMode(nullptr, &port, &mode));
1007 }
1008 
1009 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortIsNull, TestSize.Level1)
1010 {
1011     struct AudioPort *port = nullptr;
1012     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1013     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPassthroughMode(adapter, port, &mode));
1014 }
1015 
1016 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenModeIsNull, TestSize.Level1)
1017 {
1018     struct AudioPort *port = desc->ports;
1019     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPassthroughMode(adapter, port, nullptr));
1020 }
1021 
1022 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortNameIsNull, TestSize.Level1)
1023 {
1024     struct AudioPort port;
1025     port.portName = nullptr;
1026     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1027     EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioAdapterGetPassthroughMode(adapter, &port, &mode));
1028 }
1029 
1030 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortDirIsPortIn, TestSize.Level1)
1031 {
1032     struct AudioPort port;
1033     port.portName = "usb";
1034     port.dir = PORT_IN;
1035     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1036     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterGetPassthroughMode(adapter, &port, &mode));
1037 }
1038 
1039 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortCapabilitysIsNull, TestSize.Level1)
1040 {
1041     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
1042     hwAdapter->portCapabilitys = nullptr;
1043     struct AudioPort *port = desc->ports;
1044     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1045     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterGetPassthroughMode((AudioAdapter *)hwAdapter, port, &mode));
1046 }
1047 
1048 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortNumIsZero, TestSize.Level1)
1049 {
1050     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
1051     struct AudioHwAdapter *hwAdapter = (struct AudioHwAdapter *)adapter;
1052     hwAdapter->adapterDescriptor.portNum = 0;
1053     struct AudioPort *port = desc->ports;
1054     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1055     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterGetPassthroughMode((AudioAdapter *)hwAdapter, port, &mode));
1056 }
1057 
1058 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenParamIsVaild, TestSize.Level1)
1059 {
1060     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
1061     struct AudioPort *port = desc->ports;
1062     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1063     EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterGetPassthroughMode(adapter, port, &mode));
1064 }
1065 
1066 HWTEST_F(AudioAdapterTest, AudioAdapterGetPassthroughModeWhenPortIdIsError, TestSize.Level1)
1067 {
1068     ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterInitAllPorts(adapter));
1069     struct AudioPort *port = desc->ports;
1070     uint32_t portId = port->portId;
1071     port->portId = 1;
1072     enum AudioPortPassthroughMode mode = PORT_PASSTHROUGH_LPCM;
1073     EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioAdapterGetPassthroughMode(adapter, port, &mode));
1074     port->portId = portId;
1075 }
1076 }
1077