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 AudioCaptureTest : 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 AudioCapture *capture = nullptr;
33
34 virtual void SetUp();
35 virtual void TearDown();
36 };
37
SetUp()38 void AudioCaptureTest::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, InitDevDescCapture(devDesc));
48 ASSERT_EQ(HDF_SUCCESS, InitAttrsCapture(attrs));
49 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioAdapterCreateCapture(adapter, &devDesc, &attrs, &capture));
50 }
51
TearDown()52 void AudioCaptureTest::TearDown()
53 {
54 ASSERT_EQ(HDF_SUCCESS, AudioAdapterDestroyCapture(adapter, capture));
55 managerFuncs->UnloadAdapter(managerFuncs, adapter);
56 adapter = nullptr;
57 }
58
59 HWTEST_F(AudioCaptureTest, AudioCaptureStartWhenHandleIsNull, TestSize.Level1)
60 {
61 AudioHwCapture *hwCapture = nullptr;
62 AudioHandle handle = (AudioHandle)hwCapture;
63 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureStart(handle));
64 }
65
66 HWTEST_F(AudioCaptureTest, AudioCaptureStartWhenBufferIsNotNull, TestSize.Level1)
67 {
68 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
69 AudioHandle handle = (AudioHandle)hwCapture;
70 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
71 EXPECT_EQ(AUDIO_HAL_ERR_AI_BUSY, AudioCaptureStart(handle));
72 }
73
74 HWTEST_F(AudioCaptureTest, AudioCaptureStartWhenDevDataHandleIsNull, TestSize.Level1)
75 {
76 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
77 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
78 hwCapture->devDataHandle = nullptr;
79 AudioHandle handle = (AudioHandle)hwCapture;
80 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureStart(handle));
81 hwCapture->devDataHandle = devDataHandle;
82 }
83
84 HWTEST_F(AudioCaptureTest, AudioCaptureStartWhenDevDataHandleIsError, TestSize.Level1)
85 {
86 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
87 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
88 struct HdfIoService *service = new HdfIoService;
89 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
90 hwCapture->devDataHandle = reinterpret_cast<struct DevHandleCapture *>(service);
91 AudioHandle handle = (AudioHandle)hwCapture;
92 #ifdef ALSA_LIB_MODE
93 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
94 #else
95 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureStart(handle));
96 #endif
97 hwCapture->devDataHandle = devDataHandle;
98 delete(service);
99 service = nullptr;
100 }
101
102 HWTEST_F(AudioCaptureTest, AudioCaptureStartWhenParamIsValid, TestSize.Level1)
103 {
104 AudioHandle handle = (AudioHandle)capture;
105 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
106 }
107
108 HWTEST_F(AudioCaptureTest, AudioCaptureStopWhenHandleIsNull, TestSize.Level1)
109 {
110 struct AudioHwCapture *hwCapture = nullptr;
111 AudioHandle handle = (AudioHandle)hwCapture;
112 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureStop(handle));
113 }
114
115 HWTEST_F(AudioCaptureTest, AudioCaptureStopWhenDevDataHandleIsNull, TestSize.Level1)
116 {
117 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
118 AudioHandle handle = (AudioHandle)hwCapture;
119 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
120 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
121 hwCapture->devDataHandle = nullptr;
122 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureStop(handle));
123 hwCapture->devDataHandle = devDataHandle;
124 }
125
126 HWTEST_F(AudioCaptureTest, AudioCaptureStopWhenBufferIsNull, TestSize.Level1)
127 {
128 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
129 hwCapture->captureParam.frameCaptureMode.buffer = nullptr;
130 AudioHandle handle = (AudioHandle)hwCapture;
131 EXPECT_EQ(AUDIO_HAL_ERR_NOT_SUPPORT, AudioCaptureStop(handle));
132 }
133
134 HWTEST_F(AudioCaptureTest, AudioCaptureStopWhenDevDataHandleIsError, TestSize.Level1)
135 {
136 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
137 AudioHandle handle = (AudioHandle)hwCapture;
138 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
139 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
140 struct HdfIoService *service = new HdfIoService;
141 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
142 hwCapture->devDataHandle = reinterpret_cast<struct DevHandleCapture *>(service);
143 #ifdef ALSA_LIB_MODE
144 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStop(handle));
145 #else
146 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureStop(handle));
147 #endif
148 hwCapture->devDataHandle = devDataHandle;
149 delete(service);
150 service = nullptr;
151 }
152
153 HWTEST_F(AudioCaptureTest, AudioCaptureStopWhenParamIsValid, TestSize.Level1)
154 {
155 AudioHandle handle = (AudioHandle)capture;
156 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
157 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStop(handle));
158 }
159
160 HWTEST_F(AudioCaptureTest, AudioCapturePauseWhenHandleIsNull, TestSize.Level1)
161 {
162 AudioHwCapture *hwCapture = nullptr;
163 AudioHandle handle = (AudioHandle)hwCapture;
164 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCapturePause(handle));
165 }
166
167 HWTEST_F(AudioCaptureTest, AudioCapturePauseWhenBufferIsNull, TestSize.Level1)
168 {
169 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
170 hwCapture->captureParam.frameCaptureMode.buffer = nullptr;
171 AudioHandle handle = (AudioHandle)hwCapture;
172 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCapturePause(handle));
173 }
174
175 HWTEST_F(AudioCaptureTest, AudioCapturePauseWhenPauseIsTrue, TestSize.Level1)
176 {
177 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
178 hwCapture->captureParam.captureMode.ctlParam.pause = true;
179 AudioHandle handle = (AudioHandle)hwCapture;
180 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
181 EXPECT_EQ(AUDIO_HAL_ERR_NOT_SUPPORT, AudioCapturePause(handle));
182 }
183
184 HWTEST_F(AudioCaptureTest, AudioCapturePauseWhenDevDataHandleIsNull, TestSize.Level1)
185 {
186 struct AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
187 AudioHandle handle = (AudioHandle)hwCapture;
188 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
189 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
190 hwCapture->devDataHandle = nullptr;
191 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCapturePause(handle));
192 hwCapture->devDataHandle = devDataHandle;
193 }
194
195 HWTEST_F(AudioCaptureTest, AudioCapturePauseWhenDevDataHandleIsError, TestSize.Level1)
196 {
197 struct AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
198 AudioHandle handle = (AudioHandle)hwCapture;
199 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
200 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
201 struct HdfIoService *service = new HdfIoService;
202 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
203 hwCapture->devDataHandle = reinterpret_cast<struct DevHandleCapture *>(service);
204 #ifdef ALSA_LIB_MODE
205 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCapturePause(handle));
206 #else
207 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCapturePause(handle));
208 #endif
209 hwCapture->devDataHandle = devDataHandle;
210 delete(service);
211 service = nullptr;
212 }
213
214 HWTEST_F(AudioCaptureTest, AudioCapturePauseWhenParamValid, TestSize.Level1)
215 {
216 AudioHandle handle = (AudioHandle)capture;
217 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
218 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCapturePause(handle));
219 }
220
221 HWTEST_F(AudioCaptureTest, AudioCaptureResumeWhenHandleIsNull, TestSize.Level1)
222 {
223 struct AudioHwCapture *hwCapture = nullptr;
224 AudioHandle handle = (AudioHandle)hwCapture;
225 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureResume(handle));
226 }
227
228 HWTEST_F(AudioCaptureTest, AudioCaptureResumeWhenPauseIsFalse, TestSize.Level1)
229 {
230 AudioHandle handle = (AudioHandle)capture;
231 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
232 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
233 hwCapture->captureParam.captureMode.ctlParam.pause = false;
234 handle = (AudioHandle)hwCapture;
235 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, AudioCaptureResume(handle));
236 }
237
238 HWTEST_F(AudioCaptureTest, AudioCaptureResumeWhenDevDataHandleIsNull, TestSize.Level1)
239 {
240 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
241 AudioHandle handle = (AudioHandle)hwCapture;
242 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
243 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCapturePause(handle));
244 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
245 hwCapture->devDataHandle = nullptr;
246 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureResume(handle));
247 hwCapture->devDataHandle = devDataHandle;
248 }
249
250 HWTEST_F(AudioCaptureTest, AudioCaptureResumeWhenDevDataHandleIsError, TestSize.Level1)
251 {
252 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
253 AudioHandle handle = (AudioHandle)hwCapture;
254 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
255 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCapturePause(handle));
256 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
257 struct HdfIoService *service = new HdfIoService;
258 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
259 hwCapture->devDataHandle = reinterpret_cast<struct DevHandleCapture *>(service);
260 #ifdef ALSA_LIB_MODE
261 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureResume(handle));
262 #else
263 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureResume(handle));
264 #endif
265 hwCapture->devDataHandle = devDataHandle;
266 delete(service);
267 service = nullptr;
268 }
269
270 HWTEST_F(AudioCaptureTest, AudioCaptureResumeWhenParamValid, TestSize.Level1)
271 {
272 AudioHandle handle = (AudioHandle)capture;
273 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
274 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCapturePause(handle));
275 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureResume(handle));
276 }
277
278 HWTEST_F(AudioCaptureTest, AudioCaptureFlushWhenHandleIsNull, TestSize.Level1)
279 {
280 AudioHwCapture *hwCapture = nullptr;
281 AudioHandle handle = (AudioHandle)hwCapture;
282 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureFlush(handle));
283 }
284
285 HWTEST_F(AudioCaptureTest, AudioCaptureFlushWhenParamIsValid, TestSize.Level1)
286 {
287 EXPECT_EQ(AUDIO_HAL_ERR_NOT_SUPPORT, AudioCaptureFlush(capture));
288 }
289
290 HWTEST_F(AudioCaptureTest, AudioCaptureGetFrameSizeWhenHandleIsNull, TestSize.Level1)
291 {
292 AudioHwCapture *hwCapture = nullptr;
293 AudioHandle handle = (AudioHandle)hwCapture;
294 uint64_t size = FRAME_DATA;
295 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetFrameSize(handle, &size));
296 }
297
298 HWTEST_F(AudioCaptureTest, AudioCaptureGetFrameSizeWhenSizeIsNull, TestSize.Level1)
299 {
300 AudioHandle handle = (AudioHandle)capture;
301 uint64_t *frameSize = nullptr;
302 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetFrameSize(handle, frameSize));
303 }
304
305 HWTEST_F(AudioCaptureTest, AudioCaptureGetFrameSizeWhenParamIsNotSupport, TestSize.Level1)
306 {
307 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
308 hwCapture->captureParam.frameCaptureMode.attrs.format = AUDIO_FORMAT_AAC_MAIN;
309 AudioHandle handle = (AudioHandle)hwCapture;
310 uint64_t frameSize = FRAME_DATA;
311 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, AudioCaptureGetFrameSize(handle, &frameSize));
312 }
313
314 HWTEST_F(AudioCaptureTest, AudioCaptureGetFrameSizeWhenParamValid, TestSize.Level1)
315 {
316 AudioHandle handle = (AudioHandle)capture;
317 uint64_t frameSize = FRAME_DATA;
318 EXPECT_EQ(HDF_SUCCESS, AudioCaptureGetFrameSize(handle, &frameSize));
319 }
320
321 HWTEST_F(AudioCaptureTest, AudioCaptureGetFrameCountWhenHandleIsNull, TestSize.Level1)
322 {
323 AudioHwCapture *hwCapture = nullptr;
324 AudioHandle handle = (AudioHandle)hwCapture;
325 uint64_t count = FRAME_DATA;
326 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetFrameCount(handle, &count));
327 }
328
329 HWTEST_F(AudioCaptureTest, AudioCaptureGetFrameCountWhenCountIsNull, TestSize.Level1)
330 {
331 AudioHandle handle = (AudioHandle)capture;
332 uint64_t *count = nullptr;
333 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetFrameCount(handle, count));
334 }
335
336 HWTEST_F(AudioCaptureTest, AudioCaptureGetFrameCountWhenParamIsValid, TestSize.Level1)
337 {
338 AudioHandle handle = (AudioHandle)capture;
339 uint64_t count = FRAME_DATA;
340 EXPECT_EQ(HDF_SUCCESS, AudioCaptureGetFrameCount(handle, &count));
341 }
342
343 HWTEST_F(AudioCaptureTest, AudioCaptureSetSampleAttributesWhenHandleIsNull, TestSize.Level1)
344 {
345 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureSetSampleAttributes(nullptr, &attrs));
346 }
347
348 HWTEST_F(AudioCaptureTest, AudioCaptureSetSampleAttributesWhenAttrsIsNull, TestSize.Level1)
349 {
350 AudioHandle handle = (AudioHandle)capture;
351 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureSetSampleAttributes(handle, nullptr));
352 }
353
354 HWTEST_F(AudioCaptureTest, AudioCaptureSetSampleAttributesWhenDevDataHandleIsNull, TestSize.Level1)
355 {
356 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
357 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
358 hwCapture->devDataHandle = nullptr;
359 AudioHandle handle = (AudioHandle)hwCapture;
360 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureSetSampleAttributes(handle, &attrs));
361 hwCapture->devDataHandle = devDataHandle;
362 }
363
364 HWTEST_F(AudioCaptureTest, AudioCaptureSetSampleAttributesWhenFormatIsError, TestSize.Level1)
365 {
366 AudioHandle handle = (AudioHandle)capture;
367 AudioFormat format = attrs.format;
368 attrs.format = AUDIO_FORMAT_G711A;
369 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, AudioCaptureSetSampleAttributes(handle, &attrs));
370 attrs.format = format;
371 }
372
373 HWTEST_F(AudioCaptureTest, AudioCaptureSetSampleAttributesWhenDevDataHandleIsError, TestSize.Level1)
374 {
375 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
376 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
377 struct HdfIoService *service = new HdfIoService;
378 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
379 hwCapture->devDataHandle = reinterpret_cast<struct DevHandleCapture *>(service);
380 AudioHandle handle = (AudioHandle)hwCapture;
381 #ifdef ALSA_LIB_MODE
382 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureSetSampleAttributes(handle, &attrs));
383 #else
384 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureSetSampleAttributes(handle, &attrs));
385 #endif
386 hwCapture->devDataHandle = devDataHandle;
387 delete(service);
388 service = nullptr;
389 }
390
391 HWTEST_F(AudioCaptureTest, AudioCaptureSetSampleAttributesWhenParamIsValid, TestSize.Level1)
392 {
393 AudioHandle handle = (AudioHandle)capture;
394 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureSetSampleAttributes(handle, &attrs));
395 }
396
397 HWTEST_F(AudioCaptureTest, AudioCaptureGetSampleAttributesWhenHandleIsNull, TestSize.Level1)
398 {
399 AudioSampleAttributes *attrs = new AudioSampleAttributes;
400 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetSampleAttributes(nullptr, attrs));
401 delete(attrs);
402 attrs = nullptr;
403 }
404
405 HWTEST_F(AudioCaptureTest, AudioCaptureGetSampleAttributesWhenAttrsIsNull, TestSize.Level1)
406 {
407 AudioHandle handle = (AudioHandle)capture;
408 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetSampleAttributes(handle, nullptr));
409 }
410
411 HWTEST_F(AudioCaptureTest, AudioCaptureGetSampleAttributesWhenParamIsValid, TestSize.Level1)
412 {
413 AudioHandle handle = (AudioHandle)capture;
414 EXPECT_EQ(HDF_SUCCESS, AudioCaptureGetSampleAttributes(handle, &attrs));
415 }
416
417 HWTEST_F(AudioCaptureTest, AudioCaptureGetCurrentChannelIdWhenHandleIsNull, TestSize.Level1)
418 {
419 uint32_t channelIdOne = 1;
420 uint32_t *channelId = &channelIdOne;
421 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetCurrentChannelId(nullptr, channelId));
422 }
423
424 HWTEST_F(AudioCaptureTest, AudioCaptureGetCurrentChannelIdWhenChannelIdIsNull, TestSize.Level1)
425 {
426 AudioHandle handle = (AudioHandle)capture;
427 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetCurrentChannelId(handle, nullptr));
428 }
429
430 HWTEST_F(AudioCaptureTest, AudioCaptureGetCurrentChannelIdWhenParamIsValid, TestSize.Level1)
431 {
432 AudioHandle handle = (AudioHandle)capture;
433 uint32_t channelId = 1;
434 EXPECT_EQ(HDF_SUCCESS, AudioCaptureGetCurrentChannelId(handle, &channelId));
435 }
436
437 HWTEST_F(AudioCaptureTest, AudioCaptureCheckSceneCapabilityWhenHandleIsNull, TestSize.Level1)
438 {
439 const struct AudioSceneDescriptor *scene = new struct AudioSceneDescriptor;
440 bool supported = false;
441 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureCheckSceneCapability(nullptr, scene, &supported));
442 delete(scene);
443 scene = nullptr;
444 }
445
446 HWTEST_F(AudioCaptureTest, AudioCaptureCheckSceneCapabilityWhenSceneIsNull, TestSize.Level1)
447 {
448 AudioHandle handle = (AudioHandle)capture;
449 bool supported = false;
450 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureCheckSceneCapability(handle, nullptr, &supported));
451 }
452
453 HWTEST_F(AudioCaptureTest, AudioCaptureCheckSceneCapabilityWhenSupportedIsNull, TestSize.Level1)
454 {
455 AudioHandle handle = (AudioHandle)capture;
456 const struct AudioSceneDescriptor *scene = new struct AudioSceneDescriptor;
457 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureCheckSceneCapability(handle, scene, nullptr));
458 delete(scene);
459 scene = nullptr;
460 }
461
462 HWTEST_F(AudioCaptureTest, AudioCaptureCheckSceneCapabilityWhenPinsIsError, TestSize.Level1)
463 {
464 AudioHandle handle = (AudioHandle)capture;
465 struct AudioSceneDescriptor scene;
466 scene.scene.id = AUDIO_IN_MEDIA;
467 scene.desc.pins = PIN_NONE;
468 bool supported = false;
469 /* to support different products */
470 int32_t ret = AudioCaptureCheckSceneCapability(handle, &scene, &supported);
471 if ((ret == AUDIO_HAL_ERR_NOT_SUPPORT) || (ret == AUDIO_HAL_ERR_INTERNAL)) {
472 EXPECT_TRUE(true);
473 }
474 }
475
476 HWTEST_F(AudioCaptureTest, AudioCaptureCheckSceneCapabilityWhenParamIsValid, TestSize.Level1)
477 {
478 AudioHandle handle = (AudioHandle)capture;
479 struct AudioSceneDescriptor scene;
480 scene.scene.id = AUDIO_IN_MEDIA;
481 scene.desc.pins = PIN_IN_MIC;
482 bool supported = false;
483 /* to support different products */
484 int32_t ret = AudioCaptureCheckSceneCapability(handle, &scene, &supported);
485 if ((ret == AUDIO_HAL_SUCCESS) || (ret == AUDIO_HAL_ERR_NOT_SUPPORT)) {
486 EXPECT_TRUE(true);
487 }
488 }
489
490 HWTEST_F(AudioCaptureTest, AudioCaptureSelectSceneWhenHandleIsNull, TestSize.Level1)
491 {
492 AudioHwCapture *hwCapture = nullptr;
493 AudioHandle handle = (AudioHandle)hwCapture;
494 const struct AudioSceneDescriptor *scene = new struct AudioSceneDescriptor;
495 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureSelectScene(handle, scene));
496 delete(scene);
497 scene = nullptr;
498 }
499
500 HWTEST_F(AudioCaptureTest, AudioCaptureSelectSceneWhenSceneIsNull, TestSize.Level1)
501 {
502 AudioHandle handle = (AudioHandle)capture;
503 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureSelectScene(handle, nullptr));
504 }
505
506 HWTEST_F(AudioCaptureTest, AudioCaptureSelectSceneWhenDevCtlHandleIsNull, TestSize.Level1)
507 {
508 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
509 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
510 hwCapture->devCtlHandle = nullptr;
511 AudioHandle handle = (AudioHandle)hwCapture;
512 struct AudioSceneDescriptor *scene = new AudioSceneDescriptor;
513 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureSelectScene(handle, scene));
514 hwCapture->devCtlHandle = devCtlHandle;
515 delete(scene);
516 scene = nullptr;
517 }
518
519 HWTEST_F(AudioCaptureTest, AudioCaptureSelectSceneWhenDevCtlHandleIsError, TestSize.Level1)
520 {
521 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
522 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
523 struct HdfIoService *service = new HdfIoService;
524 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
525 hwCapture->devCtlHandle = reinterpret_cast<struct DevHandleCapture *>(service);
526 AudioHandle handle = (AudioHandle)hwCapture;
527 struct AudioSceneDescriptor scene;
528 scene.scene.id = AUDIO_IN_MEDIA;
529 scene.desc.pins = PIN_IN_MIC;
530 /* to support different products */
531 int32_t ret = AudioCaptureSelectScene(handle, &scene);
532 if ((ret == AUDIO_HAL_ERR_NOT_SUPPORT) || (ret == AUDIO_HAL_ERR_INTERNAL)) {
533 EXPECT_TRUE(true);
534 }
535 hwCapture->devCtlHandle = devCtlHandle;
536 delete(service);
537 service = nullptr;
538 }
539
540 HWTEST_F(AudioCaptureTest, AudioCaptureSelectSceneWhenParamValid, TestSize.Level1)
541 {
542 AudioHandle handle = (AudioHandle)capture;
543 struct AudioSceneDescriptor scene;
544 scene.scene.id = AUDIO_IN_MEDIA;
545 scene.desc.pins = PIN_IN_MIC;
546 /* to support different products */
547 int32_t ret = AudioCaptureSelectScene(handle, &scene);
548 if ((ret == AUDIO_HAL_ERR_NOT_SUPPORT) || (ret == AUDIO_HAL_SUCCESS)) {
549 EXPECT_TRUE(true);
550 }
551 }
552
553 HWTEST_F(AudioCaptureTest, AudioCaptureSetMuteWhenHandleIsNull, TestSize.Level1)
554 {
555 bool mute = true;
556 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureSetMute(nullptr, mute));
557 }
558
559 HWTEST_F(AudioCaptureTest, AudioCaptureSetMuteWhenDevCtlHandleIsNull, TestSize.Level1)
560 {
561 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
562 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
563 hwCapture->devCtlHandle = nullptr;
564 AudioHandle handle = (AudioHandle)hwCapture;
565 bool mute = true;
566 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureSetMute(handle, mute));
567 hwCapture->devCtlHandle = devCtlHandle;
568 }
569
570 HWTEST_F(AudioCaptureTest, AudioCaptureSetMuteWhenDevCtlHandleIsError, TestSize.Level1)
571 {
572 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
573 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
574 struct HdfIoService *service = new HdfIoService;
575 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
576 hwCapture->devCtlHandle = (struct DevHandleCapture *)service;
577 AudioHandle handle = (AudioHandle)hwCapture;
578 bool mute = true;
579 #ifdef ALSA_LIB_MODE
580 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureSetMute(handle, mute));
581 #else
582 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureSetMute(handle, mute));
583 #endif
584 hwCapture->devCtlHandle = devCtlHandle;
585 delete(service);
586 service = nullptr;
587 }
588
589 HWTEST_F(AudioCaptureTest, AudioCaptureSetMuteWhenParamValid, TestSize.Level1)
590 {
591 AudioHandle handle = (AudioHandle)capture;
592 bool mute = true;
593 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureSetMute(handle, mute));
594 mute = false;
595 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureSetMute(handle, mute));
596 }
597
598 HWTEST_F(AudioCaptureTest, AudioCaptureGetMuteWhenHandleIsNull, TestSize.Level1)
599 {
600 AudioHwCapture *hwCapture = nullptr;
601 AudioHandle handle = (AudioHandle)hwCapture;
602 bool mute = false;
603 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetMute(handle, &mute));
604 }
605
606 HWTEST_F(AudioCaptureTest, AudioCaptureGetMuteWhenMuteIsNull, TestSize.Level1)
607 {
608 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetMute((AudioHandle)capture, nullptr));
609 }
610
611 HWTEST_F(AudioCaptureTest, AudioCaptureGetMuteWhenDevCtlHandleIsNull, TestSize.Level1)
612 {
613 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
614 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
615 hwCapture->devCtlHandle = nullptr;
616 AudioHandle handle = (AudioHandle)hwCapture;
617 bool mute = false;
618 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetMute(handle, &mute));
619 hwCapture->devCtlHandle = devCtlHandle;
620 }
621
622 HWTEST_F(AudioCaptureTest, AudioCaptureGetMuteWhenDevCtlHandleIsError, TestSize.Level1)
623 {
624 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
625 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
626 struct HdfIoService *service = new HdfIoService;
627 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
628 hwCapture->devCtlHandle = (struct DevHandleCapture *)service;
629 AudioHandle handle = (AudioHandle)hwCapture;
630 bool mute = false;
631 #ifdef ALSA_LIB_MODE
632 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureGetMute(handle, &mute));
633 #else
634 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetMute(handle, &mute));
635 #endif
636 hwCapture->devCtlHandle = devCtlHandle;
637 delete(service);
638 service = nullptr;
639 }
640
641 HWTEST_F(AudioCaptureTest, AudioCaptureGetMuteWhenParamValid, TestSize.Level1)
642 {
643 bool mute = false;
644 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureGetMute((AudioHandle)capture, &mute));
645 }
646
647 HWTEST_F(AudioCaptureTest, AudioCaptureSetVolumeWhenHandleIsNull, TestSize.Level1)
648 {
649 float volume = 0;
650 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureSetVolume(nullptr, volume));
651 }
652
653 HWTEST_F(AudioCaptureTest, AudioCaptureSetVolumeWhenDevCtlHandleIsNull, TestSize.Level1)
654 {
655 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
656 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
657 hwCapture->devCtlHandle = nullptr;
658 AudioHandle handle = (AudioHandle)hwCapture;
659 float volume = 0;
660 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureSetVolume(handle, volume));
661 hwCapture->devCtlHandle = devCtlHandle;
662 }
663
664 HWTEST_F(AudioCaptureTest, AudioCaptureSetVolumeWhenVolumeLessThanZero, TestSize.Level1)
665 {
666 float volume = -1;
667 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureSetVolume((AudioHandle)capture, volume));
668 }
669
670 HWTEST_F(AudioCaptureTest, AudioCaptureSetVolumeWhenHandleIsError, TestSize.Level1)
671 {
672 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
673 hwCapture->captureParam.captureMode.ctlParam.volThreshold.volMax = 0;
674 hwCapture->captureParam.captureMode.ctlParam.volThreshold.volMin = 1;
675 AudioHandle handle = (AudioHandle)capture;
676 float volume = 0;
677 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureSetVolume(handle, volume));
678 }
679
680 HWTEST_F(AudioCaptureTest, AudioCaptureSetVolumeWhenDevCtlHandleIsError, TestSize.Level1)
681 {
682 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
683 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
684 struct HdfIoService *service = new HdfIoService;
685 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
686 hwCapture->devCtlHandle = (struct DevHandleCapture *)service;
687 AudioHandle handle = (AudioHandle)hwCapture;
688 float volume = 0;
689 #ifdef ALSA_LIB_MODE
690 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureSetVolume(handle, volume));
691 #else
692 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureSetVolume(handle, volume));
693 #endif
694 hwCapture->devCtlHandle = devCtlHandle;
695 delete(service);
696 service = nullptr;
697 }
698
699 HWTEST_F(AudioCaptureTest, AudioCaptureSetVolumeWhenParamValid, TestSize.Level1)
700 {
701 float volume = 0.0;
702 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureSetVolume((AudioHandle)capture, volume));
703 volume = 0.6;
704 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureSetVolume((AudioHandle)capture, volume));
705 }
706
707 HWTEST_F(AudioCaptureTest, AudioCaptureGetVolumeWhenHandleIsNull, TestSize.Level1)
708 {
709 float volume = 0;
710 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetVolume(nullptr, &volume));
711 }
712
713 HWTEST_F(AudioCaptureTest, AudioCaptureGetVolumeWhenVolumeIsNull, TestSize.Level1)
714 {
715 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetVolume((AudioHandle)capture, nullptr));
716 }
717
718 HWTEST_F(AudioCaptureTest, AudioCaptureGetVolumeWhenDevCtlHandleIsNull, TestSize.Level1)
719 {
720 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
721 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
722 hwCapture->devCtlHandle = nullptr;
723 AudioHandle handle = (AudioHandle)hwCapture;
724 float volume = 0;
725 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetVolume(handle, &volume));
726 hwCapture->devCtlHandle = devCtlHandle;
727 }
728
729 HWTEST_F(AudioCaptureTest, AudioCaptureGetVolumeWhenDevCtlHandleIsError, TestSize.Level1)
730 {
731 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
732 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
733 struct HdfIoService *service = new HdfIoService;
734 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
735 hwCapture->devCtlHandle = (struct DevHandleCapture *)service;
736 AudioHandle handle = (AudioHandle)hwCapture;
737 float volume = 0;
738 #ifdef ALSA_LIB_MODE
739 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureGetVolume(handle, &volume));
740 #else
741 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetVolume(handle, &volume));
742 #endif
743 hwCapture->devCtlHandle = devCtlHandle;
744 delete(service);
745 service = nullptr;
746 }
747
748 HWTEST_F(AudioCaptureTest, AudioCaptureGetVolumeWhenVolumeIsError, TestSize.Level1)
749 {
750 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
751 hwCapture->captureParam.captureMode.ctlParam.volThreshold.volMax = 1;
752 hwCapture->captureParam.captureMode.ctlParam.volThreshold.volMin = 1;
753 AudioHandle handle = (AudioHandle)capture;
754 float volume = 0;
755 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetVolume(handle, &volume));
756 }
757
758 HWTEST_F(AudioCaptureTest, AudioCaptureGetVolumeWhenParamValid, TestSize.Level1)
759 {
760 float volume = 0;
761 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureGetVolume((AudioHandle)capture, &volume));
762 }
763
764 HWTEST_F(AudioCaptureTest, AudioCaptureGetGainThresholdWhenCaptureIsNull, TestSize.Level1)
765 {
766 float min = GAIN_MIN;
767 float max = GAIN_MAX;
768 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetGainThreshold(nullptr, &min, &max));
769 }
770
771 HWTEST_F(AudioCaptureTest, AudioCaptureGetGainThresholdWhenMinIsNull, TestSize.Level1)
772 {
773 float *min = nullptr;
774 float max = GAIN_MAX;
775 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetGainThreshold((AudioHandle)capture, min, &max));
776 }
777
778 HWTEST_F(AudioCaptureTest, AudioCaptureGetGainThresholdWhenMaxIsNull, TestSize.Level1)
779 {
780 float min = GAIN_MIN;
781 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetGainThreshold((AudioHandle)capture, &min, nullptr));
782 }
783
784 HWTEST_F(AudioCaptureTest, AudioCaptureGetGainThresholdWhenDevCtlHandleIsNull, TestSize.Level1)
785 {
786 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
787 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
788 hwCapture->devCtlHandle = nullptr;
789 AudioHandle handle = (AudioHandle)hwCapture;
790 float min = GAIN_MIN;
791 float max = GAIN_MAX;
792 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetGainThreshold(handle, &min, &max));
793 hwCapture->devCtlHandle = devCtlHandle;
794 }
795
796 HWTEST_F(AudioCaptureTest, AudioCaptureGetGainThresholdWhenDevCtlHandleIsError, TestSize.Level1)
797 {
798 AudioHwCapture *hwCapture = (AudioHwCapture *)capture;
799 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
800 struct HdfIoService *service = new HdfIoService;
801 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
802 hwCapture->devCtlHandle = (struct DevHandleCapture *)service;
803 AudioHandle handle = (AudioHandle)hwCapture;
804 float min = GAIN_MIN;
805 float max = GAIN_MAX;
806 #ifdef ALSA_LIB_MODE
807 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureGetGainThreshold(handle, &min, &max));
808 #else
809 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetGainThreshold(handle, &min, &max));
810 #endif
811 hwCapture->devCtlHandle = devCtlHandle;
812 delete(service);
813 service = nullptr;
814 }
815
816 HWTEST_F(AudioCaptureTest, AudioCaptureGetGainThresholdWhenParamValid, TestSize.Level1)
817 {
818 float min = GAIN_MIN;
819 float max = GAIN_MAX;
820 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureGetGainThreshold((AudioHandle)capture, &min, &max));
821 }
822
823 HWTEST_F(AudioCaptureTest, AudioCaptureGetGainWhenHandleIsNull, TestSize.Level1)
824 {
825 float gain = 0;
826 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetGain(nullptr, &gain));
827 }
828
829 HWTEST_F(AudioCaptureTest, AudioCaptureGetGainWhenGainIsNull, TestSize.Level1)
830 {
831 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetGain((AudioHandle)capture, nullptr));
832 }
833
834 HWTEST_F(AudioCaptureTest, AudioCaptureGetGainWhenDevCtlHandleIsNull, TestSize.Level1)
835 {
836 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
837 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
838 hwCapture->devCtlHandle = nullptr;
839 AudioHandle handle = (AudioHandle)hwCapture;
840 float gain = 0;
841 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetGain(handle, &gain));
842 hwCapture->devCtlHandle = devCtlHandle;
843 }
844
845 HWTEST_F(AudioCaptureTest, AudioCaptureGetGainWhenDevCtlHandleIsError, TestSize.Level1)
846 {
847 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
848 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
849 struct HdfIoService *service = new HdfIoService;
850 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
851 hwCapture->devCtlHandle = reinterpret_cast<struct DevHandleCapture *>(service);
852 AudioHandle handle = (AudioHandle)hwCapture;
853 float gain = 0;
854 #ifdef ALSA_LIB_MODE
855 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureGetGain(handle, &gain));
856 #else
857 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetGain(handle, &gain));
858 #endif
859 hwCapture->devCtlHandle = devCtlHandle;
860 delete(service);
861 service = nullptr;
862 }
863
864 HWTEST_F(AudioCaptureTest, AudioCaptureGetGainWhenParamValid, TestSize.Level1)
865 {
866 float gain = 0;
867 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureGetGain((AudioHandle)capture, &gain));
868 }
869
870 HWTEST_F(AudioCaptureTest, AudioCaptureSetGainWhenHandleIsNull, TestSize.Level1)
871 {
872 float gain = 0;
873 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureSetGain(nullptr, gain));
874 }
875
876 HWTEST_F(AudioCaptureTest, AudioCaptureSetGainWhenGainIsLessThanZero, TestSize.Level1)
877 {
878 float gain = -1;
879 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureSetGain((AudioHandle)capture, gain));
880 }
881
882 HWTEST_F(AudioCaptureTest, AudioCaptureSetGainWhenDevCtlHandleIsNull, TestSize.Level1)
883 {
884 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
885 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
886 hwCapture->devCtlHandle = nullptr;
887 AudioHandle handle = (AudioHandle)hwCapture;
888 float gain = 0;
889 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureSetGain(handle, gain));
890 hwCapture->devCtlHandle = devCtlHandle;
891 }
892
893 HWTEST_F(AudioCaptureTest, AudioCaptureSetGainWhenDevCtlHandleIsError, TestSize.Level1)
894 {
895 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
896 struct DevHandleCapture *devCtlHandle = hwCapture->devCtlHandle;
897 struct HdfIoService *service = new HdfIoService;
898 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
899 hwCapture->devCtlHandle = reinterpret_cast<struct DevHandleCapture *>(service);
900 AudioHandle handle = (AudioHandle)hwCapture;
901 float gain = 0;
902 #ifdef ALSA_LIB_MODE
903 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureSetGain(handle, gain));
904 #else
905 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureSetGain(handle, gain));
906 #endif
907 hwCapture->devCtlHandle = devCtlHandle;
908 delete(service);
909 service = nullptr;
910 }
911
912 HWTEST_F(AudioCaptureTest, AudioCaptureSetGainWhenParamValid, TestSize.Level1)
913 {
914 float gain = 0;
915 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureSetGain((AudioHandle)capture, gain));
916 }
917
918 HWTEST_F(AudioCaptureTest, AudioCaptureCaptureFrameWhenCaptureIsNull, TestSize.Level1)
919 {
920 void *frame = (void *)calloc(1, FRAME_DATA);
921 ASSERT_NE(nullptr, frame);
922 uint64_t requestBytes = FRAME_DATA;
923 uint64_t replyBytes;
924 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureCaptureFrame(nullptr, frame, requestBytes, &replyBytes));
925 free(frame);
926 frame = nullptr;
927 }
928
929 HWTEST_F(AudioCaptureTest, AudioCaptureCaptureFrameWhenFrameIsNull, TestSize.Level1)
930 {
931 uint64_t requestBytes = FRAME_DATA;
932 uint64_t replyBytes;
933 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureCaptureFrame(capture, nullptr, requestBytes, &replyBytes));
934 }
935
936 HWTEST_F(AudioCaptureTest, AudioCaptureCaptureFrameWhenReplyBytesIsNull, TestSize.Level1)
937 {
938 void *frame = (void *)calloc(1, FRAME_DATA);
939 ASSERT_NE(nullptr, frame);
940 uint64_t requestBytes = FRAME_DATA;
941 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureCaptureFrame(capture, frame, requestBytes, nullptr));
942 free(frame);
943 frame = nullptr;
944 }
945
946 HWTEST_F(AudioCaptureTest, AudioCaptureCaptureFrameWhenDevDataHandleIsNull, TestSize.Level1)
947 {
948 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart((AudioHandle)capture));
949 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
950 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
951 hwCapture->devDataHandle = nullptr;
952 void *frame = (void *)calloc(1, FRAME_DATA);
953 ASSERT_NE(nullptr, frame);
954 uint64_t requestBytes = FRAME_DATA;
955 uint64_t replyBytes;
956 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureCaptureFrame(capture, frame, requestBytes, &replyBytes));
957 hwCapture->devDataHandle = devDataHandle;
958 free(frame);
959 frame = nullptr;
960 }
961
962 HWTEST_F(AudioCaptureTest, AudioCaptureCaptureFrameWhenDevDataHandleIsError, TestSize.Level1)
963 {
964 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart((AudioHandle)capture));
965 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
966 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
967 struct HdfIoService *service = new HdfIoService;
968 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
969 hwCapture->devDataHandle = reinterpret_cast<struct DevHandleCapture *>(service);
970 void *frame = (void *)calloc(1, FRAME_DATA);
971 ASSERT_NE(nullptr, frame);
972 uint64_t requestBytes = FRAME_DATA;
973 uint64_t replyBytes;
974 #ifdef ALSA_LIB_MODE
975 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureCaptureFrame(capture, frame, requestBytes, &replyBytes));
976 #else
977 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureCaptureFrame(capture, frame, requestBytes, &replyBytes));
978 #endif
979 hwCapture->devDataHandle = devDataHandle;
980 delete(service);
981 service = nullptr;
982 free(frame);
983 frame = nullptr;
984 }
985
986 HWTEST_F(AudioCaptureTest, AudioCaptureCaptureFrameWhenRequestBytesLessThanBufferSize, TestSize.Level1)
987 {
988 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart((AudioHandle)capture));
989 void *frame = (void *)calloc(1, FRAME_DATA);
990 ASSERT_NE(nullptr, frame);
991 uint64_t requestBytes = FRAME_DATA - 1;
992 uint64_t replyBytes;
993 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureCaptureFrame(capture, frame, requestBytes, &replyBytes));
994 free(frame);
995 frame = nullptr;
996 }
997
998 HWTEST_F(AudioCaptureTest, AudioCaptureCaptureFrameWhenSampleRateIsZero, TestSize.Level1)
999 {
1000 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart((AudioHandle)capture));
1001 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
1002 hwCapture->captureParam.frameCaptureMode.attrs.sampleRate = 0;
1003 void *frame = (void *)calloc(1, FRAME_DATA);
1004 ASSERT_NE(nullptr, frame);
1005 uint64_t requestBytes = FRAME_DATA;
1006 uint64_t replyBytes;
1007 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureCaptureFrame(capture, frame, requestBytes, &replyBytes));
1008 free(frame);
1009 frame = nullptr;
1010 }
1011
1012 HWTEST_F(AudioCaptureTest, AudioCaptureCaptureFrameWhenParamIsValid, TestSize.Level1)
1013 {
1014 ASSERT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart((AudioHandle)capture));
1015 void *frame = (void *)calloc(1, FRAME_DATA);
1016 ASSERT_NE(nullptr, frame);
1017 uint64_t requestBytes = FRAME_DATA;
1018 uint64_t replyBytes;
1019 /* to support different products */
1020 int32_t ret = AudioCaptureCaptureFrame(capture, frame, requestBytes, &replyBytes);
1021 if ((ret == AUDIO_HAL_SUCCESS) || (ret == AUDIO_HAL_ERR_INTERNAL)) {
1022 EXPECT_TRUE(true);
1023 }
1024 free(frame);
1025 frame = nullptr;
1026 }
1027
1028 HWTEST_F(AudioCaptureTest, AudioCaptureGetCapturePositionWhenCaptureIsNull, TestSize.Level1)
1029 {
1030 uint64_t frames = 1024;
1031 struct AudioTimeStamp *time = new AudioTimeStamp;
1032 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetCapturePosition(nullptr, &frames, time));
1033 delete(time);
1034 time = nullptr;
1035 }
1036
1037 HWTEST_F(AudioCaptureTest, AudioCaptureGetCapturePositionWhenFramesIsNull, TestSize.Level1)
1038 {
1039 struct AudioTimeStamp *time = new AudioTimeStamp;
1040 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetCapturePosition(capture, nullptr, time));
1041 delete(time);
1042 time = nullptr;
1043 }
1044
1045 HWTEST_F(AudioCaptureTest, AudioCaptureGetCapturePositionWhenTimeIsNull, TestSize.Level1)
1046 {
1047 uint64_t frames = 1024;
1048 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetCapturePosition(capture, &frames, nullptr));
1049 }
1050
1051 HWTEST_F(AudioCaptureTest, AudioCaptureGetCapturePositionWhenParamIsValid, TestSize.Level1)
1052 {
1053 uint64_t frames = 1024;
1054 struct AudioTimeStamp *time = new AudioTimeStamp;
1055 EXPECT_EQ(HDF_SUCCESS, AudioCaptureGetCapturePosition(capture, &frames, time));
1056 delete(time);
1057 time = nullptr;
1058 }
1059
1060 HWTEST_F(AudioCaptureTest, AudioCaptureTurnStandbyModeWhenHandleIsNull, TestSize.Level1)
1061 {
1062 AudioHwCapture *hwCapture = nullptr;
1063 AudioHandle handle = (AudioHandle)hwCapture;
1064 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureTurnStandbyMode(handle));
1065 }
1066
1067 HWTEST_F(AudioCaptureTest, AudioCaptureTurnStandbyModeWhenStopIsError, TestSize.Level1)
1068 {
1069 AudioHandle handle = (AudioHandle)capture;
1070 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureTurnStandbyMode(handle));
1071 }
1072
1073 HWTEST_F(AudioCaptureTest, AudioCaptureTurnStandbyModeWhenParamIsValid, TestSize.Level1)
1074 {
1075 AudioHandle handle = (AudioHandle)capture;
1076 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureStart(handle));
1077 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureTurnStandbyMode(handle));
1078 }
1079
1080 HWTEST_F(AudioCaptureTest, AudioCaptureAudioDevDumpWhenHandleIsNull, TestSize.Level1)
1081 {
1082 AudioHwCapture *hwCapture = nullptr;
1083 AudioHandle handle = (AudioHandle)hwCapture;
1084 int32_t range = RANGE_MIN;
1085 int32_t fd = 0;
1086 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureAudioDevDump(handle, range, fd));
1087 }
1088
1089 HWTEST_F(AudioCaptureTest, AudioCaptureAudioDevDumpWhenRangeOverMax, TestSize.Level1)
1090 {
1091 AudioHandle handle = (AudioHandle)capture;
1092 int32_t range = RANGE_MAX;
1093 int32_t fd = 0;
1094 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureAudioDevDump(handle, range, fd));
1095 }
1096
1097 HWTEST_F(AudioCaptureTest, AudioCaptureAudioDevDumpWhenParamIsValid, TestSize.Level1)
1098 {
1099 AudioHandle handle = (AudioHandle)capture;
1100 int32_t range = RANGE_MIN;
1101 int32_t fd = 0;
1102 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureAudioDevDump(handle, range, fd));
1103 }
1104
1105 HWTEST_F(AudioCaptureTest, AudioCaptureGetMmapPositionWhenHandleIsNull, TestSize.Level1)
1106 {
1107 AudioHwCapture *hwCapture = nullptr;
1108 AudioHandle handle = (AudioHandle)hwCapture;
1109 uint64_t frames = 0;
1110 struct AudioTimeStamp time;
1111 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetMmapPosition(handle, &frames, &time));
1112 }
1113
1114 HWTEST_F(AudioCaptureTest, AudioCaptureGetMmapPositionWhenFramesIsNull, TestSize.Level1)
1115 {
1116 AudioHandle handle = (AudioHandle)capture;
1117 struct AudioTimeStamp time;
1118 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetMmapPosition(handle, nullptr, &time));
1119 }
1120
1121 HWTEST_F(AudioCaptureTest, AudioCaptureGetMmapPositionWhenTimeIsNull, TestSize.Level1)
1122 {
1123 AudioHandle handle = (AudioHandle)capture;
1124 uint64_t frames = 0;
1125 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetMmapPosition(handle, &frames, nullptr));
1126 }
1127
1128 HWTEST_F(AudioCaptureTest, AudioCaptureGetMmapPositionWhenDevDataHandleIsNull, TestSize.Level1)
1129 {
1130 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
1131 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
1132 hwCapture->devDataHandle = nullptr;
1133 AudioHandle handle = (AudioHandle)hwCapture;
1134 uint64_t frames = 0;
1135 struct AudioTimeStamp time;
1136 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetMmapPosition(handle, &frames, &time));
1137 hwCapture->devDataHandle = devDataHandle;
1138 }
1139
1140 HWTEST_F(AudioCaptureTest, AudioCaptureGetMmapPositionWhenDevDataHandleIsError, TestSize.Level1)
1141 {
1142 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
1143 AudioHandle handle = (AudioHandle)hwCapture;
1144 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
1145 struct HdfIoService *service = new HdfIoService;
1146 (void)memset_s(service, sizeof(struct HdfIoService), 0, sizeof(struct HdfIoService));
1147 hwCapture->devDataHandle = reinterpret_cast<struct DevHandleCapture *>(service);
1148 uint64_t frames = 0;
1149 struct AudioTimeStamp time;
1150 #ifdef ALSA_LIB_MODE
1151 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureGetMmapPosition(handle, &frames, &time));
1152 #else
1153 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetMmapPosition(handle, &frames, &time));
1154 #endif
1155 hwCapture->devDataHandle = devDataHandle;
1156 delete(service);
1157 service = nullptr;
1158 }
1159
1160 HWTEST_F(AudioCaptureTest, AudioCaptureGetMmapPositionWhenParamIsValid, TestSize.Level1)
1161 {
1162 AudioHandle handle = (AudioHandle)capture;
1163 uint64_t frames = 0;
1164 struct AudioTimeStamp time;
1165 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureGetMmapPosition(handle, &frames, &time));
1166 }
1167
1168 HWTEST_F(AudioCaptureTest, AudioCaptureReqMmapBufferWhenHandleIsNull, TestSize.Level1)
1169 {
1170 AudioHwCapture *hwCapture = nullptr;
1171 AudioHandle handle = (AudioHandle)hwCapture;
1172 int32_t reqSize = 0;
1173 struct AudioMmapBufferDescripter desc;
1174 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureReqMmapBuffer(handle, reqSize, &desc));
1175 }
1176
1177 HWTEST_F(AudioCaptureTest, AudioCaptureReqMmapBufferWhenDescIsNull, TestSize.Level1)
1178 {
1179 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
1180 AudioHandle handle = (AudioHandle)hwCapture;
1181 int32_t reqSize = 0;
1182 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureReqMmapBuffer(handle, reqSize, nullptr));
1183 }
1184
1185 HWTEST_F(AudioCaptureTest, AudioCaptureReqMmapBufferWhenDevDataHandleIsNull, TestSize.Level1)
1186 {
1187 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
1188 struct DevHandleCapture *devDataHandle = hwCapture->devDataHandle;
1189 hwCapture->devDataHandle = nullptr;
1190 AudioHandle handle = (AudioHandle)hwCapture;
1191 int32_t reqSize = 0;
1192 struct AudioMmapBufferDescripter desc;
1193 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureReqMmapBuffer(handle, reqSize, &desc));
1194 hwCapture->devDataHandle = devDataHandle;
1195 }
1196
1197 HWTEST_F(AudioCaptureTest, AudioCaptureReqMmapBufferWhenFormatIsError, TestSize.Level1)
1198 {
1199 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
1200 AudioHandle handle = (AudioHandle)hwCapture;
1201 int32_t reqSize = 0;
1202 struct AudioMmapBufferDescripter desc;
1203 hwCapture->captureParam.frameCaptureMode.attrs.format = AUDIO_FORMAT_G711A;
1204 EXPECT_EQ(HDF_ERR_NOT_SUPPORT, AudioCaptureReqMmapBuffer(handle, reqSize, &desc));
1205 }
1206
1207 HWTEST_F(AudioCaptureTest, AudioCaptureReqMmapBufferWhenReqSizeOverThanFileSize, TestSize.Level1)
1208 {
1209 struct AudioHwCapture *hwCapture = (struct AudioHwCapture *)capture;
1210 AudioHandle handle = (AudioHandle)hwCapture;
1211 int32_t reqSize = 1024;
1212 struct AudioMmapBufferDescripter desc;
1213 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureReqMmapBuffer(handle, reqSize, &desc));
1214 }
1215
1216 HWTEST_F(AudioCaptureTest, AudioCaptureGetExtraParamsWhenHandleIsNull, TestSize.Level1)
1217 {
1218 char keyValueList[PARAMS_LEN] = {0};
1219 int32_t listLenth = PARAMS_LEN;
1220 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetExtraParams(nullptr, keyValueList, listLenth));
1221 }
1222
1223 HWTEST_F(AudioCaptureTest, AudioCaptureGetExtraParamsWhenKeyValueListIsNull, TestSize.Level1)
1224 {
1225 AudioHandle handle = (AudioHandle)capture;
1226 int32_t listLenth = PARAMS_LEN;
1227 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetExtraParams(handle, nullptr, listLenth));
1228 }
1229
1230 HWTEST_F(AudioCaptureTest, AudioCaptureGetExtraParamsWhenListLenthIsZero, TestSize.Level1)
1231 {
1232 AudioHandle handle = (AudioHandle)capture;
1233 char keyValueList[PARAMS_LEN] = {0};
1234 int32_t listLenth = 0;
1235 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureGetExtraParams(handle, keyValueList, listLenth));
1236 }
1237
1238 HWTEST_F(AudioCaptureTest, AudioCaptureGetExtraParamsWhenListLenthLessThanBufferSize, TestSize.Level1)
1239 {
1240 AudioHandle handle = (AudioHandle)capture;
1241 char keyValueList[PARAMS_LEN] = {0};
1242 int32_t listLenth = 1;
1243 EXPECT_EQ(AUDIO_HAL_ERR_INTERNAL, AudioCaptureGetExtraParams(handle, keyValueList, listLenth));
1244 }
1245
1246 HWTEST_F(AudioCaptureTest, AudioCaptureGetExtraParamsWhenParamIsValid, TestSize.Level1)
1247 {
1248 AudioHandle handle = (AudioHandle)capture;
1249 char keyValueList[PARAMS_LEN] = {0};
1250 int32_t listLenth = PARAMS_LEN;
1251 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureGetExtraParams(handle, keyValueList, listLenth));
1252 }
1253
1254 HWTEST_F(AudioCaptureTest, AudioCaptureSetExtraParamsWhenHandleIsNull, TestSize.Level1)
1255 {
1256 char keyValueList[PARAMS_LEN] = "attr-frame-count=4096;";
1257 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureSetExtraParams(nullptr, keyValueList));
1258 }
1259
1260 HWTEST_F(AudioCaptureTest, AudioCaptureSetExtraParamsWhenKeyValueListIsNull, TestSize.Level1)
1261 {
1262 AudioHandle handle = (AudioHandle)capture;
1263 EXPECT_EQ(AUDIO_HAL_ERR_INVALID_PARAM, AudioCaptureSetExtraParams(handle, nullptr));
1264 }
1265
1266 HWTEST_F(AudioCaptureTest, AudioCaptureSetExtraParamsWhenParamIsValid, TestSize.Level1)
1267 {
1268 AudioHandle handle = (AudioHandle)capture;
1269 char keyValueList[PARAMS_LEN] = "attr-frame-count=4096;";
1270 EXPECT_EQ(AUDIO_HAL_SUCCESS, AudioCaptureSetExtraParams(handle, keyValueList));
1271 }
1272 }
1273