• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <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