• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 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 <gtest/gtest.h>
17 #include <climits>
18 #include "osal_mem.h"
19 #include "v5_0/iaudio_capture.h"
20 #include "v5_0/iaudio_manager.h"
21 
22 using namespace std;
23 using namespace testing::ext;
24 namespace {
25 static const uint32_t MAX_AUDIO_ADAPTER_NUM = 5;
26 const int BUFFER_LENTH = 1024 * 16;
27 const int DEEP_BUFFER_CAPTURE_PERIOD_SIZE = 4 * 1024;
28 const int DEFAULT_BUFFER_SIZE = 16384;
29 const float HALF_OF_MAX_VOLUME = 0.5;
30 const int MOVE_LEFT_NUM = 8;
31 const int TEST_SAMPLE_RATE_MASK_48000 = 48000;
32 const int TEST_CHANNEL_COUNT = 2;
33 const uint32_t INVALID_SCENE_ID = -1;
34 
35 class AudioUtCaptureTest : public testing::Test {
36 public:
37     struct IAudioManager *manager_ = nullptr;;
38     struct IAudioAdapter *adapter_ = nullptr;
39     struct IAudioCapture *capture_ = nullptr;
40     uint32_t captureId_ = 0;
41     char *devDescriptorName_ = nullptr;
42     struct AudioAdapterDescriptor *adapterDescs_ = nullptr;
43     virtual void SetUp();
44     virtual void TearDown();
45     uint64_t GetCaptureBufferSize();
46     void InitCaptureDevDesc(struct AudioDeviceDescriptor &devDesc);
47     void InitCaptureAttrs(struct AudioSampleAttributes &attrs);
48     void FreeAdapterElements(struct AudioAdapterDescriptor *dataBlock, bool freeSelf);
49     void ReleaseAllAdapterDescs(struct AudioAdapterDescriptor **descs, uint32_t descsLen);
50 };
51 
52 /* common method for capture ceate */
GetCaptureBufferSize()53 uint64_t AudioUtCaptureTest::GetCaptureBufferSize()
54 {
55     int32_t ret = HDF_SUCCESS;
56     uint64_t frameSize = 0;
57     uint64_t frameCount = 0;
58     uint64_t bufferSize = 0;
59 
60     if (capture_ == nullptr) {
61         return DEFAULT_BUFFER_SIZE;
62     }
63 
64     ret = capture_->GetFrameSize(capture_, &frameSize);
65     if (ret != HDF_SUCCESS) {
66         return DEFAULT_BUFFER_SIZE;
67     }
68 
69     ret = capture_->GetFrameCount(capture_, &frameCount);
70     if (ret != HDF_SUCCESS) {
71         return DEFAULT_BUFFER_SIZE;
72     }
73 
74     bufferSize = frameCount * frameSize;
75     if (bufferSize == 0) {
76         bufferSize = DEFAULT_BUFFER_SIZE;
77     }
78 
79     return bufferSize;
80 }
81 
InitCaptureDevDesc(struct AudioDeviceDescriptor & devDesc)82 void AudioUtCaptureTest::InitCaptureDevDesc(struct AudioDeviceDescriptor &devDesc)
83 {
84     devDesc.pins = (enum AudioPortPin)PIN_IN_MIC;
85     devDescriptorName_ = strdup("cardname");
86     devDesc.desc = devDescriptorName_;
87 
88     ASSERT_NE(adapterDescs_, nullptr);
89     ASSERT_NE(adapterDescs_->ports, nullptr);
90     for (uint32_t index = 0; index < adapterDescs_->portsLen; index++) {
91         if (adapterDescs_->ports[index].dir == PORT_IN) {
92             devDesc.portId = adapterDescs_->ports[index].portId;
93             return;
94         }
95     }
96 }
97 
InitCaptureAttrs(struct AudioSampleAttributes & attrs)98 void AudioUtCaptureTest::InitCaptureAttrs(struct AudioSampleAttributes &attrs)
99 {
100     attrs.format = AUDIO_FORMAT_TYPE_PCM_16_BIT;
101     attrs.channelCount = TEST_CHANNEL_COUNT;
102     attrs.sampleRate = TEST_SAMPLE_RATE_MASK_48000;
103     attrs.interleaved = 0;
104     attrs.type = AUDIO_IN_MEDIA;
105     attrs.period = DEEP_BUFFER_CAPTURE_PERIOD_SIZE;
106     attrs.frameSize = AUDIO_FORMAT_TYPE_PCM_16_BIT * TEST_CHANNEL_COUNT / MOVE_LEFT_NUM;
107     attrs.isBigEndian = false;
108     attrs.isSignedData = true;
109     attrs.startThreshold = DEEP_BUFFER_CAPTURE_PERIOD_SIZE / (attrs.format * attrs.channelCount / MOVE_LEFT_NUM);
110     attrs.stopThreshold = INT_MAX;
111     attrs.silenceThreshold = BUFFER_LENTH;
112 }
113 
FreeAdapterElements(struct AudioAdapterDescriptor * dataBlock,bool freeSelf)114 void AudioUtCaptureTest::FreeAdapterElements(struct AudioAdapterDescriptor *dataBlock, bool freeSelf)
115 {
116     if (dataBlock == nullptr) {
117         return;
118     }
119 
120     if (dataBlock->adapterName != nullptr) {
121         OsalMemFree(dataBlock->adapterName);
122         dataBlock->adapterName = nullptr;
123     }
124 
125     if (dataBlock->ports != nullptr) {
126         OsalMemFree(dataBlock->ports);
127     }
128 
129     if (freeSelf) {
130         OsalMemFree(dataBlock);
131     }
132 }
133 
ReleaseAllAdapterDescs(struct AudioAdapterDescriptor ** descs,uint32_t descsLen)134 void AudioUtCaptureTest::ReleaseAllAdapterDescs(struct AudioAdapterDescriptor **descs, uint32_t descsLen)
135 {
136     if ((descsLen > 0) && (descs != nullptr) && ((*descs) != nullptr)) {
137         for (uint32_t i = 0; i < descsLen; i++) {
138             FreeAdapterElements(&(*descs)[i], false);
139         }
140         OsalMemFree(*descs);
141         *descs = nullptr;
142     }
143 }
144 
SetUp()145 void AudioUtCaptureTest::SetUp()
146 {
147     uint32_t size = MAX_AUDIO_ADAPTER_NUM;
148     struct AudioDeviceDescriptor devDesc = {};
149     struct AudioSampleAttributes attrs = {};
150 
151     manager_ = IAudioManagerGet(false);
152     ASSERT_NE(manager_, nullptr);
153 
154     adapterDescs_ = (struct AudioAdapterDescriptor *)OsalMemCalloc(
155         sizeof(struct AudioAdapterDescriptor) * (MAX_AUDIO_ADAPTER_NUM));
156     ASSERT_NE(adapterDescs_, nullptr);
157 
158     EXPECT_EQ(HDF_SUCCESS, manager_->GetAllAdapters(manager_, adapterDescs_, &size));
159     if (size > MAX_AUDIO_ADAPTER_NUM) {
160         ReleaseAllAdapterDescs(&adapterDescs_, MAX_AUDIO_ADAPTER_NUM);
161         ASSERT_LT(size, MAX_AUDIO_ADAPTER_NUM);
162     }
163 
164     EXPECT_EQ(HDF_SUCCESS, manager_->LoadAdapter(manager_, &adapterDescs_[0], &adapter_));
165     if (adapter_ == nullptr) {
166         ReleaseAllAdapterDescs(&adapterDescs_, MAX_AUDIO_ADAPTER_NUM);
167         EXPECT_NE(adapter_, nullptr);
168     }
169 
170     InitCaptureDevDesc(devDesc);
171     InitCaptureAttrs(attrs);
172     EXPECT_EQ(HDF_SUCCESS, adapter_->CreateCapture(adapter_, &devDesc, &attrs, &capture_, &captureId_));
173     if (capture_ == nullptr) {
174         (void)manager_->UnloadAdapter(manager_, adapterDescs_[0].adapterName);
175         ReleaseAllAdapterDescs(&adapterDescs_, MAX_AUDIO_ADAPTER_NUM);
176     }
177     ASSERT_NE(capture_, nullptr);
178 }
179 
TearDown()180 void AudioUtCaptureTest::TearDown()
181 {
182     ASSERT_NE(devDescriptorName_, nullptr);
183     free(devDescriptorName_);
184 
185     ASSERT_NE(capture_, nullptr);
186     EXPECT_EQ(HDF_SUCCESS, adapter_->DestroyCapture(adapter_, captureId_));
187 
188     ASSERT_NE(manager_, nullptr);
189     EXPECT_EQ(HDF_SUCCESS, manager_->UnloadAdapter(manager_, adapterDescs_[0].adapterName));
190     ReleaseAllAdapterDescs(&adapterDescs_, MAX_AUDIO_ADAPTER_NUM);
191 
192     IAudioManagerRelease(manager_, false);
193 }
194 
195 /* capture frame cases */
196 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureFrame001, TestSize.Level0)
197 {
198     uint32_t frameLen = (uint64_t)GetCaptureBufferSize();
199     uint64_t requestBytes = frameLen;
200     ASSERT_NE(capture_->CaptureFrame, nullptr);
201 
202     int32_t ret = capture_->Start(capture_);
203     EXPECT_EQ(ret, HDF_SUCCESS);
204 
205     int8_t *frame = (int8_t *)calloc(1, frameLen);
206     EXPECT_NE(nullptr, frame);
207 
208     ret = capture_->CaptureFrame(capture_, frame, &frameLen, &requestBytes);
209     EXPECT_EQ(ret, HDF_SUCCESS);
210     capture_->Stop(capture_);
211 
212     if (frame != nullptr) {
213         free(frame);
214         frame = nullptr;
215     }
216 }
217 
218 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureFrameExceptions001, TestSize.Level1)
219 {
220     uint32_t invalidLen = -1;
221     uint64_t requestBytes = invalidLen;
222     ASSERT_NE(capture_->CaptureFrame, nullptr);
223 
224     int32_t ret = capture_->Start(capture_);
225     EXPECT_EQ(ret, HDF_SUCCESS);
226 
227     int8_t *frame = (int8_t *)calloc(1, sizeof(int));
228     EXPECT_NE(nullptr, frame);
229 
230     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrame(nullptr, nullptr, nullptr, nullptr));
231     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrame(capture_, frame, nullptr, nullptr));
232     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrame(capture_, frame, &invalidLen, nullptr));
233     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrame(nullptr, frame, &invalidLen, &requestBytes));
234     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrame(capture_, frame, &invalidLen, &requestBytes));
235 
236     capture_->Stop(capture_);
237     if (frame != nullptr) {
238         free(frame);
239         frame = nullptr;
240     }
241 }
242 
243 /* capture frameEc cases */
244 #ifdef AUDIO_FEATURE_FRAME_EC
245 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureFrameEc001, TestSize.Level1)
246 {
247     uint32_t len = (uint64_t)GetCaptureBufferSize();
248     struct AudioCaptureFrameInfo frameInfo = {};
249     struct AudioFrameLen frameLen = {};
250     frameLen.frameLen = len;
251     frameLen.frameEcLen = len;
252     ASSERT_NE(capture_->CaptureFrameEc, nullptr);
253 
254     int32_t ret = capture_->Start(capture_);
255     EXPECT_EQ(ret, HDF_SUCCESS);
256 
257     ret = capture_->CaptureFrameEc(capture_, &frameLen, &frameInfo);
258 #ifndef AUDIO_FEATURE_COMMUNITY
259     EXPECT_EQ(ret, HDF_SUCCESS);
260 #else
261     EXPECT_EQ(ret, HDF_ERR_NOT_SUPPORT);
262 #endif
263     capture_->Stop(capture_);
264 }
265 
266 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureFrameEcExceptions001, TestSize.Level1)
267 {
268     uint32_t invalidLen = -1;
269     struct AudioCaptureFrameInfo frameInfo = {};
270     struct AudioFrameLen frameLen = {};
271     frameLen.frameLen = invalidLen;
272     frameLen.frameEcLen = invalidLen;
273     ASSERT_NE(capture_->CaptureFrameEc, nullptr);
274 
275     int32_t ret = capture_->Start(capture_);
276     EXPECT_EQ(ret, HDF_SUCCESS);
277 
278     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrameEc(nullptr, nullptr, nullptr));
279     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrameEc(capture_, &frameLen, nullptr));
280     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrameEc(capture_, &frameLen, &frameInfo));
281     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrameEc(nullptr, nullptr, &frameInfo));
282     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrameEc(capture_, &frameLen, nullptr));
283     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrameEc(capture_, nullptr, nullptr));
284     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrameEc(capture_, &frameLen, &frameInfo));
285     EXPECT_NE(HDF_SUCCESS, capture_->CaptureFrameEc(capture_, nullptr, &frameInfo));
286 
287     capture_->Stop(capture_);
288 }
289 #endif
290 
291 /* capture getposition cases */
292 HWTEST_F(AudioUtCaptureTest, HdfAudioGetCapturePosition001, TestSize.Level0)
293 {
294     uint64_t frames;
295     struct AudioTimeStamp time;
296     uint32_t frameLen = (uint64_t)GetCaptureBufferSize();
297     uint64_t requestBytes = frameLen;
298     ASSERT_NE(capture_->CaptureFrame, nullptr);
299     ASSERT_NE(capture_->GetCapturePosition, nullptr);
300 
301     int32_t ret = capture_->Start(capture_);
302     EXPECT_EQ(ret, HDF_SUCCESS);
303 
304     int8_t *frame = (int8_t *)calloc(1, frameLen);
305     EXPECT_NE(nullptr, frame);
306 
307     ret = capture_->CaptureFrame(capture_, frame, &frameLen, &requestBytes);
308     EXPECT_EQ(ret, HDF_SUCCESS);
309 
310     ret = capture_->GetCapturePosition(capture_, &frames, &time);
311     EXPECT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
312 
313     capture_->Stop(capture_);
314     if (frame != nullptr) {
315         free(frame);
316         frame = nullptr;
317     }
318 }
319 
320 HWTEST_F(AudioUtCaptureTest, HdfAudioGetCapturePositionExceptions001, TestSize.Level1)
321 {
322     int32_t ret;
323     uint64_t frames;
324     struct AudioTimeStamp time;
325     ASSERT_NE(capture_->GetCapturePosition, nullptr);
326 
327     ret = capture_->GetCapturePosition(capture_, &frames, &time);
328     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
329 
330     ret = capture_->GetCapturePosition(capture_, nullptr, nullptr);
331     EXPECT_NE(ret, HDF_SUCCESS);
332 
333     ret = capture_->GetCapturePosition(capture_, &frames, nullptr);
334     EXPECT_NE(ret, HDF_SUCCESS);
335 }
336 
337 /**
338  * @brief from here starts the control tests
339  */
340 
341 /* capture start cases */
342 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureStart001, TestSize.Level0)
343 {
344     ASSERT_NE(capture_->Start, nullptr);
345 
346     int32_t ret = capture_->Start(capture_);
347     EXPECT_EQ(ret, HDF_SUCCESS);
348     capture_->Stop(capture_);
349 }
350 
351 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureException001, TestSize.Level1)
352 {
353     ASSERT_NE(capture_->Start, nullptr);
354 
355     int32_t ret = capture_->Start(nullptr);
356     EXPECT_NE(ret, HDF_SUCCESS);
357     capture_->Stop(capture_);
358 }
359 
360 /* capture stop cases */
361 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureStop001, TestSize.Level0)
362 {
363     ASSERT_NE(capture_->Start, nullptr);
364     ASSERT_NE(capture_->Stop, nullptr);
365 
366     int32_t ret = capture_->Start(capture_);
367     EXPECT_EQ(ret, HDF_SUCCESS);
368 
369     ret = capture_->Stop(capture_);
370     EXPECT_EQ(ret, HDF_SUCCESS);
371 }
372 
373 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureStopException002, TestSize.Level1)
374 {
375     ASSERT_NE(capture_->Stop, nullptr);
376 
377     int32_t ret = capture_->Stop(nullptr);
378     EXPECT_NE(ret, HDF_SUCCESS);
379 }
380 
381 /* capture pause cases */
382 HWTEST_F(AudioUtCaptureTest, HdfAudioCapturePause001, TestSize.Level0)
383 {
384     ASSERT_NE(capture_->Pause, nullptr);
385     ASSERT_NE(capture_->Start, nullptr);
386 
387     int32_t ret = capture_->Start(capture_);
388     EXPECT_EQ(ret, HDF_SUCCESS);
389 
390     ret = capture_->Pause(capture_);
391     EXPECT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT || ret == HDF_ERR_INVALID_PARAM);
392     capture_->Stop(capture_);
393 }
394 
395 HWTEST_F(AudioUtCaptureTest, HdfAudioCapturePauseException001, TestSize.Level1)
396 {
397     ASSERT_NE(capture_->Pause, nullptr);
398 
399     int32_t ret = capture_->Pause(nullptr);
400     EXPECT_NE(ret, HDF_SUCCESS);
401 }
402 
403 HWTEST_F(AudioUtCaptureTest, HdfAudioCapturePauseException002, TestSize.Level0)
404 {
405     ASSERT_NE(capture_->Pause, nullptr);
406     ASSERT_NE(capture_->Start, nullptr);
407 
408     int32_t ret = capture_->Start(capture_);
409     EXPECT_EQ(ret, HDF_SUCCESS);
410 
411     ret = capture_->Pause(capture_);
412     EXPECT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
413 
414     ret = capture_->Pause(capture_);
415     EXPECT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
416     capture_->Stop(capture_);
417 }
418 
419 /* capture resume cases */
420 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureResume001, TestSize.Level0)
421 {
422     ASSERT_NE(capture_->Pause, nullptr);
423     ASSERT_NE(capture_->Resume, nullptr);
424     ASSERT_NE(capture_->Start, nullptr);
425     ASSERT_NE(capture_->Stop, nullptr);
426 
427     int32_t ret = capture_->Start(capture_);
428     EXPECT_EQ(ret, HDF_SUCCESS);
429 
430     ret = capture_->Pause(capture_);
431     EXPECT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
432 
433     ret = capture_->Resume(capture_);
434     EXPECT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
435 
436     ret = capture_->Stop(capture_);
437     ASSERT_EQ(ret, HDF_SUCCESS);
438 }
439 
440 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureResumeException001, TestSize.Level1)
441 {
442     ASSERT_NE(capture_->Resume, nullptr);
443 
444     int32_t ret = capture_->Resume(capture_);
445     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
446 }
447 
448 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureResumeException002, TestSize.Level1)
449 {
450     ASSERT_NE(capture_->Resume, nullptr);
451 
452     int32_t ret = capture_->Resume(nullptr);
453     EXPECT_NE(ret, HDF_SUCCESS);
454 }
455 
456 /* capture flush cases */
457 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureFlush001, TestSize.Level1)
458 {
459     ASSERT_NE(capture_->Flush, nullptr);
460 
461     int32_t ret = capture_->Flush(capture_);
462     EXPECT_EQ(HDF_ERR_NOT_SUPPORT, ret);
463 }
464 
465 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureFlushException001, TestSize.Level1)
466 {
467     ASSERT_NE(capture_->Flush, nullptr);
468 
469     int32_t ret = capture_->Flush(nullptr);
470     EXPECT_NE(ret, HDF_SUCCESS);
471 }
472 
473 /* capture TurnStandbyMode cases */
474 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureTurnStandbyMode001, TestSize.Level0)
475 {
476     ASSERT_NE(capture_->TurnStandbyMode, nullptr);
477     ASSERT_NE(capture_->Start, nullptr);
478 
479     int32_t ret = capture_->Start(capture_);
480     EXPECT_EQ(ret, HDF_SUCCESS);
481 
482     ret = capture_->TurnStandbyMode(capture_);
483     EXPECT_EQ(ret, HDF_SUCCESS);
484     capture_->Stop(capture_);
485 }
486 
487 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureTurnStandbyModeException001, TestSize.Level1)
488 {
489     ASSERT_NE(capture_->TurnStandbyMode, nullptr);
490 
491     int32_t ret = capture_->TurnStandbyMode(nullptr);
492     EXPECT_NE(ret, HDF_SUCCESS);
493 }
494 
495 /* capture AudioDevDump cases */
496 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureAudioDevDump001, TestSize.Level0)
497 {
498     ASSERT_NE(capture_->AudioDevDump, nullptr);
499 
500     int32_t range = 4;
501     char pathBuf[] = "/data/CaptureDump.log";
502 
503     FILE *file = fopen(pathBuf, "wb+");
504     ASSERT_NE(nullptr, file);
505     int fd = fileno(file);
506     if (fd == -1) {
507         fclose(file);
508         ASSERT_NE(fd, -1);
509     }
510 
511     int32_t ret = capture_->AudioDevDump(capture_, range, fd);
512     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
513     fclose(file);
514 }
515 
516 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureAudioDevDumpExption001, TestSize.Level1)
517 {
518     ASSERT_NE(capture_->AudioDevDump, nullptr);
519     int32_t range = 4;
520 
521     int32_t ret = capture_->AudioDevDump(nullptr, range, -1);
522     EXPECT_NE(ret, HDF_SUCCESS);
523 }
524 
525 /**
526  * @brief here starts the volume test cases
527  */
528 /* capture SetMute cases */
529 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSetMute001, TestSize.Level0)
530 {
531     bool isSupport = false;
532     ASSERT_NE(capture_->SetMute, nullptr);
533     ASSERT_NE(capture_->GetMute, nullptr);
534 
535     int32_t ret = capture_->SetMute(capture_, isSupport);
536     if (ret == HDF_SUCCESS) {
537         ret = capture_->GetMute(capture_, &isSupport);
538         ASSERT_EQ(isSupport, false);
539     } else if (ret == HDF_ERR_NOT_SUPPORT) {
540         ASSERT_TRUE(true);
541     } else {
542         ASSERT_TRUE(false);
543     }
544 
545     isSupport = true;
546     ret = capture_->SetMute(capture_, isSupport);
547     if (ret == HDF_SUCCESS) {
548         ret = capture_->GetMute(capture_, &isSupport);
549         ASSERT_EQ(isSupport, true);
550     } else if (ret == HDF_ERR_NOT_SUPPORT) {
551         ASSERT_TRUE(true);
552     } else {
553         ASSERT_TRUE(false);
554     }
555 }
556 
557 // set twice
558 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSetMuteException001, TestSize.Level0)
559 {
560     bool isSupport = true;
561     ASSERT_NE(capture_->SetMute, nullptr);
562     ASSERT_NE(capture_->GetMute, nullptr);
563 
564     int32_t ret = capture_->SetMute(capture_, isSupport);
565     if (ret == HDF_SUCCESS) {
566         ret = capture_->GetMute(capture_, &isSupport);
567         ASSERT_EQ(isSupport, true);
568     } else if (ret == HDF_ERR_NOT_SUPPORT) {
569         ASSERT_TRUE(true);
570     } else {
571         ASSERT_TRUE(false);
572     }
573 
574     ret = capture_->SetMute(capture_, isSupport);
575     if (ret == HDF_SUCCESS) {
576         ret = capture_->GetMute(capture_, &isSupport);
577         ASSERT_EQ(isSupport, true);
578     } else if (ret == HDF_ERR_NOT_SUPPORT) {
579         ASSERT_TRUE(true);
580     } else {
581         ASSERT_TRUE(false);
582     }
583 }
584 
585 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSetMuteException002, TestSize.Level1)
586 {
587     EXPECT_NE(capture_->SetMute, nullptr);
588 
589     int32_t ret = capture_->SetMute(nullptr, true);
590     EXPECT_NE(ret, HDF_SUCCESS);
591 }
592 
593 /* capture GetMute cases */
594 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetMute001, TestSize.Level0)
595 {
596     bool isSupport = true;
597     EXPECT_NE(capture_->GetMute, nullptr);
598 
599     int32_t ret = capture_->GetMute(capture_, &isSupport);
600     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
601 }
602 
603 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetMuteException001, TestSize.Level1)
604 {
605     EXPECT_NE(capture_->GetMute, nullptr);
606 
607     int32_t ret = capture_->GetMute(nullptr, nullptr);
608     EXPECT_NE(ret, HDF_SUCCESS);
609 
610     ret = capture_->GetMute(capture_, nullptr);
611     EXPECT_NE(ret, HDF_SUCCESS);
612 }
613 
614 /* capture SetVolume cases */
615 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSetVolume001, TestSize.Level0)
616 {
617     float volume = 0.0;
618     EXPECT_NE(capture_->SetVolume, nullptr);
619     EXPECT_NE(capture_->GetVolume, nullptr);
620 
621     int32_t ret = capture_->SetVolume(capture_, HALF_OF_MAX_VOLUME);
622     if (ret == HDF_SUCCESS) {
623         ret = capture_->GetVolume(capture_, &volume);
624         ASSERT_EQ(volume, HALF_OF_MAX_VOLUME);
625     } else if (ret == HDF_ERR_NOT_SUPPORT) {
626         ASSERT_TRUE(true);
627     } else {
628         ASSERT_TRUE(false);
629     }
630 }
631 
632 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSetVolumeException001, TestSize.Level1)
633 {
634     float exceptionVolume = 2.0;
635     EXPECT_NE(capture_->SetVolume, nullptr);
636 
637     int32_t ret = capture_->SetVolume(capture_, exceptionVolume);
638     EXPECT_NE(ret, HDF_SUCCESS);
639 
640     exceptionVolume = -3.0;
641     ret = capture_->SetVolume(capture_, exceptionVolume);
642     EXPECT_NE(ret, HDF_SUCCESS);
643 }
644 
645 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSetVolumeException002, TestSize.Level1)
646 {
647     EXPECT_NE(capture_->SetVolume, nullptr);
648 
649     int32_t ret = capture_->SetVolume(nullptr, HALF_OF_MAX_VOLUME);
650     EXPECT_NE(ret, HDF_SUCCESS);
651 }
652 
653 /* capture GetVolume cases */
654 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetVolume001, TestSize.Level0)
655 {
656     float volume = 0.0;
657     EXPECT_NE(capture_->GetVolume, nullptr);
658 
659     int32_t ret = capture_->GetVolume(capture_, &volume);
660     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
661 }
662 
663 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetVolumeException001, TestSize.Level1)
664 {
665     float volume = 0.0;
666     EXPECT_NE(capture_->GetVolume, nullptr);
667 
668     int32_t ret = capture_->GetVolume(nullptr, nullptr);
669     EXPECT_NE(ret, HDF_SUCCESS);
670 
671     ret = capture_->GetVolume(capture_, nullptr);
672     EXPECT_NE(ret, HDF_SUCCESS);
673 
674     ret = capture_->GetVolume(nullptr, &volume);
675     EXPECT_NE(ret, HDF_SUCCESS);
676 }
677 
678 /* capture GetGainThreshold cases */
679 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetGainThreshold001, TestSize.Level0)
680 {
681     float bottom = 0;
682     float top = 0;
683     EXPECT_NE(capture_->GetGainThreshold, nullptr);
684 
685     int32_t ret = capture_->GetGainThreshold(capture_, &bottom, &top);
686     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
687 }
688 
689 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetGainThresholdException002, TestSize.Level1)
690 {
691     float bottom = 0;
692     float top = 0;
693     EXPECT_NE(capture_->GetGainThreshold, nullptr);
694 
695     int32_t ret = capture_->GetGainThreshold(nullptr, &bottom, &top);
696     EXPECT_NE(ret, HDF_SUCCESS);
697 
698     ret = capture_->GetGainThreshold(nullptr, nullptr, nullptr);
699     EXPECT_NE(ret, HDF_SUCCESS);
700 
701     ret = capture_->GetGainThreshold(capture_, nullptr, nullptr);
702     EXPECT_NE(ret, HDF_SUCCESS);
703 }
704 
705 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSetGain001, TestSize.Level0)
706 {
707     EXPECT_NE(capture_->SetGain, nullptr);
708 
709     int32_t ret = capture_->SetGain(capture_, HALF_OF_MAX_VOLUME);
710     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
711 }
712 
713 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSetGainException001, TestSize.Level1)
714 {
715     EXPECT_NE(capture_->SetGain, nullptr);
716     float exceptionGain = -3.0;
717 
718     int32_t ret = capture_->SetGain(capture_, exceptionGain);
719     EXPECT_NE(ret, HDF_SUCCESS);
720 
721     ret = capture_->SetGain(nullptr, HALF_OF_MAX_VOLUME);
722     EXPECT_NE(ret, HDF_SUCCESS);
723 }
724 
725 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetGain001, TestSize.Level0)
726 {
727     EXPECT_NE(capture_->GetGain, nullptr);
728     float getGain;
729 
730     int32_t ret = capture_->GetGain(capture_, &getGain);
731     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
732 }
733 
734 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetGainException001, TestSize.Level1)
735 {
736     EXPECT_NE(capture_->SetGain, nullptr);
737     float exceptionGain = 2.0;
738 
739     int32_t ret = capture_->GetGain(capture_, nullptr);
740     EXPECT_NE(ret, HDF_SUCCESS);
741 
742     ret = capture_->GetGain(nullptr, &exceptionGain);
743     EXPECT_NE(ret, HDF_SUCCESS);
744 }
745 
746 /**
747  * @brief here starts the attributes cases
748  */
749 /* capture GetSampleAttributes cases */
750 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetSampleAttributes001, TestSize.Level0)
751 {
752     struct AudioSampleAttributes attrs = {};
753     EXPECT_NE(capture_->GetSampleAttributes, nullptr);
754 
755     int32_t ret = capture_->GetSampleAttributes(capture_, &attrs);
756     EXPECT_EQ(ret, HDF_SUCCESS);
757 }
758 
759 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetSampleAttributesException001, TestSize.Level1)
760 {
761     struct AudioSampleAttributes attrs = {};
762     EXPECT_NE(capture_->GetSampleAttributes, nullptr);
763 
764     int32_t ret = capture_->GetSampleAttributes(nullptr, &attrs);
765     EXPECT_NE(ret, HDF_SUCCESS);
766 
767     ret = capture_->GetSampleAttributes(capture_, nullptr);
768     EXPECT_NE(ret, HDF_SUCCESS);
769 }
770 
771 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSetSampleAttributes001, TestSize.Level1)
772 {
773     struct AudioSampleAttributes attrs = {
774         .format = AUDIO_FORMAT_TYPE_PCM_16_BIT,
775         .sampleRate = TEST_SAMPLE_RATE_MASK_48000,
776         .channelCount = TEST_CHANNEL_COUNT,
777     };
778     EXPECT_NE(capture_->SetSampleAttributes, nullptr);
779 
780     int32_t ret = capture_->SetSampleAttributes(capture_, &attrs);
781 #ifdef ALSA_SUPPORT_FEATURE
782     EXPECT_EQ(ret, HDF_SUCCESS);
783 #else
784     EXPECT_NE(ret, HDF_SUCCESS);
785 #endif
786 
787     ret = capture_->SetSampleAttributes(capture_, nullptr);
788     EXPECT_NE(ret, HDF_SUCCESS);
789 
790     ret = capture_->SetSampleAttributes(nullptr, &attrs);
791     EXPECT_NE(ret, HDF_SUCCESS);
792 }
793 
794 /* capture GetCurrentChannelId cases */
795 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetCurrentChannelId001, TestSize.Level0)
796 {
797     int32_t ret = HDF_SUCCESS;
798     uint32_t channelId = 0;
799     EXPECT_NE(capture_->GetCurrentChannelId, nullptr);
800 
801     ret = capture_->GetCurrentChannelId(capture_, &channelId);
802     EXPECT_EQ(ret, HDF_SUCCESS);
803     EXPECT_EQ(TEST_CHANNEL_COUNT, channelId);
804 }
805 
806 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetCurrentChannelIdException001, TestSize.Level1)
807 {
808     int32_t ret = HDF_SUCCESS;
809     uint32_t channelId = 0;
810     EXPECT_NE(capture_->GetCurrentChannelId, nullptr);
811 
812     ret = capture_->GetCurrentChannelId(capture_, nullptr);
813     EXPECT_NE(ret, HDF_SUCCESS);
814 
815     ret = capture_->GetCurrentChannelId(nullptr, &channelId);
816     EXPECT_NE(ret, HDF_SUCCESS);
817 }
818 
819 /* capture SetExtraParams cases */
820 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSetExtraParams001, TestSize.Level0)
821 {
822     EXPECT_NE(capture_->SetExtraParams, nullptr);
823     EXPECT_NE(capture_->GetExtraParams, nullptr);
824 
825     char kvList[] = "attr-route=1;attr-format=32;attr-channels=2;attr-frame-count=82;attr-sampling-rate=48000";
826     char keyValueListReply[256] = {};
827     uint32_t listLenth = 256;
828     size_t index = 1;
829 
830     int32_t ret = capture_->SetExtraParams(capture_, kvList);
831     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT);
832 
833     ret = capture_->GetExtraParams(capture_, keyValueListReply, listLenth);
834     // the vendor can not supply this method,one it not supply returns HDF_ERR_INVALID_PARAM
835     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_INVALID_PARAM);
836 
837     std::string strGetValue = keyValueListReply;
838     size_t indexAttr = strGetValue.find("attr-frame-count");
839     size_t indexFlag = strGetValue.rfind(";");
840 
841     if (indexAttr != string::npos && indexFlag != string::npos) {
842         strGetValue.replace(indexAttr, indexFlag - indexAttr + index, "");
843     }
844 }
845 
846 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSetExtraParamsException001, TestSize.Level1)
847 {
848     ASSERT_NE(capture_->SetExtraParams, nullptr);
849 
850     int32_t ret = capture_->SetExtraParams(nullptr, nullptr);
851     EXPECT_NE(ret, HDF_SUCCESS);
852 }
853 
854 /* capture GetExtraParams cases */
855 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetExtraParams001, TestSize.Level0)
856 {
857     ASSERT_NE(capture_->GetExtraParams, nullptr);
858     char keyValueListReply[256] = {};
859     uint32_t listLenth = 256;
860 
861     int32_t ret = capture_->GetExtraParams(capture_, keyValueListReply, listLenth);
862     // the vendor can not supply this method,one it not supply returns HDF_ERR_INVALID_PARAM
863     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_INVALID_PARAM);
864 }
865 
866 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetExtraParamsException001, TestSize.Level1)
867 {
868     ASSERT_NE(capture_->GetExtraParams, nullptr);
869     char keyValueListReply[256] = {};
870     uint32_t listLenth = 256;
871 
872     int32_t ret = capture_->GetExtraParams(nullptr, keyValueListReply, listLenth);
873     EXPECT_NE(ret, HDF_SUCCESS);
874 
875     ret = capture_->GetExtraParams(capture_, nullptr, listLenth);
876     EXPECT_NE(ret, HDF_SUCCESS);
877 }
878 
879 /* capture selectsene cases */
880 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSelectScene001, TestSize.Level0)
881 {
882     ASSERT_NE(capture_->SelectScene, nullptr);
883     struct AudioSceneDescriptor sceneDesc = {};
884     sceneDesc.desc.pins = PIN_IN_MIC;
885     sceneDesc.desc.desc = strdup("mic");
886     sceneDesc.scene.id = AUDIO_IN_CALL;
887 
888     int32_t ret = capture_->SelectScene(capture_, &sceneDesc);
889     EXPECT_EQ(ret, HDF_SUCCESS);
890     free(sceneDesc.desc.desc);
891 }
892 
893 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSelectSceneException001, TestSize.Level1)
894 {
895     ASSERT_NE(capture_->SelectScene, nullptr);
896     struct AudioSceneDescriptor sceneDesc = {};
897     sceneDesc.scene.id = AUDIO_IN_CALL;
898 
899     int32_t ret = capture_->SelectScene(capture_, nullptr);
900     ASSERT_NE(ret, HDF_SUCCESS);
901 
902     ret = capture_->SelectScene(nullptr, &sceneDesc);
903     ASSERT_NE(ret, HDF_SUCCESS);
904 }
905 
906 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureSelectSceneInValid001, TestSize.Level0)
907 {
908     ASSERT_NE(capture_->SelectScene, nullptr);
909     struct AudioSceneDescriptor sceneDesc = {};
910     sceneDesc.scene.id = INVALID_SCENE_ID;
911     sceneDesc.desc.pins = PIN_IN_MIC;
912     sceneDesc.desc.desc = strdup("mic");
913 
914     int32_t ret = capture_->SelectScene(capture_, &sceneDesc);
915     ASSERT_TRUE(ret == HDF_FAILURE || ret == HDF_ERR_NOT_SUPPORT);
916     free(sceneDesc.desc.desc);
917 }
918 
919 /* capture get version cases */
920 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetVersion001, TestSize.Level0)
921 {
922     ASSERT_NE(capture_->GetVersion, nullptr);
923     uint32_t majorVer;
924     uint32_t minorVer;
925     ASSERT_EQ(HDF_SUCCESS, capture_->GetVersion(capture_, &majorVer, &minorVer));
926     EXPECT_EQ(IAUDIO_MANAGER_MAJOR_VERSION, majorVer);
927     EXPECT_EQ(IAUDIO_MANAGER_MINOR_VERSION, minorVer);
928 }
929 
930 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetVersionException001, TestSize.Level1)
931 {
932     ASSERT_NE(capture_->GetVersion, nullptr);
933     uint32_t majorVer;
934     uint32_t minorVer;
935     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, capture_->GetVersion(nullptr, &majorVer, &minorVer));
936 }
937 
938 /* capture support pause and resume cases */
939 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureIsSupportsPauseAndResume001, TestSize.Level0)
940 {
941     ASSERT_NE(capture_->GetVersion, nullptr);
942     bool supportPause = false;
943     bool supportResume = false;
944 
945     int32_t ret = capture_->IsSupportsPauseAndResume(capture_, &supportPause, &supportResume);
946     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT || ret == HDF_ERR_INVALID_PARAM);
947 }
948 
949 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureIsSupportsPauseAndResumeException001, TestSize.Level1)
950 {
951     ASSERT_NE(capture_->IsSupportsPauseAndResume, nullptr);
952     bool supportPause = false;
953     bool supportResume = false;
954 
955     int32_t ret = capture_->IsSupportsPauseAndResume(nullptr, &supportPause, &supportResume);
956     ASSERT_NE(ret, HDF_SUCCESS);
957 
958     ret = capture_->IsSupportsPauseAndResume(capture_, nullptr, &supportResume);
959     ASSERT_NE(ret, HDF_SUCCESS);
960 
961     ret = capture_->IsSupportsPauseAndResume(capture_, &supportPause, nullptr);
962     ASSERT_NE(ret, HDF_SUCCESS);
963 }
964 
965 /* capture GetFrameBufferSize cases */
966 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetFrameBufferSize001, TestSize.Level0)
967 {
968     ASSERT_NE(capture_->GetFrameBufferSize, nullptr);
969     uint64_t bufferSize = 0;
970 
971     int32_t ret = capture_->GetFrameBufferSize(capture_, &bufferSize);
972     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT || ret == HDF_ERR_INVALID_PARAM);
973 }
974 
975 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureGetFrameBufferSizeException001, TestSize.Level1)
976 {
977     ASSERT_NE(capture_->GetFrameBufferSize, nullptr);
978     uint64_t bufferSize = 0;
979 
980     int32_t ret = capture_->GetFrameBufferSize(nullptr, &bufferSize);
981     ASSERT_NE(ret, HDF_SUCCESS);
982 
983     ret = capture_->GetFrameBufferSize(capture_, nullptr);
984     ASSERT_NE(ret, HDF_SUCCESS);
985 }
986 
987 /* capture AddAudioEffect cases */
988 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureAddAudioEffect001, TestSize.Level0)
989 {
990     ASSERT_NE(capture_->AddAudioEffect, nullptr);
991     uint64_t effectId = 0;
992 
993     int32_t ret = capture_->AddAudioEffect(capture_, effectId);
994     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT || ret == HDF_ERR_INVALID_PARAM);
995 }
996 
997 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureAddAudioEffectException001, TestSize.Level1)
998 {
999     ASSERT_NE(capture_->AddAudioEffect, nullptr);
1000     uint64_t effectId = -1;
1001 
1002     int32_t ret = capture_->AddAudioEffect(nullptr, effectId);
1003     ASSERT_NE(ret, HDF_SUCCESS);
1004 
1005     ret = capture_->AddAudioEffect(capture_, effectId);
1006     ASSERT_NE(ret, HDF_SUCCESS);
1007 }
1008 
1009 /* capture RemoveAudioEffect cases */
1010 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureRemoveAudioEffect001, TestSize.Level0)
1011 {
1012     ASSERT_NE(capture_->RemoveAudioEffect, nullptr);
1013     uint64_t effectId = 0;
1014 
1015     int32_t ret = capture_->RemoveAudioEffect(capture_, effectId);
1016     ASSERT_TRUE(ret == HDF_SUCCESS || ret == HDF_ERR_NOT_SUPPORT || ret == HDF_ERR_INVALID_PARAM);
1017 }
1018 
1019 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureRemoveAudioEffectException001, TestSize.Level1)
1020 {
1021     ASSERT_NE(capture_->RemoveAudioEffect, nullptr);
1022     uint64_t effectId = -1;
1023 
1024     int32_t ret = capture_->RemoveAudioEffect(nullptr, effectId);
1025     ASSERT_NE(ret, HDF_SUCCESS);
1026 
1027     ret = capture_->RemoveAudioEffect(capture_, effectId);
1028     ASSERT_NE(ret, HDF_SUCCESS);
1029 }
1030 
1031 /* capture CheckSceneCapability cases */
1032 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureCheckSceneCapabilityException001, TestSize.Level0)
1033 {
1034     ASSERT_NE(capture_->CheckSceneCapability, nullptr);
1035     struct AudioSceneDescriptor sceneDesc = {};
1036     sceneDesc.desc.pins = PIN_IN_MIC;
1037     sceneDesc.desc.desc = strdup("mic");
1038     sceneDesc.scene.id = AUDIO_IN_COMMUNICATION;
1039     bool isSupport = false;
1040 
1041     int32_t ret = capture_->CheckSceneCapability(capture_, &sceneDesc, &isSupport);
1042     EXPECT_EQ(ret, HDF_SUCCESS);
1043     free(sceneDesc.desc.desc);
1044 }
1045 
1046 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureCheckSceneCapabilityInValid001, TestSize.Level0)
1047 {
1048     ASSERT_NE(capture_->CheckSceneCapability, nullptr);
1049     struct AudioSceneDescriptor sceneDesc = {};
1050     sceneDesc.desc.pins = PIN_IN_MIC;
1051     sceneDesc.desc.desc = strdup("mic");
1052     sceneDesc.scene.id = INVALID_SCENE_ID;
1053     bool isSupport = false;
1054 
1055     int32_t ret = capture_->CheckSceneCapability(capture_, &sceneDesc, &isSupport);
1056     ASSERT_TRUE(ret == HDF_FAILURE || ret == HDF_ERR_NOT_SUPPORT);
1057     free(sceneDesc.desc.desc);
1058 }
1059 
1060 HWTEST_F(AudioUtCaptureTest, HdfAudioCaptureCheckSceneCapability001, TestSize.Level1)
1061 {
1062     ASSERT_NE(capture_->CheckSceneCapability, nullptr);
1063     struct AudioSceneDescriptor sceneDesc = {};
1064     sceneDesc.scene.id = AUDIO_IN_COMMUNICATION;
1065     bool isSupport = false;
1066 
1067     int32_t ret = capture_->CheckSceneCapability(nullptr, &sceneDesc, &isSupport);
1068     ASSERT_NE(ret, HDF_SUCCESS);
1069 
1070     ret = capture_->CheckSceneCapability(capture_, nullptr, &isSupport);
1071     ASSERT_NE(ret, HDF_SUCCESS);
1072 
1073     ret = capture_->CheckSceneCapability(capture_, &sceneDesc, nullptr);
1074     ASSERT_NE(ret, HDF_SUCCESS);
1075 }
1076 
1077 } // end of name space