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