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 AudioRenderTest : 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 struct AudioDeviceDescriptor devDesc = {};
31 struct AudioSampleAttributes attrs = {};
32 struct AudioRender *render = nullptr;
33
34 virtual void SetUp();
35 virtual void TearDown();
36 };
37
SetUp()38 void AudioRenderTest::SetUp()
39 {
40 managerFuncs = GetAudioManagerFuncs();
41 ASSERT_NE(managerFuncs, nullptr);
42 int32_t size = 0;
43 ASSERT_EQ(HDF_SUCCESS, managerFuncs->GetAllAdapters(managerFuncs, &descs, &size));
44
45 desc = &descs[0];
46 ASSERT_EQ(HDF_SUCCESS, managerFuncs->LoadAdapter(managerFuncs, desc, &adapter));
47 ASSERT_EQ(HDF_SUCCESS, InitDevDesc(devDesc));
48 ASSERT_EQ(HDF_SUCCESS, InitAttrs(attrs));
49 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterCreateRender(adapter, &devDesc, &attrs, &render));
50 }
51
TearDown()52 void AudioRenderTest::TearDown()
53 {
54 ASSERT_EQ(HDF_SUCCESS, AudioAdapterDestroyRender(adapter, render));
55 managerFuncs->UnloadAdapter(managerFuncs, adapter);
56 adapter = nullptr;
57 }
58
59 HWTEST_F(AudioRenderTest, PcmBytesToFramesWhenFrameRenderModeIsNull, TestSize.Level1)
60 {
61 const struct AudioFrameRenderMode *frameRenderMode = nullptr;
62 uint64_t bytes = FRAME_DATA;
63 uint32_t frameCount = 0;
64 EXPECT_EQ(HDF_FAILURE, PcmBytesToFrames(frameRenderMode, bytes, &frameCount));
65 }
66
67 HWTEST_F(AudioRenderTest, PcmBytesToFramesWhenFrameCountIsNull, TestSize.Level1)
68 {
69 const struct AudioFrameRenderMode *frameRenderMode = new struct AudioFrameRenderMode;
70 uint64_t bytes = FRAME_DATA;
71 uint32_t *frameCount = nullptr;
72 EXPECT_EQ(HDF_FAILURE, PcmBytesToFrames(frameRenderMode, bytes, frameCount));
73 delete(frameRenderMode);
74 frameRenderMode = nullptr;
75 }
76
77 HWTEST_F(AudioRenderTest, PcmBytesToFramesWhenParamIsNotSupport, TestSize.Level1)
78 {
79 struct AudioFrameRenderMode *frameRenderMode = new struct AudioFrameRenderMode;
80 frameRenderMode->attrs.format = AUDIO_FORMAT_AAC_MAIN;
81 uint64_t bytes = FRAME_DATA;
82 uint32_t frameCount = 0;
83 EXPECT_EQ(HDF_ERR_NOT_SUPPORT,
84 PcmBytesToFrames((const struct AudioFrameRenderMode *)frameRenderMode, bytes, &frameCount));
85 delete(frameRenderMode);
86 frameRenderMode = nullptr;
87 }
88
89 HWTEST_F(AudioRenderTest, PcmBytesToFramesWhenChannelCountIsZero, TestSize.Level1)
90 {
91 struct AudioFrameRenderMode *frameRenderMode = new struct AudioFrameRenderMode;
92 frameRenderMode->attrs.format = AUDIO_FORMAT_PCM_8_BIT;
93 frameRenderMode->attrs.channelCount = 0;
94 uint64_t bytes = FRAME_DATA;
95 uint32_t frameCount = 0;
96 EXPECT_EQ(HDF_FAILURE, PcmBytesToFrames((const struct AudioFrameRenderMode *)frameRenderMode, bytes, &frameCount));
97 delete(frameRenderMode);
98 frameRenderMode = nullptr;
99 }
100
101 HWTEST_F(AudioRenderTest, PcmBytesToFramesWhenParamIsValid, TestSize.Level1)
102 {
103 struct AudioFrameRenderMode *frameRenderMode = new struct AudioFrameRenderMode;
104 frameRenderMode->attrs.format = AUDIO_FORMAT_PCM_8_BIT;
105 frameRenderMode->attrs.channelCount = 1;
106 uint64_t bytes = FRAME_DATA;
107 uint32_t frameCount = 0;
108 EXPECT_EQ(HDF_SUCCESS, PcmBytesToFrames((const struct AudioFrameRenderMode *)frameRenderMode, bytes, &frameCount));
109 delete(frameRenderMode);
110 frameRenderMode = nullptr;
111 }
112
113 HWTEST_F(AudioRenderTest, AudioRenderStartWhenHandleIsNull, TestSize.Level1)
114 {
115 AudioHwRender *hwRender = nullptr;
116 AudioHandle handle = (AudioHandle)hwRender;
117 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderStart(handle));
118 }
119
120 HWTEST_F(AudioRenderTest, AudioRenderStartWhenBufferIsNotNull, TestSize.Level1)
121 {
122 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
123 AudioHandle handle = (AudioHandle)hwRender;
124 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
125 EXPECT_EQ(AUDIO_HAL_ERR_AO_BUSY, AudioRenderStart(handle));
126 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStop(handle));
127 }
128
129 HWTEST_F(AudioRenderTest, AudioRenderStartWhenDevDataHandleIsNull, TestSize.Level1)
130 {
131 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
132 struct DevHandle *devDataHandle = hwRender->devDataHandle;
133 hwRender->devDataHandle = nullptr;
134 AudioHandle handle = (AudioHandle)hwRender;
135 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderStart(handle));
136 hwRender->devDataHandle = devDataHandle;
137 }
138
139 HWTEST_F(AudioRenderTest, AudioRenderStartWhenDevDataHandleIsError, TestSize.Level1)
140 {
141 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
142 struct DevHandle *devDataHandle = hwRender->devDataHandle;
143 struct HdfIoService *service = new HdfIoService;
144 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
145 hwRender->devDataHandle = reinterpret_cast<struct DevHandle *>(service);
146 AudioHandle handle = (AudioHandle)hwRender;
147 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderStart(handle));
148 hwRender->devDataHandle = devDataHandle;
149 delete(service);
150 service = nullptr;
151 }
152
153 HWTEST_F(AudioRenderTest, AudioRenderStartWhenParamIsValid, TestSize.Level1)
154 {
155 AudioHandle handle = (AudioHandle)render;
156 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
157 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStop(handle));
158 }
159
160 HWTEST_F(AudioRenderTest, AudioRenderStopWhenHandleIsNull, TestSize.Level1)
161 {
162 AudioHwRender *hwRender = nullptr;
163 AudioHandle handle = (AudioHandle)hwRender;
164 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderStop(handle));
165 }
166
167 HWTEST_F(AudioRenderTest, AudioRenderStopWhenBufferIsNull, TestSize.Level1)
168 {
169 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
170 hwRender->renderParam.frameRenderMode.buffer = nullptr;
171 AudioHandle handle = (AudioHandle)hwRender;
172 EXPECT_EQ(AUDIO_HAL_ERR_NOT_SUPPORT, AudioRenderStop(handle));
173 }
174
175 HWTEST_F(AudioRenderTest, AudioRenderStopWhenDevDataHandleIsNull, TestSize.Level1)
176 {
177 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
178 AudioHandle handle = (AudioHandle)hwRender;
179 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
180 struct DevHandle *devDataHandle = hwRender->devDataHandle;
181 hwRender->devDataHandle = nullptr;
182 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderStop(handle));
183 hwRender->devDataHandle = devDataHandle;
184 }
185
186 HWTEST_F(AudioRenderTest, AudioRenderStopWhenDevDataHandleIsError, TestSize.Level1)
187 {
188 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
189 AudioHandle handle = (AudioHandle)hwRender;
190 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
191 struct DevHandle *devDataHandle = hwRender->devDataHandle;
192 struct HdfIoService *service = new HdfIoService;
193 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
194 hwRender->devDataHandle = reinterpret_cast<struct DevHandle *>(service);
195 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderStop(handle));
196 hwRender->devDataHandle = devDataHandle;
197 delete(service);
198 service = nullptr;
199 }
200
201 HWTEST_F(AudioRenderTest, AudioRenderStopWhenParamIsValid, TestSize.Level1)
202 {
203 AudioHandle handle = (AudioHandle)render;
204 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
205 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStop(handle));
206 }
207
208 HWTEST_F(AudioRenderTest, AudioRenderPauseWhenHandleIsNull, TestSize.Level1)
209 {
210 AudioHwRender *hwRender = nullptr;
211 AudioHandle handle = (AudioHandle)hwRender;
212 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderPause(handle));
213 }
214
215 HWTEST_F(AudioRenderTest, AudioRenderPauseWhenBufferIsNull, TestSize.Level1)
216 {
217 AudioHwRender *hwRender = (AudioHwRender *)render;
218 hwRender->renderParam.frameRenderMode.buffer = nullptr;
219 AudioHandle handle = (AudioHandle)hwRender;
220 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderPause(handle));
221 }
222
223 HWTEST_F(AudioRenderTest, AudioRenderPauseWhenPauseIsTrue, TestSize.Level1)
224 {
225 AudioHwRender *hwRender = (AudioHwRender *)render;
226 hwRender->renderParam.renderMode.ctlParam.pause = true;
227 AudioHandle handle = (AudioHandle)hwRender;
228 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
229 EXPECT_EQ(AUDIO_HAL_ERR_NOT_SUPPORT, AudioRenderPause(handle));
230 }
231
232 HWTEST_F(AudioRenderTest, AudioRenderPauseWhenDevDataHandleIsNull, TestSize.Level1)
233 {
234 AudioHwRender *hwRender = (AudioHwRender *)render;
235 AudioHandle handle = (AudioHandle)hwRender;
236 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
237 struct DevHandle *devDataHandle = hwRender->devDataHandle;
238 hwRender->devDataHandle = nullptr;
239 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderPause(handle));
240 hwRender->devDataHandle = devDataHandle;
241 }
242
243 HWTEST_F(AudioRenderTest, AudioRenderPauseWhenDevDataHandleIsError, TestSize.Level1)
244 {
245 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
246 AudioHandle handle = (AudioHandle)hwRender;
247 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
248 struct DevHandle *devDataHandle = hwRender->devDataHandle;
249 struct HdfIoService *service = new HdfIoService;
250 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
251 hwRender->devDataHandle = reinterpret_cast<struct DevHandle *>(service);
252 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderPause(handle));
253 hwRender->devDataHandle = devDataHandle;
254 delete(service);
255 service = nullptr;
256 }
257
258 HWTEST_F(AudioRenderTest, AudioRenderPauseWhenParamValid, TestSize.Level1)
259 {
260 AudioHandle handle = (AudioHandle)render;
261 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
262 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderPause(handle));
263 }
264
265 HWTEST_F(AudioRenderTest, AudioRenderResumeWhenHandleIsNull, TestSize.Level1)
266 {
267 AudioHwRender *hwRender = nullptr;
268 AudioHandle handle = (AudioHandle)hwRender;
269 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderResume(handle));
270 }
271
272 HWTEST_F(AudioRenderTest, AudioRenderResumeWhenPauseIsFalse, TestSize.Level1)
273 {
274 AudioHandle handle = (AudioHandle)render;
275 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
276 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
277 hwRender->renderParam.renderMode.ctlParam.pause = false;
278 handle = (AudioHandle)hwRender;
279 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, AudioRenderResume(handle));
280 }
281
282 HWTEST_F(AudioRenderTest, AudioRenderResumeWhenDevDataHandleIsNull, TestSize.Level1)
283 {
284 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
285 AudioHandle handle = (AudioHandle)hwRender;
286 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
287 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderPause(handle));
288 struct DevHandle *devDataHandle = hwRender->devDataHandle;
289 hwRender->devDataHandle = nullptr;
290 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderResume(handle));
291 hwRender->devDataHandle = devDataHandle;
292 }
293
294 HWTEST_F(AudioRenderTest, AudioRenderResumeWhenDevDataHandleIsError, TestSize.Level1)
295 {
296 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
297 AudioHandle handle = (AudioHandle)hwRender;
298 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
299 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderPause(handle));
300 struct DevHandle *devDataHandle = hwRender->devDataHandle;
301 struct HdfIoService *service = new HdfIoService;
302 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
303 hwRender->devDataHandle = reinterpret_cast<struct DevHandle *>(service);
304 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderResume(handle));
305 hwRender->devDataHandle = devDataHandle;
306 delete(service);
307 service = nullptr;
308 }
309
310 HWTEST_F(AudioRenderTest, AudioRenderResumeWhenParamValid, TestSize.Level1)
311 {
312 AudioHandle handle = (AudioHandle)render;
313 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
314 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderPause(handle));
315 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderResume(handle));
316 }
317
318 HWTEST_F(AudioRenderTest, AudioRenderFlushWhenHandleIsNull, TestSize.Level1)
319 {
320 AudioHwRender *hwRender = nullptr;
321 AudioHandle handle = (AudioHandle)hwRender;
322 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderFlush(handle));
323 }
324
325 HWTEST_F(AudioRenderTest, AudioRenderFlushWhenParamIsValid, TestSize.Level1)
326 {
327 EXPECT_EQ(AUDIO_HAL_ERR_NOT_SUPPORT, AudioRenderFlush(render));
328 }
329
330 HWTEST_F(AudioRenderTest, AudioRenderGetFrameSizeWhenHandleIsNull, TestSize.Level1)
331 {
332 AudioHwRender *hwRender = nullptr;
333 AudioHandle handle = (AudioHandle)hwRender;
334 uint64_t size = FRAME_DATA;
335 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetFrameSize(handle, &size));
336 }
337
338 HWTEST_F(AudioRenderTest, AudioRenderGetFrameSizeWhenSizeIsNull, TestSize.Level1)
339 {
340 AudioHandle handle = (AudioHandle)render;
341 uint64_t *frameSize = nullptr;
342 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetFrameSize(handle, frameSize));
343 }
344
345 HWTEST_F(AudioRenderTest, AudioRenderGetFrameSizeWhenParamIsNotSupport, TestSize.Level1)
346 {
347 AudioHwRender *hwRender = (AudioHwRender *)render;
348 hwRender->renderParam.frameRenderMode.attrs.format = AUDIO_FORMAT_AAC_MAIN;
349 AudioHandle handle = (AudioHandle)hwRender;
350 uint64_t frameSize = FRAME_DATA;
351 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, AudioRenderGetFrameSize(handle, &frameSize));
352 }
353
354 HWTEST_F(AudioRenderTest, AudioRenderGetFrameSizeWhenParamValid, TestSize.Level1)
355 {
356 AudioHandle handle = (AudioHandle)render;
357 uint64_t frameSize = FRAME_DATA;
358 EXPECT_EQ(HDF_SUCCESS, AudioRenderGetFrameSize(handle, &frameSize));
359 }
360
361 HWTEST_F(AudioRenderTest, AudioRenderGetFrameCountWhenHandleIsNull, TestSize.Level1)
362 {
363 AudioHwRender *hwRender = nullptr;
364 AudioHandle handle = (AudioHandle)hwRender;
365 uint64_t count = FRAME_DATA;
366 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetFrameCount(handle, &count));
367 }
368
369 HWTEST_F(AudioRenderTest, AudioRenderGetFrameCountWhenCountIsNull, TestSize.Level1)
370 {
371 AudioHandle handle = (AudioHandle)render;
372 uint64_t *count = nullptr;
373 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetFrameCount(handle, count));
374 }
375
376 HWTEST_F(AudioRenderTest, AudioRenderGetFrameCountWhenParamIsValid, TestSize.Level1)
377 {
378 AudioHandle handle = (AudioHandle)render;
379 uint64_t count = FRAME_DATA;
380 EXPECT_EQ(HDF_SUCCESS, AudioRenderGetFrameCount(handle, &count));
381 }
382
383 HWTEST_F(AudioRenderTest, AudioRenderSetSampleAttributesWhenHandleIsNull, TestSize.Level1)
384 {
385 AudioHwRender *hwRender = nullptr;
386 AudioHandle handle = (AudioHandle)hwRender;
387 AudioSampleAttributes *attrs = new AudioSampleAttributes;
388 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetSampleAttributes(handle, attrs));
389 delete(attrs);
390 attrs = nullptr;
391 }
392
393 HWTEST_F(AudioRenderTest, AudioRenderSetSampleAttributesWhenAttrsIsNull, TestSize.Level1)
394 {
395 AudioHandle handle = (AudioHandle)render;
396 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetSampleAttributes(handle, nullptr));
397 }
398
399 HWTEST_F(AudioRenderTest, AudioRenderSetSampleAttributesWhenDevDataHandleIsNull, TestSize.Level1)
400 {
401 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
402 struct DevHandle *devDataHandle = hwRender->devDataHandle;
403 hwRender->devDataHandle = nullptr;
404 AudioHandle handle = (AudioHandle)hwRender;
405 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetSampleAttributes(handle, &attrs));
406 hwRender->devDataHandle = devDataHandle;
407 }
408
409 HWTEST_F(AudioRenderTest, AudioRenderSetSampleAttributesWhenFormatIsError, TestSize.Level1)
410 {
411 AudioHandle handle = (AudioHandle)render;
412 attrs.format = AUDIO_FORMAT_G711A;
413 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, AudioRenderSetSampleAttributes(handle, &attrs));
414 }
415
416 HWTEST_F(AudioRenderTest, AudioRenderSetSampleAttributesWhenDevDataHandleIsError, TestSize.Level1)
417 {
418 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
419 struct DevHandle *devDataHandle = hwRender->devDataHandle;
420 struct HdfIoService *service = new HdfIoService;
421 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
422 hwRender->devDataHandle = reinterpret_cast<struct DevHandle *>(service);
423 AudioHandle handle = (AudioHandle)hwRender;
424 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSetSampleAttributes(handle, &attrs));
425 hwRender->devDataHandle = devDataHandle;
426 delete(service);
427 service = nullptr;
428 }
429
430 HWTEST_F(AudioRenderTest, AudioRenderSetSampleAttributesWhenParamIsValid, TestSize.Level1)
431 {
432 AudioHandle handle = (AudioHandle)render;
433 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetSampleAttributes(handle, &attrs));
434 }
435
436 HWTEST_F(AudioRenderTest, AudioRenderGetSampleAttributesWhenHandleIsNull, TestSize.Level1)
437 {
438 AudioSampleAttributes *attrs = new AudioSampleAttributes;
439 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetSampleAttributes(nullptr, attrs));
440 delete(attrs);
441 attrs = nullptr;
442 }
443
444 HWTEST_F(AudioRenderTest, AudioRenderGetSampleAttributesWhenAttrsIsNull, TestSize.Level1)
445 {
446 AudioHandle handle = (AudioHandle)render;
447 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetSampleAttributes(handle, nullptr));
448 }
449
450 HWTEST_F(AudioRenderTest, AudioRenderGetSampleAttributesWhenParamIsValid, TestSize.Level1)
451 {
452 AudioHandle handle = (AudioHandle)render;
453 EXPECT_EQ(HDF_SUCCESS, AudioRenderGetSampleAttributes(handle, &attrs));
454 }
455
456 HWTEST_F(AudioRenderTest, AudioRenderGetCurrentChannelIdWhenHandleIsNull, TestSize.Level1)
457 {
458 AudioHwRender *hwRender = nullptr;
459 AudioHandle handle = (AudioHandle)hwRender;
460 uint32_t channelIdOne = 1;
461 uint32_t *channelId = &channelIdOne;
462 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetCurrentChannelId(handle, channelId));
463 }
464
465 HWTEST_F(AudioRenderTest, AudioRenderGetCurrentChannelIdWhenChannelIdIsNull, TestSize.Level1)
466 {
467 AudioHandle handle = (AudioHandle)render;
468 uint32_t *channelId = nullptr;
469 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetCurrentChannelId(handle, channelId));
470 }
471
472 HWTEST_F(AudioRenderTest, AudioRenderGetCurrentChannelIdWhenParamIsValid, TestSize.Level1)
473 {
474 AudioHandle handle = (AudioHandle)render;
475 uint32_t channelId = 1;
476 EXPECT_EQ(HDF_SUCCESS, AudioRenderGetCurrentChannelId(handle, &channelId));
477 }
478
479 HWTEST_F(AudioRenderTest, AudioRenderCheckSceneCapabilityWhenHandleIsNull, TestSize.Level1)
480 {
481 AudioHwRender *hwRender = nullptr;
482 AudioHandle handle = (AudioHandle)hwRender;
483 const struct AudioSceneDescriptor *scene = new struct AudioSceneDescriptor;
484 bool supported = false;
485 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderCheckSceneCapability(handle, scene, &supported));
486 delete(scene);
487 scene = nullptr;
488 }
489
490 HWTEST_F(AudioRenderTest, AudioRenderCheckSceneCapabilityWhenSceneIsNull, TestSize.Level1)
491 {
492 AudioHandle handle = (AudioHandle)render;
493 const struct AudioSceneDescriptor *scene = nullptr;
494 bool supported = false;
495 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderCheckSceneCapability(handle, scene, &supported));
496 }
497
498 HWTEST_F(AudioRenderTest, AudioRenderCheckSceneCapabilityWhenSupportedIsNull, TestSize.Level1)
499 {
500 AudioHandle handle = (AudioHandle)render;
501 const struct AudioSceneDescriptor *scene = new struct AudioSceneDescriptor;
502 bool *supported = nullptr;
503 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderCheckSceneCapability(handle, scene, supported));
504 delete(scene);
505 scene = nullptr;
506 }
507
508 HWTEST_F(AudioRenderTest, AudioRenderCheckSceneCapabilityWhenPinsIsError, TestSize.Level1)
509 {
510 AudioHandle handle = (AudioHandle)render;
511 struct AudioSceneDescriptor scene;
512 scene.scene.id = AUDIO_IN_MEDIA;
513 scene.desc.pins = PIN_NONE;
514 bool supported = false;
515 /* to support different products */
516 int32_t ret = AudioRenderCheckSceneCapability(handle, &scene, &supported);
517 if ((ret == AUDIO_HAL_ERR_INTERNAL) || (ret == AUDIO_HAL_ERR_NOT_SUPPORT)) {
518 EXPECT_TRUE(true);
519 }
520 }
521
522 HWTEST_F(AudioRenderTest, AudioRenderCheckSceneCapabilityWhenParamValid, TestSize.Level1)
523 {
524 AudioHandle handle = (AudioHandle)render;
525 struct AudioSceneDescriptor scene;
526 scene.scene.id = AUDIO_IN_MEDIA;
527 scene.desc.pins = PIN_OUT_SPEAKER;
528 bool supported = false;
529 /* to support different products */
530 int32_t ret = AudioRenderCheckSceneCapability(handle, &scene, &supported);
531 if ((ret == AUDIO_HAL_SUCCESS) || (ret == AUDIO_HAL_ERR_NOT_SUPPORT)) {
532 EXPECT_TRUE(true);
533 }
534 }
535
536 HWTEST_F(AudioRenderTest, AudioRenderSelectSceneWhenHandleIsNull, TestSize.Level1)
537 {
538 AudioHwRender *hwRender = nullptr;
539 AudioHandle handle = (AudioHandle)hwRender;
540 const struct AudioSceneDescriptor *scene = new struct AudioSceneDescriptor;
541 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSelectScene(handle, scene));
542 delete(scene);
543 scene = nullptr;
544 }
545
546 HWTEST_F(AudioRenderTest, AudioRenderSelectSceneWhenSceneIsNull, TestSize.Level1)
547 {
548 AudioHandle handle = (AudioHandle)render;
549 const struct AudioSceneDescriptor *scene = nullptr;
550 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSelectScene(handle, scene));
551 }
552
553 HWTEST_F(AudioRenderTest, AudioRenderSelectSceneWhenDevCtlHandleIsNull, TestSize.Level1)
554 {
555 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
556 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
557 hwRender->devCtlHandle = nullptr;
558 AudioHandle handle = (AudioHandle)hwRender;
559 struct AudioSceneDescriptor *scene = new AudioSceneDescriptor;
560 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSelectScene(handle, scene));
561 hwRender->devCtlHandle = devCtlHandle;
562 delete(scene);
563 scene = nullptr;
564 }
565
566 HWTEST_F(AudioRenderTest, AudioRenderSelectSceneWhenDevCtlHandleIsError, TestSize.Level1)
567 {
568 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
569 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
570 struct HdfIoService *service = new HdfIoService;
571 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
572 hwRender->devCtlHandle = reinterpret_cast<struct DevHandle *>(service);
573 AudioHandle handle = (AudioHandle)hwRender;
574 struct AudioSceneDescriptor scene;
575 scene.scene.id = AUDIO_IN_MEDIA;
576 scene.desc.pins = PIN_OUT_SPEAKER;
577 /* to support different products */
578 int32_t ret = AudioRenderSelectScene(handle, &scene);
579 if ((ret == AUDIO_HAL_ERR_INTERNAL) || (ret == AUDIO_HAL_ERR_NOT_SUPPORT)) {
580 EXPECT_TRUE(true);
581 }
582 hwRender->devCtlHandle = devCtlHandle;
583 delete(service);
584 service = nullptr;
585 }
586
587 HWTEST_F(AudioRenderTest, AudioRenderSelectSceneWhenParamValid, TestSize.Level1)
588 {
589 AudioHandle handle = (AudioHandle)render;
590 struct AudioSceneDescriptor scene;
591 scene.scene.id = AUDIO_IN_MEDIA;
592 scene.desc.pins = PIN_OUT_SPEAKER;
593 /* to support different products */
594 int32_t ret = AudioRenderSelectScene(handle, &scene);
595 if ((ret == AUDIO_HAL_SUCCESS) || (ret == AUDIO_HAL_ERR_NOT_SUPPORT)) {
596 EXPECT_TRUE(true);
597 }
598 }
599
600 HWTEST_F(AudioRenderTest, AudioRenderSetMuteWhenHandleIsNull, TestSize.Level1)
601 {
602 AudioHwRender *hwRender = nullptr;
603 AudioHandle handle = (AudioHandle)hwRender;
604 bool mute = true;
605 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetMute(handle, mute));
606 }
607
608 HWTEST_F(AudioRenderTest, AudioRenderSetMuteWhenDevCtlHandleIsNull, TestSize.Level1)
609 {
610 AudioHwRender *hwRender = (AudioHwRender *)render;
611 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
612 hwRender->devCtlHandle = nullptr;
613 AudioHandle handle = (AudioHandle)hwRender;
614 bool mute = true;
615 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSetMute(handle, mute));
616 hwRender->devCtlHandle = devCtlHandle;
617 }
618
619 HWTEST_F(AudioRenderTest, AudioRenderSetMuteWhenDevCtlHandleIsError, TestSize.Level1)
620 {
621 AudioHwRender *hwRender = (AudioHwRender *)render;
622 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
623 struct HdfIoService *service = new HdfIoService;
624 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
625 hwRender->devCtlHandle = (struct DevHandle *)service;
626 AudioHandle handle = (AudioHandle)hwRender;
627 bool mute = true;
628 #ifdef ALSA_LIB_MODE
629 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetMute(handle, mute));
630 #else
631 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSetMute(handle, mute));
632 #endif
633 hwRender->devCtlHandle = devCtlHandle;
634 delete(service);
635 service = nullptr;
636 }
637
638 HWTEST_F(AudioRenderTest, AudioRenderSetMuteWhenParamValid, TestSize.Level1)
639 {
640 AudioHandle handle = (AudioHandle)render;
641 bool mute = true;
642 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetMute(handle, mute));
643 mute = false;
644 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetMute(handle, mute));
645 }
646
647 HWTEST_F(AudioRenderTest, AudioRenderGetMuteWhenHandleIsNull, TestSize.Level1)
648 {
649 AudioHwRender *hwRender = nullptr;
650 AudioHandle handle = (AudioHandle)hwRender;
651 bool mute = false;
652 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetMute(handle, &mute));
653 }
654
655 HWTEST_F(AudioRenderTest, AudioRenderGetMuteWhenMuteIsNull, TestSize.Level1)
656 {
657 AudioHandle handle = (AudioHandle)render;
658 bool *mute = nullptr;
659 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetMute(handle, mute));
660 }
661
662 HWTEST_F(AudioRenderTest, AudioRenderGetMuteWhenDevCtlHandleIsNull, TestSize.Level1)
663 {
664 AudioHwRender *hwRender = (AudioHwRender *)render;
665 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
666 hwRender->devCtlHandle = nullptr;
667 AudioHandle handle = (AudioHandle)hwRender;
668 bool mute = false;
669 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetMute(handle, &mute));
670 hwRender->devCtlHandle = devCtlHandle;
671 }
672
673 HWTEST_F(AudioRenderTest, AudioRenderGetMuteWhenDevCtlHandleIsError, TestSize.Level1)
674 {
675 AudioHwRender *hwRender = (AudioHwRender *)render;
676 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
677 struct HdfIoService *service = new HdfIoService;
678 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
679 hwRender->devCtlHandle = (struct DevHandle *)service;
680 AudioHandle handle = (AudioHandle)hwRender;
681 bool mute = true;
682 #ifdef ALSA_LIB_MODE
683 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetMute(handle, &mute));
684 #else
685 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetMute(handle, &mute));
686 #endif
687 hwRender->devCtlHandle = devCtlHandle;
688 delete(service);
689 service = nullptr;
690 }
691
692 HWTEST_F(AudioRenderTest, AudioRenderGetMuteWhenParamValid, TestSize.Level1)
693 {
694 AudioHandle handle = (AudioHandle)render;
695 bool mute = false;
696 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetMute(handle, &mute));
697 }
698
699 HWTEST_F(AudioRenderTest, AudioRenderSetVolumeWhenHandleIsNull, TestSize.Level1)
700 {
701 AudioHwRender *hwRender = nullptr;
702 AudioHandle handle = (AudioHandle)hwRender;
703 float volume = 0;
704 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetVolume(handle, volume));
705 }
706
707 HWTEST_F(AudioRenderTest, AudioRenderSetVolumeWhenVolumeLessThanZero, TestSize.Level1)
708 {
709 AudioHandle handle = (AudioHandle)render;
710 float volume = -1;
711 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetVolume(handle, volume));
712 }
713
714 HWTEST_F(AudioRenderTest, AudioRenderSetVolumeWhenDevCtlHandleIsNull, TestSize.Level1)
715 {
716 AudioHwRender *hwRender = (AudioHwRender *)render;
717 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
718 hwRender->devCtlHandle = nullptr;
719 AudioHandle handle = (AudioHandle)hwRender;
720 float volume = 0;
721 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSetVolume(handle, volume));
722 hwRender->devCtlHandle = devCtlHandle;
723 }
724
725 HWTEST_F(AudioRenderTest, AudioRenderSetVolumeWhenHandleIsError, TestSize.Level1)
726 {
727 AudioHwRender *hwRender = (AudioHwRender *)render;
728 hwRender->renderParam.renderMode.ctlParam.volThreshold.volMax = 0;
729 hwRender->renderParam.renderMode.ctlParam.volThreshold.volMin = 1;
730 AudioHandle handle = (AudioHandle)render;
731 float volume = 0;
732 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSetVolume(handle, volume));
733 }
734
735 HWTEST_F(AudioRenderTest, AudioRenderSetVolumeWhenDevCtlHandleIsError, TestSize.Level1)
736 {
737 AudioHwRender *hwRender = (AudioHwRender *)render;
738 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
739 struct HdfIoService *service = new HdfIoService;
740 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
741 hwRender->devCtlHandle = (struct DevHandle *)service;
742 AudioHandle handle = (AudioHandle)hwRender;
743 float volume = 1.0;
744 #ifdef ALSA_LIB_MODE
745 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetVolume(handle, volume));
746 #else
747 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSetVolume(handle, volume));
748 #endif
749 hwRender->devCtlHandle = devCtlHandle;
750 delete(service);
751 service = nullptr;
752 }
753
754 HWTEST_F(AudioRenderTest, AudioRenderSetVolumeWhenParamValid, TestSize.Level1)
755 {
756 AudioHandle handle = (AudioHandle)render;
757 float volume = 0.8;
758 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetVolume(handle, volume));
759 }
760
761 HWTEST_F(AudioRenderTest, AudioRenderGetVolumeWhenHandleIsNull, TestSize.Level1)
762 {
763 AudioHwRender *hwRender = nullptr;
764 AudioHandle handle = (AudioHandle)hwRender;
765 float volume = 0;
766 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetVolume(handle, &volume));
767 }
768
769 HWTEST_F(AudioRenderTest, AudioRenderGetVolumeWhenVolumeIsNull, TestSize.Level1)
770 {
771 AudioHandle handle = (AudioHandle)render;
772 float *volume = nullptr;
773 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetVolume(handle, volume));
774 }
775
776 HWTEST_F(AudioRenderTest, AudioRenderGetVolumeWhenDevCtlHandleIsNull, TestSize.Level1)
777 {
778 AudioHwRender *hwRender = (AudioHwRender *)render;
779 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
780 hwRender->devCtlHandle = nullptr;
781 AudioHandle handle = (AudioHandle)hwRender;
782 float volume = 0;
783 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetVolume(handle, &volume));
784 hwRender->devCtlHandle = devCtlHandle;
785 }
786
787 HWTEST_F(AudioRenderTest, AudioRenderGetVolumeWhenDevCtlHandleIsError, TestSize.Level1)
788 {
789 AudioHwRender *hwRender = (AudioHwRender *)render;
790 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
791 struct HdfIoService *service = new HdfIoService;
792 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
793 hwRender->devCtlHandle = (struct DevHandle *)service;
794 AudioHandle handle = (AudioHandle)hwRender;
795 float volume = 1.0;
796 #ifdef ALSA_LIB_MODE
797 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetVolume(handle, &volume));
798 #else
799 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetVolume(handle, &volume));
800 #endif
801 hwRender->devCtlHandle = devCtlHandle;
802 delete(service);
803 service = nullptr;
804 }
805
806 HWTEST_F(AudioRenderTest, AudioRenderGetVolumeWhenVolumeIsError, TestSize.Level1)
807 {
808 AudioHwRender *hwRender = (AudioHwRender *)render;
809 hwRender->renderParam.renderMode.ctlParam.volThreshold.volMax = 1;
810 hwRender->renderParam.renderMode.ctlParam.volThreshold.volMin = 1;
811 AudioHandle handle = (AudioHandle)render;
812 float volume = 0;
813 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetVolume(handle, &volume));
814 }
815
816 HWTEST_F(AudioRenderTest, AudioRenderGetVolumeWhenParamValid, TestSize.Level1)
817 {
818 AudioHandle handle = (AudioHandle)render;
819 float volume = 0;
820 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetVolume(handle, &volume));
821 }
822
823 HWTEST_F(AudioRenderTest, AudioRenderGetGainThresholdWhenRenderIsNull, TestSize.Level1)
824 {
825 AudioHwRender *hwRender = nullptr;
826 AudioHandle handle = (AudioHandle)hwRender;
827 float min = GAIN_MIN;
828 float max = GAIN_MAX;
829 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetGainThreshold(handle, &min, &max));
830 }
831
832 HWTEST_F(AudioRenderTest, AudioRenderGetGainThresholdWhenMinIsNull, TestSize.Level1)
833 {
834 AudioHandle handle = (AudioHandle)render;
835 float *min = nullptr;
836 float max = GAIN_MAX;
837 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetGainThreshold(handle, min, &max));
838 }
839
840 HWTEST_F(AudioRenderTest, AudioRenderGetGainThresholdWhenMaxIsNull, TestSize.Level1)
841 {
842 AudioHandle handle = (AudioHandle)render;
843 float min = GAIN_MIN;
844 float *max = nullptr;
845 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetGainThreshold(handle, &min, max));
846 }
847
848 HWTEST_F(AudioRenderTest, AudioRenderGetGainThresholdWhenDevCtlHandleIsNull, TestSize.Level1)
849 {
850 AudioHwRender *hwRender = (AudioHwRender *)render;
851 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
852 hwRender->devCtlHandle = nullptr;
853 AudioHandle handle = (AudioHandle)hwRender;
854 float min = GAIN_MIN;
855 float max = GAIN_MAX;
856 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetGainThreshold(handle, &min, &max));
857 hwRender->devCtlHandle = devCtlHandle;
858 }
859
860 HWTEST_F(AudioRenderTest, AudioRenderGetGainThresholdWhenDevCtlHandleIsError, TestSize.Level1)
861 {
862 AudioHwRender *hwRender = (AudioHwRender *)render;
863 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
864 struct HdfIoService *service = new HdfIoService;
865 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
866 hwRender->devCtlHandle = (struct DevHandle *)service;
867 AudioHandle handle = (AudioHandle)hwRender;
868 float min = GAIN_MIN;
869 float max = GAIN_MAX;
870 #ifdef ALSA_LIB_MODE
871 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetGainThreshold(handle, &min, &max));
872 #else
873 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetGainThreshold(handle, &min, &max));
874 #endif
875 hwRender->devCtlHandle = devCtlHandle;
876 delete(service);
877 service = nullptr;
878 }
879
880 HWTEST_F(AudioRenderTest, AudioRenderGetGainThresholdWhenParamValid, TestSize.Level1)
881 {
882 AudioHandle handle = (AudioHandle)render;
883 float min = GAIN_MIN;
884 float max = GAIN_MAX;
885 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetGainThreshold(handle, &min, &max));
886 }
887
888 HWTEST_F(AudioRenderTest, AudioRenderGetGainWhenHandleIsNull, TestSize.Level1)
889 {
890 AudioHwRender *hwRender = nullptr;
891 AudioHandle handle = (AudioHandle)hwRender;
892 float gain = 0;
893 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetGain(handle, &gain));
894 }
895
896 HWTEST_F(AudioRenderTest, AudioRenderGetGainWhenGainIsNull, TestSize.Level1)
897 {
898 AudioHandle handle = (AudioHandle)render;
899 float *gain = nullptr;
900 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetGain(handle, gain));
901 }
902
903 HWTEST_F(AudioRenderTest, AudioRenderGetGainWhenDevCtlHandleIsNull, TestSize.Level1)
904 {
905 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
906 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
907 hwRender->devCtlHandle = nullptr;
908 AudioHandle handle = (AudioHandle)hwRender;
909 float gain = 0;
910 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetGain(handle, &gain));
911 hwRender->devCtlHandle = devCtlHandle;
912 }
913
914 HWTEST_F(AudioRenderTest, AudioRenderGetGainWhenDevCtlHandleIsError, TestSize.Level1)
915 {
916 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
917 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
918 struct HdfIoService *service = new HdfIoService;
919 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
920 hwRender->devCtlHandle = reinterpret_cast<struct DevHandle *>(service);
921 AudioHandle handle = (AudioHandle)hwRender;
922 float gain = 0;
923 #ifdef ALSA_LIB_MODE
924 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetGain(handle, &gain));
925 #else
926 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetGain(handle, &gain));
927 #endif
928 hwRender->devCtlHandle = devCtlHandle;
929 delete(service);
930 service = nullptr;
931 }
932
933 HWTEST_F(AudioRenderTest, AudioRenderGetGainWhenParamValid, TestSize.Level1)
934 {
935 AudioHandle handle = (AudioHandle)render;
936 float gain = 0;
937 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetGain(handle, &gain));
938 }
939
940 HWTEST_F(AudioRenderTest, AudioRenderSetGainWhenHandleIsNull, TestSize.Level1)
941 {
942 AudioHwRender *hwRender = nullptr;
943 AudioHandle handle = (AudioHandle)hwRender;
944 float gain = 0;
945 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetGain(handle, gain));
946 }
947
948 HWTEST_F(AudioRenderTest, AudioRenderSetGainWhenGainIsLessThanZero, TestSize.Level1)
949 {
950 AudioHandle handle = (AudioHandle)render;
951 float gain = -1;
952 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetGain(handle, gain));
953 }
954
955 HWTEST_F(AudioRenderTest, AudioRenderSetGainWhenDevCtlHandleIsNull, TestSize.Level1)
956 {
957 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
958 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
959 hwRender->devCtlHandle = nullptr;
960 AudioHandle handle = (AudioHandle)hwRender;
961 float gain = 0;
962 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSetGain(handle, gain));
963 hwRender->devCtlHandle = devCtlHandle;
964 }
965
966 HWTEST_F(AudioRenderTest, AudioRenderSetGainWhenDevCtlHandleIsError, TestSize.Level1)
967 {
968 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
969 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
970 struct HdfIoService *service = new HdfIoService;
971 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
972 hwRender->devCtlHandle = reinterpret_cast<struct DevHandle *>(service);
973 AudioHandle handle = (AudioHandle)hwRender;
974 float gain = 0;
975 #ifdef ALSA_LIB_MODE
976 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetGain(handle, gain));
977 #else
978 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSetGain(handle, gain));
979 #endif
980 hwRender->devCtlHandle = devCtlHandle;
981 delete(service);
982 service = nullptr;
983 }
984
985 HWTEST_F(AudioRenderTest, AudioRenderSetGainWhenParamValid, TestSize.Level1)
986 {
987 AudioHandle handle = (AudioHandle)render;
988 float gain = 0;
989 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetGain(handle, gain));
990 }
991
992 HWTEST_F(AudioRenderTest, AudioRenderGetLatencyWhenRenderIsNull, TestSize.Level1)
993 {
994 struct AudioRender *utRender = nullptr;
995 uint32_t ms = 96;
996 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetLatency(utRender, &ms));
997 }
998
999 HWTEST_F(AudioRenderTest, AudioRenderGetLatencyWhenMsIsNull, TestSize.Level1)
1000 {
1001 uint32_t *ms = nullptr;
1002 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetLatency(render, ms));
1003 }
1004
1005 HWTEST_F(AudioRenderTest, AudioRenderGetLatencyWhenByteRateIsZero, TestSize.Level1)
1006 {
1007 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1008 hwRender->renderParam.frameRenderMode.byteRate = 0;
1009 uint32_t ms = 96;
1010 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetLatency((struct AudioRender *)hwRender, &ms));
1011 }
1012
1013 HWTEST_F(AudioRenderTest, AudioRenderGetLatencyWhenParamValid, TestSize.Level1)
1014 {
1015 uint32_t ms = 96;
1016 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetLatency(render, &ms));
1017 }
1018
1019 HWTEST_F(AudioRenderTest, AudioRenderRenderFrameWhenRenderIsNull, TestSize.Level1)
1020 {
1021 struct AudioRender *utRender = nullptr;
1022 void *frame = (void *)calloc(1, FRAME_DATA);
1023 ASSERT_NE(nullptr, frame);
1024 uint64_t requestBytes = FRAME_DATA;
1025 uint64_t replyBytes;
1026 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM,
1027 AudioRenderRenderFrame(utRender, (const void*)frame, requestBytes, &replyBytes));
1028 free(frame);
1029 frame = nullptr;
1030 }
1031
1032 HWTEST_F(AudioRenderTest, AudioRenderRenderFrameWhenFrameIsNull, TestSize.Level1)
1033 {
1034 void *frame = nullptr;
1035 uint64_t requestBytes = FRAME_DATA;
1036 uint64_t replyBytes;
1037 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM,
1038 AudioRenderRenderFrame(render, (const void*)frame, requestBytes, &replyBytes));
1039 }
1040
1041 HWTEST_F(AudioRenderTest, AudioRenderRenderFrameWhenReplyBytesIsNull, TestSize.Level1)
1042 {
1043 void *frame = (void *)calloc(1, FRAME_DATA);
1044 ASSERT_NE(nullptr, frame);
1045 uint64_t requestBytes = FRAME_DATA;
1046 uint64_t *replyBytes = nullptr;
1047 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM,
1048 AudioRenderRenderFrame(render, (const void*)frame, requestBytes, replyBytes));
1049 free(frame);
1050 frame = nullptr;
1051 }
1052
1053 HWTEST_F(AudioRenderTest, AudioRenderRenderFrameWhenRequestBytesGreaterThan16K, TestSize.Level1)
1054 {
1055 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart((AudioHandle)render));
1056 void *frame = (void *)calloc(1, FRAME_DATA);
1057 ASSERT_NE(nullptr, frame);
1058 uint64_t requestBytes = FRAME_DATA + 1;
1059 uint64_t replyBytes;
1060 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL,
1061 AudioRenderRenderFrame(render, (const void*)frame, requestBytes, &replyBytes));
1062 free(frame);
1063 frame = nullptr;
1064 }
1065
1066 HWTEST_F(AudioRenderTest, AudioRenderRenderFrameWhenFormatIsNotSupport, TestSize.Level1)
1067 {
1068 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart((AudioHandle)render));
1069 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1070 hwRender->renderParam.frameRenderMode.attrs.format = AUDIO_FORMAT_AAC_MAIN;
1071 void *frame = (void *)calloc(1, FRAME_DATA);
1072 ASSERT_NE(nullptr, frame);
1073 uint64_t requestBytes = FRAME_DATA;
1074 uint64_t replyBytes;
1075 EXPECT_EQ(HDF_ERR_NOT_SUPPORT,
1076 AudioRenderRenderFrame(render, (const void*)frame, requestBytes, &replyBytes));
1077 free(frame);
1078 frame = nullptr;
1079 }
1080
1081 HWTEST_F(AudioRenderTest, AudioRenderRenderFrameWhenDevDataHandleIsNull, TestSize.Level1)
1082 {
1083 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart((AudioHandle)render));
1084 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1085 struct DevHandle *devDataHandle = hwRender->devDataHandle;
1086 hwRender->devDataHandle = nullptr;
1087 void *frame = (void *)calloc(1, FRAME_DATA);
1088 ASSERT_NE(nullptr, frame);
1089 uint64_t requestBytes = FRAME_DATA;
1090 uint64_t replyBytes;
1091 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL,
1092 AudioRenderRenderFrame(render, (const void*)frame, requestBytes, &replyBytes));
1093 hwRender->devDataHandle = devDataHandle;
1094 free(frame);
1095 frame = nullptr;
1096 }
1097
1098 HWTEST_F(AudioRenderTest, AudioRenderRenderFrameWhenSampleRateIsZero, TestSize.Level1)
1099 {
1100 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart((AudioHandle)render));
1101 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1102 hwRender->renderParam.frameRenderMode.attrs.sampleRate = 0;
1103 void *frame = (void *)calloc(1, FRAME_DATA);
1104 ASSERT_NE(nullptr, frame);
1105 uint64_t requestBytes = FRAME_DATA;
1106 uint64_t replyBytes;
1107 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderRenderFrame(render, (const void*)frame, requestBytes, &replyBytes));
1108 free(frame);
1109 frame = nullptr;
1110 }
1111
1112 HWTEST_F(AudioRenderTest, AudioRenderRenderFrameWhenParamIsValid, TestSize.Level1)
1113 {
1114 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart((AudioHandle)render));
1115 void *frame = (void *)calloc(1, FRAME_DATA);
1116 ASSERT_NE(nullptr, frame);
1117 uint64_t requestBytes = FRAME_DATA;
1118 uint64_t replyBytes;
1119 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderRenderFrame(render, (const void*)frame, requestBytes, &replyBytes));
1120 free(frame);
1121 frame = nullptr;
1122 }
1123
1124 HWTEST_F(AudioRenderTest, AudioRenderGetRenderPositionWhenRenderIsNull, TestSize.Level1)
1125 {
1126 struct AudioRender *utRender = nullptr;
1127 uint64_t frames = 1024;
1128 struct AudioTimeStamp *time = new AudioTimeStamp;
1129 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetRenderPosition(utRender, &frames, time));
1130 delete(time);
1131 time = nullptr;
1132 }
1133
1134 HWTEST_F(AudioRenderTest, AudioRenderGetRenderPositionWhenFramesIsNull, TestSize.Level1)
1135 {
1136 uint64_t *frames = nullptr;
1137 struct AudioTimeStamp *time = new AudioTimeStamp;
1138 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetRenderPosition(render, frames, time));
1139 delete(time);
1140 time = nullptr;
1141 }
1142
1143 HWTEST_F(AudioRenderTest, AudioRenderGetRenderPositionWhenTimeIsNull, TestSize.Level1)
1144 {
1145 uint64_t frames = 1024;
1146 struct AudioTimeStamp *time = nullptr;
1147 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetRenderPosition(render, &frames, time));
1148 }
1149
1150 HWTEST_F(AudioRenderTest, AudioRenderGetRenderPositionWhenParamIsValid, TestSize.Level1)
1151 {
1152 uint64_t frames = 1024;
1153 struct AudioTimeStamp *time = new AudioTimeStamp;
1154 EXPECT_EQ(HDF_SUCCESS, AudioRenderGetRenderPosition(render, &frames, time));
1155 delete(time);
1156 time = nullptr;
1157 }
1158
1159 HWTEST_F(AudioRenderTest, AudioRenderSetRenderSpeedWhenRenderIsNull, TestSize.Level1)
1160 {
1161 struct AudioRender *utRender = nullptr;
1162 float speed = 1.0;
1163 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetRenderSpeed(utRender, speed));
1164 }
1165
1166 HWTEST_F(AudioRenderTest, AudioRenderSetRenderSpeedWhenParamIsValid, TestSize.Level1)
1167 {
1168 float speed = 1.0;
1169 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, AudioRenderSetRenderSpeed(render, speed));
1170 }
1171
1172 HWTEST_F(AudioRenderTest, AudioRenderGetRenderSpeedWhenRenderIsNull, TestSize.Level1)
1173 {
1174 struct AudioRender *utRender = nullptr;
1175 float speed = 1.0;
1176 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetRenderSpeed(utRender, &speed));
1177 }
1178
1179 HWTEST_F(AudioRenderTest, AudioRenderGetRenderSpeedWhenSpeedIsNull, TestSize.Level1)
1180 {
1181 float *speed = nullptr;
1182 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetRenderSpeed(render, speed));
1183 }
1184
1185 HWTEST_F(AudioRenderTest, AudioRenderGetRenderSpeedWhenParamIsValid, TestSize.Level1)
1186 {
1187 float speed = 1.0;
1188 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, AudioRenderGetRenderSpeed(render, &speed));
1189 }
1190
1191 HWTEST_F(AudioRenderTest, AudioRenderSetChannelModeWhenRenderIsNull, TestSize.Level1)
1192 {
1193 struct AudioRender *utRender = nullptr;
1194 AudioChannelMode mode = AUDIO_CHANNEL_NORMAL;
1195 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetChannelMode(utRender, mode));
1196 }
1197
1198 HWTEST_F(AudioRenderTest, AudioRenderSetChannelModeWhenDevCtlHandleIsNull, TestSize.Level1)
1199 {
1200 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1201 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
1202 hwRender->devCtlHandle = nullptr;
1203 AudioChannelMode mode = AUDIO_CHANNEL_NORMAL;
1204 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSetChannelMode((struct AudioRender *)hwRender, mode));
1205 hwRender->devCtlHandle = devCtlHandle;
1206 }
1207
1208 HWTEST_F(AudioRenderTest, AudioRenderSetChannelModeWhenDevCtlHandleIsError, TestSize.Level1)
1209 {
1210 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1211 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
1212 struct HdfIoService *service = new HdfIoService;
1213 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
1214 hwRender->devCtlHandle = reinterpret_cast<struct DevHandle *>(service);
1215 AudioChannelMode mode = AUDIO_CHANNEL_NORMAL;
1216 #ifdef ALSA_LIB_MODE
1217 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetChannelMode((struct AudioRender *)hwRender, mode));
1218 #else
1219 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSetChannelMode((struct AudioRender *)hwRender, mode));
1220 #endif
1221 hwRender->devCtlHandle = devCtlHandle;
1222 delete(service);
1223 service = nullptr;
1224 }
1225
1226 HWTEST_F(AudioRenderTest, AudioRenderSetChannelModeWhenParamIsValid, TestSize.Level1)
1227 {
1228 AudioChannelMode mode = AUDIO_CHANNEL_NORMAL;
1229 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetChannelMode(render, mode));
1230 }
1231
1232 HWTEST_F(AudioRenderTest, AudioRenderGetChannelModeWhenRenderIsNull, TestSize.Level1)
1233 {
1234 struct AudioRender *utRender = nullptr;
1235 AudioChannelMode mode = AUDIO_CHANNEL_NORMAL;
1236 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetChannelMode(utRender, &mode));
1237 }
1238
1239 HWTEST_F(AudioRenderTest, AudioRenderGetChannelModeWhenModeIsNull, TestSize.Level1)
1240 {
1241 AudioChannelMode *mode = nullptr;
1242 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetChannelMode(render, mode));
1243 }
1244
1245 HWTEST_F(AudioRenderTest, AudioRenderGetChannelModeWhenDevCtlHandleIsNull, TestSize.Level1)
1246 {
1247 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1248 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
1249 hwRender->devCtlHandle = nullptr;
1250 AudioChannelMode mode = AUDIO_CHANNEL_NORMAL;
1251 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetChannelMode((struct AudioRender *)hwRender, &mode));
1252 hwRender->devCtlHandle = devCtlHandle;
1253 }
1254
1255 HWTEST_F(AudioRenderTest, AudioRenderGetChannelModeWhenDevCtlHandleIsError, TestSize.Level1)
1256 {
1257 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1258 struct DevHandle *devCtlHandle = hwRender->devCtlHandle;
1259 struct HdfIoService *service = new HdfIoService;
1260 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
1261 hwRender->devCtlHandle = reinterpret_cast<struct DevHandle *>(service);
1262 AudioChannelMode mode = AUDIO_CHANNEL_NORMAL;
1263 #ifdef ALSA_LIB_MODE
1264 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetChannelMode((struct AudioRender *)hwRender, &mode));
1265 #else
1266 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetChannelMode((struct AudioRender *)hwRender, &mode));
1267 #endif
1268 hwRender->devCtlHandle = devCtlHandle;
1269 delete(service);
1270 service = nullptr;
1271 }
1272
1273 HWTEST_F(AudioRenderTest, AudioRenderGetChannelModeWhenParamIsValid, TestSize.Level1)
1274 {
1275 AudioChannelMode mode = AUDIO_CHANNEL_NORMAL;
1276 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetChannelMode(render, &mode));
1277 }
1278
1279 HWTEST_F(AudioRenderTest, AudioRenderDrainBufferWhenTypeIsNull, TestSize.Level1)
1280 {
1281 AudioDrainNotifyType *type = nullptr;
1282 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderDrainBuffer(render, type));
1283 }
1284
1285 HWTEST_F(AudioRenderTest, AudioRenderDrainBufferWhenParamIsNotSupport, TestSize.Level1)
1286 {
1287 AudioDrainNotifyType *type = new AudioDrainNotifyType;
1288 EXPECT_EQ(AUDIO_HAL_ERR_NOT_SUPPORT, AudioRenderDrainBuffer(render, type));
1289 delete(type);
1290 type = nullptr;
1291 }
1292
1293 HWTEST_F(AudioRenderTest, AudioRenderTurnStandbyModeWhenHandleIsNull, TestSize.Level1)
1294 {
1295 AudioHwRender *hwRender = nullptr;
1296 AudioHandle handle = (AudioHandle)hwRender;
1297 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderTurnStandbyMode(handle));
1298 }
1299
1300 HWTEST_F(AudioRenderTest, AudioRenderTurnStandbyModeWhenStopIsError, TestSize.Level1)
1301 {
1302 AudioHandle handle = (AudioHandle)render;
1303 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderTurnStandbyMode(handle));
1304 }
1305
1306 HWTEST_F(AudioRenderTest, AudioRenderTurnStandbyModeWhenParamIsValid, TestSize.Level1)
1307 {
1308 AudioHandle handle = (AudioHandle)render;
1309 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderStart(handle));
1310 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderTurnStandbyMode(handle));
1311 }
1312
1313 HWTEST_F(AudioRenderTest, AudioRenderRegCallbackWhenRenderIsNull, TestSize.Level1)
1314 {
1315 struct AudioRender *utRender = nullptr;
1316 RenderCallback callback = AudioRenderCallbackUtTest;
1317 void *cookie = nullptr;
1318 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderRegCallback(utRender, callback, cookie));
1319 }
1320
1321 HWTEST_F(AudioRenderTest, AudioRenderRegCallbackWhenParamIsValid, TestSize.Level1)
1322 {
1323 RenderCallback callback = AudioRenderCallbackUtTest;
1324 void *cookie = nullptr;
1325 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderRegCallback(render, callback, cookie));
1326 }
1327
1328 HWTEST_F(AudioRenderTest, CallbackProcessingWhenHandleIsNull, TestSize.Level1)
1329 {
1330 AudioHwRender *hwRender = nullptr;
1331 AudioHandle handle = (AudioHandle)hwRender;
1332 AudioCallbackType callBackType = AUDIO_ERROR_OCCUR;
1333 EXPECT_EQ(HDF_FAILURE, CallbackProcessing(handle, callBackType));
1334 }
1335
1336 HWTEST_F(AudioRenderTest, CallbackProcessingWhenCallbackIsNull, TestSize.Level1)
1337 {
1338 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1339 hwRender->renderParam.frameRenderMode.callback = NULL;
1340 AudioHandle handle = (AudioHandle)hwRender;
1341 AudioCallbackType callBackType = AUDIO_ERROR_OCCUR;
1342 EXPECT_EQ(HDF_FAILURE, CallbackProcessing(handle, callBackType));
1343 }
1344
1345 HWTEST_F(AudioRenderTest, CallbackProcessingWhenCallbackIsError, TestSize.Level1)
1346 {
1347 RenderCallback callback = AudioRenderCallbackUtTest;
1348 void *cookie = nullptr;
1349 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderRegCallback(render, callback, cookie));
1350 AudioHandle handle = (AudioHandle)render;
1351 int32_t callBackType = AUDIO_ERROR_OCCUR + 1;
1352 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, CallbackProcessing(handle, (enum AudioCallbackType)callBackType));
1353 }
1354
1355 HWTEST_F(AudioRenderTest, CallbackProcessingWhenParamIsValid, TestSize.Level1)
1356 {
1357 RenderCallback callback = AudioRenderCallbackUtTest;
1358 void *cookie = nullptr;
1359 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderRegCallback(render, callback, cookie));
1360 AudioHandle handle = (AudioHandle)render;
1361 AudioCallbackType callBackType = AUDIO_ERROR_OCCUR;
1362 EXPECT_EQ(HDF_SUCCESS, CallbackProcessing(handle, callBackType));
1363 }
1364
1365 HWTEST_F(AudioRenderTest, AudioRenderSetExtraParamsWhenRenderIsNull, TestSize.Level1)
1366 {
1367 AudioHwRender *hwRender = nullptr;
1368 AudioHandle handle = (AudioHandle)hwRender;
1369 char keyValueList[] = "attr-route=1;attr-format=32;attr-channels=2;attr-frame-count=82;attr-sampling-rate=48000";
1370 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetExtraParams(handle, keyValueList));
1371 }
1372
1373 HWTEST_F(AudioRenderTest, AudioRenderSetExtraParamsWhenParamIsNull, TestSize.Level1)
1374 {
1375 char *keyValueList = nullptr;
1376 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderSetExtraParams(render, keyValueList));
1377 }
1378
1379 HWTEST_F(AudioRenderTest, AudioRenderSetExtraParamsWhenParamIsError, TestSize.Level1)
1380 {
1381 char keyValueList[] = "attr-route=1;attr-format=32;attr-channels=2;\
1382 attr-frame-count=82;attr-sampling-rate=48000;attr-para=123";
1383 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderSetExtraParams(render, keyValueList));
1384 }
1385
1386 HWTEST_F(AudioRenderTest, AudioRenderSetExtraParamsWhenParamIsValid, TestSize.Level1)
1387 {
1388 char keyValueListOne[] = "attr-frame-count=1024;";
1389 char keyValueListFour[] = "attr-format=32;attr-channels=2;attr-frame-count=4096;attr-sampling-rate=48000";
1390 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetExtraParams(render, keyValueListOne));
1391 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderSetExtraParams(render, keyValueListFour));
1392 }
1393
1394 HWTEST_F(AudioRenderTest, AudioRenderGetExtraParamsWhenRenderIsNull, TestSize.Level1)
1395 {
1396 AudioHwRender *hwRender = nullptr;
1397 AudioHandle handle = (AudioHandle)hwRender;
1398 int32_t listLenth = PARAMS_LEN;
1399 char keyValueListValue[PARAMS_LEN] = {};
1400 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetExtraParams(handle, keyValueListValue, listLenth));
1401 }
1402
1403 HWTEST_F(AudioRenderTest, AudioRenderGetExtraParamsWhenParamIsNull, TestSize.Level1)
1404 {
1405 int32_t listLenth = PARAMS_LEN;
1406 char* keyValueListValue = nullptr;
1407 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetExtraParams(render, keyValueListValue, listLenth));
1408 }
1409
1410 HWTEST_F(AudioRenderTest, AudioRenderGetExtraParamsWhenParamIsError0, TestSize.Level1)
1411 {
1412 int32_t listLenth = 0;
1413 char keyValueListValue[PARAMS_LEN] = {};
1414 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetExtraParams(render, keyValueListValue, listLenth));
1415 listLenth = PARAMS_ERR;
1416 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioRenderGetExtraParams(render, keyValueListValue, listLenth));
1417 }
1418
1419 HWTEST_F(AudioRenderTest, AudioRenderGetExtraParamsWhenParamIsValid, TestSize.Level1)
1420 {
1421 int32_t listLenth = PARAMS_LEN;
1422 char keyValueListValue[PARAMS_LEN] = {};
1423 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioRenderGetExtraParams(render, keyValueListValue, listLenth));
1424 }
1425
1426 HWTEST_F(AudioRenderTest, AudioRenderReqMmapBufferWhenRenderIsNull, TestSize.Level1)
1427 {
1428 AudioHwRender *hwRender = nullptr;
1429 AudioHandle handle = (AudioHandle)hwRender;
1430 int32_t reqSize = REQ_SIZE;
1431 struct AudioMmapBufferDescripter desc;
1432 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderReqMmapBuffer(handle, reqSize, &desc));
1433 }
1434
1435 HWTEST_F(AudioRenderTest, AudioRenderReqMmapBufferWhenDevCtlHandleIsNull, TestSize.Level1)
1436 {
1437 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1438 struct DevHandle *devDataHandle = hwRender->devDataHandle;
1439 hwRender->devDataHandle = nullptr;
1440 struct AudioMmapBufferDescripter desc;
1441 int32_t reqSize = REQ_SIZE;
1442 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderReqMmapBuffer((struct AudioRender *)hwRender, reqSize, &desc));
1443 hwRender->devDataHandle = devDataHandle;
1444 }
1445
1446 HWTEST_F(AudioRenderTest, AudioRenderReqMmapBufferWhenDevCtlHandleIsError, TestSize.Level1)
1447 {
1448 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1449 struct DevHandle *devDataHandle = hwRender->devDataHandle;
1450 struct HdfIoService *service = new HdfIoService;
1451 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
1452 hwRender->devDataHandle = reinterpret_cast<struct DevHandle *>(service);
1453 struct AudioMmapBufferDescripter desc;
1454 int32_t reqSize = REQ_SIZE;
1455 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderReqMmapBuffer((struct AudioRender *)hwRender, reqSize, &desc));
1456 hwRender->devDataHandle = devDataHandle;
1457 delete(service);
1458 service = nullptr;
1459 }
1460
1461 HWTEST_F(AudioRenderTest, AudioRenderReqMmapBufferWhenDescIsNull, TestSize.Level1)
1462 {
1463 struct AudioMmapBufferDescripter *desc = nullptr;
1464 int32_t reqSize = REQ_SIZE;
1465 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderReqMmapBuffer(render, reqSize, desc));
1466 }
1467
1468 HWTEST_F(AudioRenderTest, AudioRenderReqMmapBufferWhenFormatIsError, TestSize.Level1)
1469 {
1470 struct AudioMmapBufferDescripter desc;
1471 int32_t reqSize = REQ_SIZE;
1472 struct AudioHwRender *hwRender = (struct AudioHwRender *)render;
1473 AudioFormat tempFormat = hwRender->renderParam.frameRenderMode.attrs.format;
1474 hwRender->renderParam.frameRenderMode.attrs.format = AUDIO_FORMAT_G726;
1475 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, AudioRenderReqMmapBuffer(render, reqSize, &desc));
1476 hwRender->renderParam.frameRenderMode.attrs.format = tempFormat;
1477 }
1478
1479 HWTEST_F(AudioRenderTest, AudioRenderGetMmapPositionWhenRenderIsNull, TestSize.Level1)
1480 {
1481 AudioHwRender *hwRender = nullptr;
1482 AudioHandle handle = (AudioHandle)hwRender;
1483 uint64_t frames = REQ_SIZE;
1484 struct AudioTimeStamp time;
1485 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetMmapPosition(handle, &frames, &time));
1486 }
1487
1488 HWTEST_F(AudioRenderTest, AudioRenderGetMmapPositionWhenFramesIsNull, TestSize.Level1)
1489 {
1490 uint64_t *frames = nullptr;
1491 struct AudioTimeStamp time;
1492 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetMmapPosition(render, frames, &time));
1493 }
1494
1495 HWTEST_F(AudioRenderTest, AudioRenderGetMmapPositionWhenTimeIsNull, TestSize.Level1)
1496 {
1497 uint64_t frames = REQ_SIZE;
1498 struct AudioTimeStamp *time = nullptr;
1499 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderGetMmapPosition(render, &frames, time));
1500 }
1501
1502 HWTEST_F(AudioRenderTest, AudioRenderAudioDevDumpWhenRenderIsNull, TestSize.Level1)
1503 {
1504 AudioHwRender *hwRender = nullptr;
1505 AudioHandle handle = (AudioHandle)hwRender;
1506 int32_t range = 0;
1507 int32_t fd = 0;
1508 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioRenderAudioDevDump(handle, range, fd));
1509 }
1510 }
1511