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