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 <string>
17 #include <sys/stat.h>
18 #include <fcntl.h>
19 #include <cinttypes>
20 #include <nativetoken_kit.h>
21 #include <token_setproc.h>
22 #include <accesstoken_kit.h>
23 #include "gtest/gtest.h"
24 #include "avcodec_errors.h"
25 #include "avcodec_info.h"
26 #include "media_description.h"
27 #include "audio_capture_module_unit_test.h"
28
29 using namespace OHOS;
30 using namespace OHOS::Media;
31 using namespace std;
32 using namespace testing::ext;
33 using namespace Security::AccessToken;
34 namespace {
35 } // namespace
36
37 /**********************************source FD**************************************/
38 namespace OHOS {
39
SetUpTestCase(void)40 void AudioCaptureModuleUnitTest::SetUpTestCase(void)
41 {
42 HapInfoParams info = {
43 .userID = 100, // 100 user ID
44 .bundleName = "com.ohos.test.audiocapturertdd",
45 .instIndex = 0, // 0 index
46 .appIDDesc = "com.ohos.test.audiocapturertdd",
47 .isSystemApp = true
48 };
49
50 HapPolicyParams policy = {
51 .apl = APL_SYSTEM_BASIC,
52 .domain = "test.audiocapturermodule",
53 .permList = { },
54 .permStateList = {
55 {
56 .permissionName = "ohos.permission.MICROPHONE",
57 .isGeneral = true,
58 .resDeviceID = { "local" },
59 .grantStatus = { PermissionState::PERMISSION_GRANTED },
60 .grantFlags = { 1 }
61 },
62 {
63 .permissionName = "ohos.permission.READ_MEDIA",
64 .isGeneral = true,
65 .resDeviceID = { "local" },
66 .grantStatus = { PermissionState::PERMISSION_GRANTED },
67 .grantFlags = { 1 }
68 },
69 {
70 .permissionName = "ohos.permission.WRITE_MEDIA",
71 .isGeneral = true,
72 .resDeviceID = { "local" },
73 .grantStatus = { PermissionState::PERMISSION_GRANTED },
74 .grantFlags = { 1 }
75 },
76 {
77 .permissionName = "ohos.permission.KEEP_BACKGROUND_RUNNING",
78 .isGeneral = true,
79 .resDeviceID = { "local" },
80 .grantStatus = { PermissionState::PERMISSION_GRANTED },
81 .grantFlags = { 1 }
82 }
83 }
84 };
85 AccessTokenIDEx tokenIdEx = { 0 };
86 tokenIdEx = AccessTokenKit::AllocHapToken(info, policy);
87 int ret = SetSelfTokenID(tokenIdEx.tokenIDEx);
88 if (ret != 0) {
89 std::cout<<"Set hap token failed"<<std::endl;
90 }
91 }
92
TearDownTestCase(void)93 void AudioCaptureModuleUnitTest::TearDownTestCase(void)
94 {
95 }
96
SetUp(void)97 void AudioCaptureModuleUnitTest::SetUp(void)
98 {
99 audioCaptureParameter_ = std::make_shared<Meta>();
100 audioCaptureParameter_->Set<Tag::APP_TOKEN_ID>(appTokenId_);
101 audioCaptureParameter_->Set<Tag::APP_UID>(appUid_);
102 audioCaptureParameter_->Set<Tag::APP_PID>(appPid_);
103 audioCaptureParameter_->Set<Tag::APP_FULL_TOKEN_ID>(appFullTokenId_);
104 audioCaptureParameter_->Set<Tag::AUDIO_SAMPLE_FORMAT>(Plugins::AudioSampleFormat::SAMPLE_S16LE);
105 audioCaptureParameter_->Set<Tag::AUDIO_SAMPLE_RATE>(sampleRate_);
106 audioCaptureParameter_->Set<Tag::AUDIO_CHANNEL_COUNT>(channel_);
107 audioCaptureParameter_->Set<Tag::MEDIA_BITRATE>(bitRate_);
108 audioCaptureModule_ = std::make_shared<AudioCaptureModule::AudioCaptureModule>();
109 }
110
TearDown(void)111 void AudioCaptureModuleUnitTest::TearDown(void)
112 {
113 audioCaptureParameter_ = nullptr;
114 audioCaptureModule_ = nullptr;
115 }
116 class CapturerInfoChangeCallback : public AudioStandard::AudioCapturerInfoChangeCallback {
117 public:
CapturerInfoChangeCallback()118 explicit CapturerInfoChangeCallback() { }
OnStateChange(const AudioStandard::AudioCapturerChangeInfo & info)119 void OnStateChange(const AudioStandard::AudioCapturerChangeInfo &info)
120 {
121 (void)info;
122 std::cout<<"AudioCapturerInfoChangeCallback"<<std::endl;
123 }
124 };
125
126 class AudioCaptureModuleCallbackTest : public AudioCaptureModule::AudioCaptureModuleCallback {
127 public:
AudioCaptureModuleCallbackTest()128 explicit AudioCaptureModuleCallbackTest() { }
OnInterrupt(const std::string & interruptInfo)129 void OnInterrupt(const std::string &interruptInfo) override
130 {
131 std::cout<<"AudioCaptureModuleCallback interrupt"<<interruptInfo<<std::endl;
132 }
133 };
134
135 /**
136 * @tc.name: AVSource_CreateSourceWithFD_1000
137 * @tc.desc: create source with fd, mp4
138 * @tc.type: FUNC
139 */
140 HWTEST_F(AudioCaptureModuleUnitTest, AudioCaptureInit_1000, TestSize.Level1)
141 {
142 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
143 std::shared_ptr<Meta> audioCaptureFormat = std::make_shared<Meta>();
144 audioCaptureFormat->Set<Tag::APP_TOKEN_ID>(appTokenId_);
145 audioCaptureFormat->Set<Tag::APP_UID>(appUid_);
146 audioCaptureFormat->Set<Tag::APP_PID>(appPid_);
147 audioCaptureFormat->Set<Tag::APP_FULL_TOKEN_ID>(appFullTokenId_);
148 audioCaptureFormat->Set<Tag::AUDIO_SAMPLE_FORMAT>(Plugins::AudioSampleFormat::SAMPLE_S16LE);
149 audioCaptureFormat->Set<Tag::AUDIO_SAMPLE_RATE>(sampleRate_);
150 audioCaptureFormat->Set<Tag::AUDIO_CHANNEL_COUNT>(channel_);
151 audioCaptureFormat->Set<Tag::MEDIA_BITRATE>(bitRate_);
152 Status ret = audioCaptureModule_->SetParameter(audioCaptureFormat);
153 ASSERT_TRUE(ret == Status::OK);
154 ret = audioCaptureModule_->Init();
155 ASSERT_TRUE(ret == Status::OK);
156 ret = audioCaptureModule_->Deinit();
157 ASSERT_TRUE(ret == Status::OK);
158 }
159
160 HWTEST_F(AudioCaptureModuleUnitTest, AudioCapturePrepare_1000, TestSize.Level1)
161 {
162 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
163 std::shared_ptr<Meta> audioCaptureFormat = std::make_shared<Meta>();
164 audioCaptureFormat->Set<Tag::APP_TOKEN_ID>(appTokenId_);
165 audioCaptureFormat->Set<Tag::APP_UID>(appUid_);
166 audioCaptureFormat->Set<Tag::APP_PID>(appPid_);
167 audioCaptureFormat->Set<Tag::APP_FULL_TOKEN_ID>(appFullTokenId_);
168 audioCaptureFormat->Set<Tag::AUDIO_SAMPLE_FORMAT>(Plugins::AudioSampleFormat::SAMPLE_S16LE);
169 audioCaptureFormat->Set<Tag::AUDIO_SAMPLE_RATE>(sampleRate_);
170 audioCaptureFormat->Set<Tag::AUDIO_CHANNEL_COUNT>(channel_);
171 audioCaptureFormat->Set<Tag::MEDIA_BITRATE>(bitRate_);
172 Status ret = audioCaptureModule_->SetParameter(audioCaptureFormat);
173 ASSERT_TRUE(ret == Status::OK);
174 ret = audioCaptureModule_->Init();
175 ASSERT_TRUE(ret == Status::OK);
176 ret = audioCaptureModule_->Prepare();
177 ASSERT_TRUE(ret == Status::OK);
178 ret = audioCaptureModule_->Deinit();
179 ASSERT_TRUE(ret == Status::OK);
180 }
181
182 HWTEST_F(AudioCaptureModuleUnitTest, AudioCaptureStart_1000, TestSize.Level1)
183 {
184 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
185 std::shared_ptr<Meta> audioCaptureFormat = std::make_shared<Meta>();
186 audioCaptureFormat->Set<Tag::APP_TOKEN_ID>(appTokenId_);
187 audioCaptureFormat->Set<Tag::APP_UID>(appUid_);
188 audioCaptureFormat->Set<Tag::APP_PID>(appPid_);
189 audioCaptureFormat->Set<Tag::APP_FULL_TOKEN_ID>(appFullTokenId_);
190 audioCaptureFormat->Set<Tag::AUDIO_SAMPLE_FORMAT>(Plugins::AudioSampleFormat::SAMPLE_S16LE);
191 audioCaptureFormat->Set<Tag::AUDIO_SAMPLE_RATE>(sampleRate_);
192 audioCaptureFormat->Set<Tag::AUDIO_CHANNEL_COUNT>(channel_);
193 audioCaptureFormat->Set<Tag::MEDIA_BITRATE>(bitRate_);
194 Status ret = audioCaptureModule_->SetParameter(audioCaptureFormat);
195 ASSERT_TRUE(ret == Status::OK);
196 ret = audioCaptureModule_->Init();
197 ASSERT_TRUE(ret == Status::OK);
198 ret = audioCaptureModule_->Prepare();
199 ASSERT_TRUE(ret == Status::OK);
200 ret = audioCaptureModule_->Start();
201 ASSERT_TRUE(ret == Status::OK);
202 ret = audioCaptureModule_->Stop();
203 ASSERT_TRUE(ret == Status::OK);
204 ret = audioCaptureModule_->Deinit();
205 ASSERT_TRUE(ret == Status::OK);
206 }
207
208 HWTEST_F(AudioCaptureModuleUnitTest, AudioCaptureRead_0100, TestSize.Level1)
209 {
210 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
211 std::shared_ptr<Meta> audioCaptureFormat = std::make_shared<Meta>();
212 audioCaptureFormat->Set<Tag::APP_TOKEN_ID>(appTokenId_);
213 audioCaptureFormat->Set<Tag::APP_UID>(appUid_);
214 audioCaptureFormat->Set<Tag::APP_PID>(appPid_);
215 audioCaptureFormat->Set<Tag::APP_FULL_TOKEN_ID>(appFullTokenId_);
216 audioCaptureFormat->Set<Tag::AUDIO_SAMPLE_FORMAT>(Plugins::AudioSampleFormat::SAMPLE_S16LE);
217 audioCaptureFormat->Set<Tag::AUDIO_SAMPLE_RATE>(sampleRate_);
218 audioCaptureFormat->Set<Tag::AUDIO_CHANNEL_COUNT>(channel_);
219 audioCaptureFormat->Set<Tag::MEDIA_BITRATE>(bitRate_);
220 Status ret = audioCaptureModule_->SetParameter(audioCaptureFormat);
221 ASSERT_TRUE(ret == Status::OK);
222 ret = audioCaptureModule_->Init();
223 ASSERT_TRUE(ret == Status::OK);
224 ret = audioCaptureModule_->Prepare();
225 ASSERT_TRUE(ret == Status::OK);
226 ret = audioCaptureModule_->Start();
227 ASSERT_TRUE(ret == Status::OK);
228 uint64_t bufferSize = 0;
229 ret = audioCaptureModule_->GetSize(bufferSize);
230 ASSERT_TRUE(ret == Status::OK);
231 std::shared_ptr<AVAllocator> avAllocator =
232 AVAllocatorFactory::CreateSharedAllocator(MemoryFlag::MEMORY_READ_WRITE);
233 int32_t capacity = 1024;
234 std::shared_ptr<AVBuffer> buffer = AVBuffer::CreateAVBuffer(avAllocator, capacity);
235 ret = audioCaptureModule_->Read(buffer, bufferSize);
236 ASSERT_TRUE(ret == Status::OK);
237 ret = audioCaptureModule_->Stop();
238 ASSERT_TRUE(ret == Status::OK);
239 ret = audioCaptureModule_->Deinit();
240 ASSERT_TRUE(ret == Status::OK);
241 }
242 HWTEST_F(AudioCaptureModuleUnitTest, AudioCaptureRead_0200, TestSize.Level1)
243 {
244 std::shared_ptr<AVAllocator> avAllocator =
245 AVAllocatorFactory::CreateSharedAllocator(MemoryFlag::MEMORY_READ_WRITE);
246 std::shared_ptr<AVBuffer> buffer = AVBuffer::CreateAVBuffer(avAllocator);
247 size_t bufferSize = 1024;
248 Status ret = audioCaptureModule_->Read(buffer, bufferSize);
249 EXPECT_NE(ret, Status::OK);
250 }
251 HWTEST_F(AudioCaptureModuleUnitTest, AudioCaptureRead_0300, TestSize.Level1)
252 {
253 std::shared_ptr<AVAllocator> avAllocator =
254 AVAllocatorFactory::CreateSharedAllocator(MemoryFlag::MEMORY_READ_WRITE);
255 std::shared_ptr<AVBuffer> buffer = AVBuffer::CreateAVBuffer(avAllocator);
256 buffer->meta_ = nullptr;
257 size_t bufferSize = 1024;
258 Status ret = audioCaptureModule_->Read(buffer, bufferSize);
259 EXPECT_NE(ret, Status::OK);
260 }
261 HWTEST_F(AudioCaptureModuleUnitTest, AudioCaptureRead_0400, TestSize.Level1)
262 {
263 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
264 Status ret = audioCaptureModule_->SetParameter(audioCaptureParameter_);
265 ASSERT_TRUE(ret == Status::OK);
266 ret = audioCaptureModule_->Init();
267 ASSERT_TRUE(ret == Status::OK);
268 ret = audioCaptureModule_->Prepare();
269 ASSERT_TRUE(ret == Status::OK);
270 uint64_t bufferSize = 0;
271 ret = audioCaptureModule_->GetSize(bufferSize);
272 ASSERT_TRUE(ret == Status::OK);
273 std::shared_ptr<AVAllocator> avAllocator =
274 AVAllocatorFactory::CreateSharedAllocator(MemoryFlag::MEMORY_READ_WRITE);
275 int32_t capacity = 1024;
276 std::shared_ptr<AVBuffer> buffer = AVBuffer::CreateAVBuffer(avAllocator, capacity);
277 EXPECT_NE(Status::OK, audioCaptureModule_->Read(buffer, bufferSize));
278 ret = audioCaptureModule_->Deinit();
279 ASSERT_TRUE(ret == Status::OK);
280 }
281 /**
282 * @tc.name: AudioCaptureGetCurrentChangeInfo_0100
283 * @tc.desc: test GetCurrentChangeInfo
284 * @tc.type: FUNC
285 */
286 HWTEST_F(AudioCaptureModuleUnitTest, AudioCaptureGetCurrentChangeInfo_0100, TestSize.Level1)
287 {
288 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
289 Status ret = audioCaptureModule_->SetParameter(audioCaptureParameter_);
290 ASSERT_TRUE(ret == Status::OK);
291 ret = audioCaptureModule_->Init();
292 ASSERT_TRUE(ret == Status::OK);
293 ret = audioCaptureModule_->Prepare();
294 ASSERT_TRUE(ret == Status::OK);
295 AudioStandard::AudioCapturerChangeInfo changeInfo;
296 audioCaptureModule_->GetCurrentCapturerChangeInfo(changeInfo);
297 ret = audioCaptureModule_->Deinit();
298 ASSERT_TRUE(ret == Status::OK);
299 }
300
301 /**
302 * @tc.name: AudioCaptureGetCurrentChangeInfo_0200
303 * @tc.desc: test GetCurrentChangeInfo
304 * @tc.type: FUNC
305 */
306 HWTEST_F(AudioCaptureModuleUnitTest, AudioCaptureGetCurrentChangeInfo_0200, TestSize.Level1)
307 {
308 AudioStandard::AudioCapturerChangeInfo changeInfo;
309 audioCaptureModule_->GetCurrentCapturerChangeInfo(changeInfo);
310 Status ret = audioCaptureModule_->Deinit();
311 ASSERT_TRUE(ret == Status::OK);
312 }
313
314 /**
315 * @tc.name: AudioCaptureSetCallingInfo_0100
316 * @tc.desc: test SetCallingInfo
317 * @tc.type: FUNC
318 */
319 HWTEST_F(AudioCaptureModuleUnitTest, AudioCaptureSetCallingInfo_0100, TestSize.Level1)
320 {
321 audioCaptureModule_->SetCallingInfo(appUid_, appPid_, bundleName_, instanceId_);
322 Status ret = audioCaptureModule_->Deinit();
323 ASSERT_TRUE(ret == Status::OK);
324 }
325
326 /**
327 * @tc.name: AudioCaptureGetMaxAmplitude_0100
328 * @tc.desc: test GetMaxAmplitude
329 * @tc.type: FUNC
330 */
331 HWTEST_F(AudioCaptureModuleUnitTest, AudioCaptureGetMaxAmplitude_0100, TestSize.Level1)
332 {
333 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
334 Status ret = audioCaptureModule_->SetParameter(audioCaptureParameter_);
335 ASSERT_TRUE(ret == Status::OK);
336 ret = audioCaptureModule_->Init();
337 ASSERT_TRUE(ret == Status::OK);
338 ret = audioCaptureModule_->Prepare();
339 ASSERT_TRUE(ret == Status::OK);
340 ret = audioCaptureModule_->Start();
341 ASSERT_TRUE(ret == Status::OK);
342 uint64_t bufferSize = 0;
343 ret = audioCaptureModule_->GetSize(bufferSize);
344 ASSERT_TRUE(ret == Status::OK);
345 audioCaptureModule_->isTrackMaxAmplitude = false;
346 audioCaptureModule_->GetMaxAmplitude();
347 audioCaptureModule_->isTrackMaxAmplitude = true;
348 EXPECT_EQ(audioCaptureModule_->maxAmplitude_, audioCaptureModule_->GetMaxAmplitude());
349 std::shared_ptr<AVAllocator> avAllocator =
350 AVAllocatorFactory::CreateSharedAllocator(MemoryFlag::MEMORY_READ_WRITE);
351 int32_t capacity = 1024;
352 std::shared_ptr<AVBuffer> buffer = AVBuffer::CreateAVBuffer(avAllocator, capacity);
353 ret = audioCaptureModule_->Read(buffer, bufferSize);
354 ASSERT_TRUE(ret == Status::OK);
355 ret = audioCaptureModule_->Stop();
356 ASSERT_TRUE(ret == Status::OK);
357 ret = audioCaptureModule_->Deinit();
358 ASSERT_TRUE(ret == Status::OK);
359 }
360 /**
361 * @tc.name: AudioSetAudioCapturerInfoChangeCallback_0100
362 * @tc.desc: test SetAudioCapturerInfoChangeCallback
363 * @tc.type: FUNC
364 */
365 HWTEST_F(AudioCaptureModuleUnitTest, AudioSetAudioCapturerInfoChangeCallback_0100, TestSize.Level1)
366 {
367 EXPECT_NE(Status::OK, audioCaptureModule_->SetAudioCapturerInfoChangeCallback(nullptr));
368 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
369 Status ret = audioCaptureModule_->SetParameter(audioCaptureParameter_);
370 ASSERT_TRUE(ret == Status::OK);
371 ret = audioCaptureModule_->Init();
372 ASSERT_TRUE(ret == Status::OK);
373 EXPECT_NE(Status::OK, audioCaptureModule_->SetAudioCapturerInfoChangeCallback(nullptr));
374 std::shared_ptr<AudioStandard::AudioCapturerInfoChangeCallback> callback =
375 std::make_shared<CapturerInfoChangeCallback>();
376 EXPECT_NE(Status::OK, audioCaptureModule_->SetAudioCapturerInfoChangeCallback(nullptr));
377 ret = audioCaptureModule_->Deinit();
378 ASSERT_TRUE(ret == Status::OK);
379 }
380 /**
381 * @tc.name: AudioSetAudioInterruptListener_0100
382 * @tc.desc: test SetAudioInterruptListener
383 * @tc.type: FUNC
384 */
385 HWTEST_F(AudioCaptureModuleUnitTest, AudioSetAudioInterruptListener_0100, TestSize.Level1)
386 {
387 EXPECT_NE(Status::OK, audioCaptureModule_->SetAudioInterruptListener(nullptr));
388 std::shared_ptr<AudioCaptureModule::AudioCaptureModuleCallback> callback =
389 std::make_shared<AudioCaptureModuleCallbackTest>();
390 EXPECT_EQ(Status::OK, audioCaptureModule_->SetAudioInterruptListener(callback));
391 Status ret = audioCaptureModule_->Deinit();
392 ASSERT_TRUE(ret == Status::OK);
393 }
394 /**
395 * @tc.name: AudioGetSize_0100
396 * @tc.desc: test GetSize
397 * @tc.type: FUNC
398 */
399 HWTEST_F(AudioCaptureModuleUnitTest, AudioGetSize_0100, TestSize.Level1)
400 {
401 uint64_t size = 0;
402 EXPECT_NE(Status::OK, audioCaptureModule_->GetSize(size));
403 Status ret = audioCaptureModule_->Deinit();
404 ASSERT_TRUE(ret == Status::OK);
405 }
406 /**
407 * @tc.name: AudioGetSize_0200
408 * @tc.desc: test GetSize
409 * @tc.type: FUNC
410 */
411 HWTEST_F(AudioCaptureModuleUnitTest, AudioGetSize_0200, TestSize.Level1)
412 {
413 uint64_t size = 0;
414 EXPECT_NE(Status::OK, audioCaptureModule_->GetSize(size));
415 Status ret = audioCaptureModule_->Deinit();
416 ASSERT_TRUE(ret == Status::OK);
417 }
418 /**
419 * @tc.name: AudioGetSize_0300
420 * @tc.desc: test GetSize
421 * @tc.type: FUNC
422 */
423 HWTEST_F(AudioCaptureModuleUnitTest, AudioGetSize_0300, TestSize.Level1)
424 {
425 uint64_t size = 0;
426 EXPECT_NE(Status::OK, audioCaptureModule_->GetSize(size));
427 Status ret = audioCaptureModule_->Deinit();
428 ASSERT_TRUE(ret == Status::OK);
429 }
430 /**
431 * @tc.name: AudioSetParameter_0100
432 * @tc.desc: test SetParameter
433 * @tc.type: FUNC
434 */
435 HWTEST_F(AudioCaptureModuleUnitTest, AudioSetParameter_0100, TestSize.Level1)
436 {
437 std::shared_ptr<Meta> audioCaptureFormat = std::make_shared<Meta>();
438 audioCaptureModule_->SetParameter(audioCaptureFormat);
439 audioCaptureFormat->Set<Tag::AUDIO_SAMPLE_RATE>(sampleRate_);
440 audioCaptureModule_->SetParameter(audioCaptureFormat);
441 audioCaptureFormat->Set<Tag::AUDIO_CHANNEL_COUNT>(channel_);
442 audioCaptureModule_->SetParameter(audioCaptureFormat);
443 audioCaptureFormat->Set<Tag::AUDIO_SAMPLE_FORMAT>(Plugins::AudioSampleFormat::SAMPLE_S16LE);
444 Status ret = audioCaptureModule_->SetParameter(audioCaptureFormat);
445 EXPECT_EQ(ret, Status::OK);
446 }
447 /**
448 * @tc.name: AudioSetParameter_0200
449 * @tc.desc: test SetParameter
450 * @tc.type: FUNC
451 */
452 HWTEST_F(AudioCaptureModuleUnitTest, AudioSetParameter_0200, TestSize.Level1)
453 {
454 std::shared_ptr<Meta> audioCaptureFormat = std::make_shared<Meta>();
455 audioCaptureFormat->Set<Tag::AUDIO_SAMPLE_FORMAT>(Plugins::AudioSampleFormat::SAMPLE_F32P);
456 Status ret = audioCaptureModule_->SetParameter(audioCaptureFormat);
457 EXPECT_NE(ret, Status::OK);
458 }
459 /**
460 * @tc.name: AudioSetParameter_0300
461 * @tc.desc: test SetParameter
462 * @tc.type: FUNC
463 */
464 HWTEST_F(AudioCaptureModuleUnitTest, AudioSetParameter_0300, TestSize.Level1)
465 {
466 int32_t channel = 3;
467 audioCaptureParameter_->Set<Tag::AUDIO_CHANNEL_COUNT>(channel);
468 Status ret = audioCaptureModule_->SetParameter(audioCaptureParameter_);
469 EXPECT_NE(ret, Status::OK);
470 }
471 /**
472 * @tc.name: AudioGetParameter_0100
473 * @tc.desc: test GetParameter
474 * @tc.type: FUNC
475 */
476 HWTEST_F(AudioCaptureModuleUnitTest, AudioGetParameter_0100, TestSize.Level1)
477 {
478 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
479 std::shared_ptr<Meta> audioCaptureParameterTest_ = std::make_shared<Meta>();
480 Status ret = audioCaptureModule_->SetParameter(audioCaptureParameter_);
481 EXPECT_NE(Status::OK, audioCaptureModule_->GetParameter(audioCaptureParameterTest_));
482 ASSERT_TRUE(ret == Status::OK);
483 ret = audioCaptureModule_->Init();
484 ASSERT_TRUE(ret == Status::OK);
485 ret = audioCaptureModule_->Prepare();
486 ASSERT_TRUE(ret == Status::OK);
487 audioCaptureModule_->GetParameter(audioCaptureParameterTest_);
488
489 audioCaptureParameter_->Set<Tag::AUDIO_SAMPLE_FORMAT>(Plugins::AudioSampleFormat::SAMPLE_U8);
490 audioCaptureModule_->SetParameter(audioCaptureParameter_);
491 audioCaptureModule_->GetParameter(audioCaptureParameterTest_);
492 int32_t channel = 2;
493 audioCaptureParameter_->Set<Tag::AUDIO_CHANNEL_COUNT>(channel);
494 audioCaptureModule_->SetParameter(audioCaptureParameter_);
495 audioCaptureModule_->GetParameter(audioCaptureParameterTest_);
496 int32_t sampleRate = 64000;
497 audioCaptureParameter_->Set<Tag::AUDIO_SAMPLE_RATE>(sampleRate);
498 audioCaptureModule_->SetParameter(audioCaptureParameter_);
499 audioCaptureModule_->GetParameter(audioCaptureParameterTest_);
500 ret = audioCaptureModule_->Deinit();
501 ASSERT_TRUE(ret == Status::OK);
502 }
503 /**
504 * @tc.name: AudioReset_0100
505 * @tc.desc: test Reset
506 * @tc.type: FUNC
507 */
508 HWTEST_F(AudioCaptureModuleUnitTest, AudioReset_0100, TestSize.Level1)
509 {
510 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
511 Status ret = audioCaptureModule_->SetParameter(audioCaptureParameter_);
512 ASSERT_TRUE(ret == Status::OK);
513 ret = audioCaptureModule_->Init();
514 ASSERT_TRUE(ret == Status::OK);
515 ret = audioCaptureModule_->Prepare();
516 ASSERT_TRUE(ret == Status::OK);
517 ret = audioCaptureModule_->Start();
518 ASSERT_TRUE(ret == Status::OK);
519 uint64_t bufferSize = 0;
520 ret = audioCaptureModule_->GetSize(bufferSize);
521 ASSERT_TRUE(ret == Status::OK);
522 std::shared_ptr<AVAllocator> avAllocator =
523 AVAllocatorFactory::CreateSharedAllocator(MemoryFlag::MEMORY_READ_WRITE);
524 int32_t capacity = 1024;
525 std::shared_ptr<AVBuffer> buffer = AVBuffer::CreateAVBuffer(avAllocator, capacity);
526 ret = audioCaptureModule_->Read(buffer, bufferSize);
527 ASSERT_TRUE(ret == Status::OK);
528 ret = audioCaptureModule_->Stop();
529 ASSERT_TRUE(ret == Status::OK);
530 ret = audioCaptureModule_->Reset();
531 ASSERT_TRUE(ret == Status::OK);
532 ret = audioCaptureModule_->Deinit();
533 ASSERT_TRUE(ret == Status::OK);
534 }
535 /**
536 * @tc.name: AudioReset_0200
537 * @tc.desc: test Reset
538 * @tc.type: FUNC
539 */
540 HWTEST_F(AudioCaptureModuleUnitTest, AudioReset_0200, TestSize.Level1)
541 {
542 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
543 Status ret = audioCaptureModule_->SetParameter(audioCaptureParameter_);
544 ASSERT_TRUE(ret == Status::OK);
545 ret = audioCaptureModule_->Init();
546 ASSERT_TRUE(ret == Status::OK);
547 ret = audioCaptureModule_->Prepare();
548 ASSERT_TRUE(ret == Status::OK);
549 ret = audioCaptureModule_->Reset();
550 ASSERT_TRUE(ret == Status::OK);
551 ret = audioCaptureModule_->Deinit();
552 ASSERT_TRUE(ret == Status::OK);
553 }
554 /**
555 * @tc.name: Audioinit_0100
556 * @tc.desc: test init
557 * @tc.type: FUNC
558 */
559 HWTEST_F(AudioCaptureModuleUnitTest, Audioinit_0100, TestSize.Level1)
560 {
561 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
562 Status ret = audioCaptureModule_->SetParameter(audioCaptureParameter_);
563 ASSERT_TRUE(ret == Status::OK);
564 ret = audioCaptureModule_->Init();
565 ASSERT_TRUE(ret == Status::OK);
566 ret = audioCaptureModule_->Init();
567 ASSERT_TRUE(ret == Status::OK);
568 ret = audioCaptureModule_->Deinit();
569 ASSERT_TRUE(ret == Status::OK);
570 }
571 /**
572 * @tc.name: Audioinit_0200
573 * @tc.desc: test init
574 * @tc.type: FUNC
575 */
576 HWTEST_F(AudioCaptureModuleUnitTest, Audioinit_0200, TestSize.Level1)
577 {
578 audioCaptureModule_->SetAudioSource(AudioStandard::SourceType::SOURCE_TYPE_MIC);
579 EXPECT_NE(Status::OK, audioCaptureModule_->Init());
580 Status ret = audioCaptureModule_->Deinit();
581 ASSERT_TRUE(ret == Status::OK);
582 }
583 /**
584 * @tc.name: AudioTrackMaxAmplitude_0200
585 * @tc.desc: test TrackMaxAmplitude
586 * @tc.type: FUNC
587 */
588 HWTEST_F(AudioCaptureModuleUnitTest, AudioTrackMaxAmplitude_0200, TestSize.Level1)
589 {
590 int16_t data[5] = {1, 2, 3, 4, 5};
591 audioCaptureModule_->TrackMaxAmplitude(data, 5);
592 EXPECT_EQ(audioCaptureModule_->maxAmplitude_, 5);
593 int16_t number[5] = {1, -2, 3, -4, 5};
594 audioCaptureModule_->TrackMaxAmplitude(number, 5);
595 EXPECT_EQ(audioCaptureModule_->maxAmplitude_, 5);
596 }
597 /**
598 * @tc.name: AudioGetMaxAmplitude_0200
599 * @tc.desc: test GetMaxAmplitude
600 * @tc.type: FUNC
601 */
602 HWTEST_F(AudioCaptureModuleUnitTest, AudioGetMaxAmplitude_0200, TestSize.Level1)
603 {
604 audioCaptureModule_->isTrackMaxAmplitude = true;
605 EXPECT_EQ(audioCaptureModule_->GetMaxAmplitude(), 0);
606 }
607 } // namespace OHOS