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