1 /*
2 * Copyright (c) 2024 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 #include <gtest/gtest.h>
16 #include "none_mix_engine.h"
17 #include "sink/i_audio_render_sink.h"
18 #include "common/hdi_adapter_info.h"
19 #include "manager/hdi_adapter_manager.h"
20 #include "pro_renderer_stream_impl.h"
21 #include "audio_errors.h"
22
23 using namespace testing::ext;
24 namespace OHOS {
25 namespace AudioStandard {
26 constexpr int32_t DEFAULT_STREAM_ID = 10;
27 class NoneMixEngineUnitTest : public testing::Test {
28 public:
29 static void SetUpTestCase(void);
30 static void TearDownTestCase(void);
31 void SetUp();
32 void TearDown();
33
34 protected:
35 AudioProcessConfig InitProcessConfig();
36
37 protected:
38 std::unique_ptr<AudioPlaybackEngine> playbackEngine_;
39 };
40
SetUpTestCase(void)41 void NoneMixEngineUnitTest::SetUpTestCase(void)
42 {
43 // input testsuit setup step,setup invoked before all testcases
44 }
45
TearDownTestCase(void)46 void NoneMixEngineUnitTest::TearDownTestCase(void)
47 {
48 // input testsuit teardown step,teardown invoked after all testcases
49 }
50
SetUp(void)51 void NoneMixEngineUnitTest::SetUp(void)
52 {
53 AudioDeviceDescriptor deviceInfo(AudioDeviceDescriptor::DEVICE_INFO);
54 deviceInfo.deviceType_ = DEVICE_TYPE_USB_HEADSET;
55 playbackEngine_ = std::make_unique<NoneMixEngine>();
56 playbackEngine_->Init(deviceInfo, false);
57 }
58
TearDown(void)59 void NoneMixEngineUnitTest::TearDown(void)
60 {
61 if (playbackEngine_) {
62 playbackEngine_->Stop();
63 playbackEngine_ = nullptr;
64 }
65 }
66
InitProcessConfig()67 AudioProcessConfig NoneMixEngineUnitTest::InitProcessConfig()
68 {
69 AudioProcessConfig config;
70 config.appInfo.appUid = DEFAULT_STREAM_ID;
71 config.appInfo.appPid = DEFAULT_STREAM_ID;
72 config.streamInfo.format = SAMPLE_S32LE;
73 config.streamInfo.samplingRate = SAMPLE_RATE_48000;
74 config.streamInfo.channels = STEREO;
75 config.streamInfo.channelLayout = AudioChannelLayout::CH_LAYOUT_STEREO;
76 config.audioMode = AudioMode::AUDIO_MODE_PLAYBACK;
77 config.streamType = AudioStreamType::STREAM_MUSIC;
78 config.deviceType = DEVICE_TYPE_USB_HEADSET;
79 return config;
80 }
81
82 /**
83 * @tc.name : Test Direct Audio Playback Engine State
84 * @tc.type : FUNC
85 * @tc.number: DirectAudioPlayBackEngineState_001
86 * @tc.desc : Test direct audio playback engine state(start->pause->flush->stop->release) success
87 */
88 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_001, TestSize.Level1)
89 {
90 AudioProcessConfig config = InitProcessConfig();
91 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
92 int32_t ret = rendererStream->InitParams();
93 EXPECT_EQ(SUCCESS, ret);
94 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
95 ret = rendererStream->Start();
96 EXPECT_EQ(SUCCESS, ret);
97 ret = rendererStream->Pause();
98 EXPECT_EQ(SUCCESS, ret);
99 ret = rendererStream->Flush();
100 EXPECT_EQ(SUCCESS, ret);
101 ret = rendererStream->Stop();
102 EXPECT_EQ(SUCCESS, ret);
103 ret = rendererStream->Release();
104 EXPECT_EQ(SUCCESS, ret);
105 }
106
107 /**
108 * @tc.name : Test Direct Audio Playback Engine State
109 * @tc.type : FUNC
110 * @tc.number: DirectAudioPlayBackEngineState_002
111 * @tc.desc : Test direct audio playback engine state init success
112 */
113 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_002, TestSize.Level1)
114 {
115 AudioProcessConfig config;
116 config.appInfo.appUid = DEFAULT_STREAM_ID;
117 config.appInfo.appPid = DEFAULT_STREAM_ID;
118 config.streamInfo.format = SAMPLE_S32LE;
119 config.streamInfo.samplingRate = SAMPLE_RATE_48000;
120 config.streamInfo.channels = STEREO;
121 config.streamInfo.channelLayout = AudioChannelLayout::CH_LAYOUT_STEREO;
122 config.audioMode = AudioMode::AUDIO_MODE_PLAYBACK;
123 config.streamType = AudioStreamType::STREAM_MUSIC;
124 config.deviceType = DEVICE_TYPE_USB_HEADSET;
125 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
126 int32_t ret = rendererStream->InitParams();
127 EXPECT_EQ(SUCCESS, ret);
128
129 // ERR_ILLEGAL_STATE
130 ret = rendererStream->Start();
131 EXPECT_EQ(SUCCESS, ret);
132 ret = rendererStream->InitParams();
133 EXPECT_EQ(ERR_ILLEGAL_STATE, ret);
134
135 // ERR_ILLEGAL_STATE
136 ret = rendererStream->Stop();
137 EXPECT_EQ(SUCCESS, ret);
138 ret = rendererStream->InitParams();
139 EXPECT_EQ(ERR_ILLEGAL_STATE, ret);
140
141 ret = rendererStream->Release();
142 EXPECT_EQ(SUCCESS, ret);
143 ret = rendererStream->InitParams();
144 EXPECT_EQ(SUCCESS, ret);
145 }
146
147 /**
148 * @tc.name : Test Direct Audio Playback Engine State
149 * @tc.type : FUNC
150 * @tc.number: DirectAudioPlayBackEngineState_003
151 * @tc.desc : Test direct audio playback engine state start success
152 */
153 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_003, TestSize.Level1)
154 {
155 AudioProcessConfig config = InitProcessConfig();
156 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
157 int32_t ret = rendererStream->InitParams();
158 EXPECT_EQ(SUCCESS, ret);
159 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
160 ret = rendererStream->Start();
161 EXPECT_EQ(SUCCESS, ret);
162 ret = rendererStream->Stop();
163 EXPECT_EQ(SUCCESS, ret);
164 ret = rendererStream->Release();
165 EXPECT_EQ(SUCCESS, ret);
166
167 // ERR_ILLEGAL_STATE
168 ret = rendererStream->Start();
169 EXPECT_EQ(ERR_ILLEGAL_STATE, ret);
170 }
171
172 /**
173 * @tc.name : Test Direct Audio Playback Engine State
174 * @tc.type : FUNC
175 * @tc.number: DirectAudioPlayBackEngineState_004
176 * @tc.desc : Test direct audio playback engine state pause success
177 */
178 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_004, TestSize.Level1)
179 {
180 AudioProcessConfig config = InitProcessConfig();
181 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
182 int32_t ret = rendererStream->InitParams();
183 EXPECT_EQ(SUCCESS, ret);
184 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
185 ret = rendererStream->Start();
186 EXPECT_EQ(SUCCESS, ret);
187 ret = rendererStream->Pause();
188 EXPECT_EQ(SUCCESS, ret);
189 ret = rendererStream->Stop();
190 EXPECT_EQ(SUCCESS, ret);
191 ret = rendererStream->Release();
192 EXPECT_EQ(SUCCESS, ret);
193 }
194
195 /**
196 * @tc.name : Test Direct Audio Playback Engine State
197 * @tc.type : FUNC
198 * @tc.number: DirectAudioPlayBackEngineState_005
199 * @tc.desc : Test direct audio playback engine state flush success
200 */
201 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_005, TestSize.Level1)
202 {
203 AudioProcessConfig config = InitProcessConfig();
204 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
205 int32_t ret = rendererStream->InitParams();
206 EXPECT_EQ(SUCCESS, ret);
207 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
208 ret = rendererStream->Start();
209 EXPECT_EQ(SUCCESS, ret);
210 ret = rendererStream->Flush();
211 EXPECT_EQ(SUCCESS, ret);
212 ret = rendererStream->Stop();
213 EXPECT_EQ(SUCCESS, ret);
214 ret = rendererStream->Release();
215 EXPECT_EQ(SUCCESS, ret);
216 }
217
218 /**
219 * @tc.name : Test Direct Audio Playback Engine State
220 * @tc.type : FUNC
221 * @tc.number: DirectAudioPlayBackEngineState_006
222 * @tc.desc : Test direct audio playback engine state drain success
223 */
224 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_006, TestSize.Level1)
225 {
226 AudioProcessConfig config = InitProcessConfig();
227 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
228 int32_t ret = rendererStream->InitParams();
229 EXPECT_EQ(SUCCESS, ret);
230 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
231 ret = rendererStream->Start();
232 EXPECT_EQ(SUCCESS, ret);
233 ret = rendererStream->Drain();
234 EXPECT_EQ(SUCCESS, ret);
235 ret = rendererStream->Stop();
236 EXPECT_EQ(SUCCESS, ret);
237 ret = rendererStream->Release();
238 EXPECT_EQ(SUCCESS, ret);
239 }
240
241 /**
242 * @tc.name : Test Direct Audio Playback Engine Set Config
243 * @tc.type : FUNC
244 * @tc.number: DirectAudioPlayBackEngineSetConfig_001
245 * @tc.desc : Test direct audio playback engine set config (sampleRate 192000) success
246 */
247 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_001, TestSize.Level1)
248 {
249 AudioProcessConfig config = InitProcessConfig();
250 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_192000;
251 config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
252 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
253 int32_t ret = rendererStream->InitParams();
254 EXPECT_EQ(SUCCESS, ret);
255 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
256 ret = rendererStream->Start();
257 EXPECT_EQ(SUCCESS, ret);
258 ret = rendererStream->Stop();
259 EXPECT_EQ(SUCCESS, ret);
260 ret = rendererStream->Release();
261 EXPECT_EQ(SUCCESS, ret);
262 }
263
264 /**
265 * @tc.name : Test Direct Audio Playback Engine Set Config
266 * @tc.type : FUNC
267 * @tc.number: DirectAudioPlayBackEngineSetConfig_002
268 * @tc.desc : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
269 */
270 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_002, TestSize.Level1)
271 {
272 AudioProcessConfig config = InitProcessConfig();
273 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_192000;
274 config.deviceType = DEVICE_TYPE_USB_HEADSET;
275 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
276 int32_t ret = rendererStream->InitParams();
277 EXPECT_EQ(SUCCESS, ret);
278 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
279 ret = rendererStream->Start();
280 EXPECT_EQ(SUCCESS, ret);
281 ret = rendererStream->Stop();
282 EXPECT_EQ(SUCCESS, ret);
283 ret = rendererStream->Release();
284 EXPECT_EQ(SUCCESS, ret);
285 }
286
287 /**
288 * @tc.name : Test Direct Audio Playback Engine Set Config
289 * @tc.type : FUNC
290 * @tc.number: DirectAudioPlayBackEngineSetConfig_003
291 * @tc.desc : Test direct audio playback engine set config (sampleRate 176400) success
292 */
293 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_003, TestSize.Level1)
294 {
295 AudioProcessConfig config = InitProcessConfig();
296 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_176400;
297 config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
298 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
299 int32_t ret = rendererStream->InitParams();
300 EXPECT_EQ(SUCCESS, ret);
301 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
302 ret = rendererStream->Start();
303 EXPECT_EQ(SUCCESS, ret);
304 ret = rendererStream->Stop();
305 EXPECT_EQ(SUCCESS, ret);
306 ret = rendererStream->Release();
307 EXPECT_EQ(SUCCESS, ret);
308 }
309
310 /**
311 * @tc.name : Test Direct Audio Playback Engine Set Config
312 * @tc.type : FUNC
313 * @tc.number: DirectAudioPlayBackEngineSetConfig_004
314 * @tc.desc : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
315 */
316 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_004, TestSize.Level1)
317 {
318 AudioProcessConfig config = InitProcessConfig();
319 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_176400;
320 config.deviceType = DEVICE_TYPE_USB_HEADSET;
321 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
322 int32_t ret = rendererStream->InitParams();
323 EXPECT_EQ(SUCCESS, ret);
324 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
325 ret = rendererStream->Start();
326 EXPECT_EQ(SUCCESS, ret);
327 ret = rendererStream->Stop();
328 EXPECT_EQ(SUCCESS, ret);
329 ret = rendererStream->Release();
330 EXPECT_EQ(SUCCESS, ret);
331 }
332
333 /**
334 * @tc.name : Test Direct Audio Playback Engine Set Config
335 * @tc.type : FUNC
336 * @tc.number: DirectAudioPlayBackEngineSetConfig_005
337 * @tc.desc : Test direct audio playback engine set config (sampleRate 96000) success
338 */
339 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_005, TestSize.Level1)
340 {
341 AudioProcessConfig config = InitProcessConfig();
342 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_96000;
343 config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
344 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
345 int32_t ret = rendererStream->InitParams();
346 EXPECT_EQ(SUCCESS, ret);
347 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
348 ret = rendererStream->Start();
349 EXPECT_EQ(SUCCESS, ret);
350 ret = rendererStream->Stop();
351 EXPECT_EQ(SUCCESS, ret);
352 ret = rendererStream->Release();
353 EXPECT_EQ(SUCCESS, ret);
354 }
355
356 /**
357 * @tc.name : Test Direct Audio Playback Engine Set Config
358 * @tc.type : FUNC
359 * @tc.number: DirectAudioPlayBackEngineSetConfig_006
360 * @tc.desc : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
361 */
362 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_006, TestSize.Level1)
363 {
364 AudioProcessConfig config = InitProcessConfig();
365 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_96000;
366 config.deviceType = DEVICE_TYPE_USB_HEADSET;
367 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
368 int32_t ret = rendererStream->InitParams();
369 EXPECT_EQ(SUCCESS, ret);
370 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
371 ret = rendererStream->Start();
372 EXPECT_EQ(SUCCESS, ret);
373 ret = rendererStream->Stop();
374 EXPECT_EQ(SUCCESS, ret);
375 ret = rendererStream->Release();
376 EXPECT_EQ(SUCCESS, ret);
377 }
378
379 /**
380 * @tc.name : Test Direct Audio Playback Engine Set Config
381 * @tc.type : FUNC
382 * @tc.number: DirectAudioPlayBackEngineSetConfig_007
383 * @tc.desc : Test direct audio playback engine set config (sampleRate 88200) success
384 */
385 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_007, TestSize.Level1)
386 {
387 AudioProcessConfig config = InitProcessConfig();
388 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_88200;
389 config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
390 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
391 int32_t ret = rendererStream->InitParams();
392 EXPECT_EQ(SUCCESS, ret);
393 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
394 ret = rendererStream->Start();
395 EXPECT_EQ(SUCCESS, ret);
396 ret = rendererStream->Stop();
397 EXPECT_EQ(SUCCESS, ret);
398 ret = rendererStream->Release();
399 EXPECT_EQ(SUCCESS, ret);
400 }
401
402 /**
403 * @tc.name : Test Direct Audio Playback Engine Set Config
404 * @tc.type : FUNC
405 * @tc.number: DirectAudioPlayBackEngineSetConfig_008
406 * @tc.desc : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
407 */
408 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_008, TestSize.Level1)
409 {
410 AudioProcessConfig config = InitProcessConfig();
411 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_88200;
412 config.deviceType = DEVICE_TYPE_USB_HEADSET;
413 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
414 int32_t ret = rendererStream->InitParams();
415 EXPECT_EQ(SUCCESS, ret);
416 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
417 ret = rendererStream->Start();
418 EXPECT_EQ(SUCCESS, ret);
419 ret = rendererStream->Stop();
420 EXPECT_EQ(SUCCESS, ret);
421 ret = rendererStream->Release();
422 EXPECT_EQ(SUCCESS, ret);
423 }
424
425 /**
426 * @tc.name : Test Direct Audio Playback Engine Set Config
427 * @tc.type : FUNC
428 * @tc.number: DirectAudioPlayBackEngineSetConfig_009
429 * @tc.desc : Test direct audio playback engine set config (sampleRate 48000) success
430 */
431 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_009, TestSize.Level1)
432 {
433 AudioProcessConfig config = InitProcessConfig();
434 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_48000;
435 config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
436 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
437 int32_t ret = rendererStream->InitParams();
438 EXPECT_EQ(SUCCESS, ret);
439 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
440 ret = rendererStream->Start();
441 EXPECT_EQ(SUCCESS, ret);
442 ret = rendererStream->Stop();
443 EXPECT_EQ(SUCCESS, ret);
444 ret = rendererStream->Release();
445 EXPECT_EQ(SUCCESS, ret);
446 }
447
448 /**
449 * @tc.name : Test Direct Audio Playback Engine Set Config
450 * @tc.type : FUNC
451 * @tc.number: DirectAudioPlayBackEngineSetConfig_010
452 * @tc.desc : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
453 */
454 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_010, TestSize.Level1)
455 {
456 AudioProcessConfig config = InitProcessConfig();
457 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_48000;
458 config.deviceType = DEVICE_TYPE_USB_HEADSET;
459 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
460 int32_t ret = rendererStream->InitParams();
461 EXPECT_EQ(SUCCESS, ret);
462 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
463 ret = rendererStream->Start();
464 EXPECT_EQ(SUCCESS, ret);
465 ret = rendererStream->Stop();
466 EXPECT_EQ(SUCCESS, ret);
467 ret = rendererStream->Release();
468 EXPECT_EQ(SUCCESS, ret);
469 }
470
471 /**
472 * @tc.name : Test Direct Audio Playback Engine Set Config
473 * @tc.type : FUNC
474 * @tc.number: DirectAudioPlayBackEngineSetConfig_011
475 * @tc.desc : Test direct audio playback engine set config (sampleRate 44100) success
476 */
477 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_011, TestSize.Level1)
478 {
479 AudioProcessConfig config = InitProcessConfig();
480 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_44100;
481 config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
482 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
483 int32_t ret = rendererStream->InitParams();
484 EXPECT_EQ(SUCCESS, ret);
485 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
486 ret = rendererStream->Start();
487 EXPECT_EQ(SUCCESS, ret);
488 ret = rendererStream->Stop();
489 EXPECT_EQ(SUCCESS, ret);
490 ret = rendererStream->Release();
491 EXPECT_EQ(SUCCESS, ret);
492 }
493
494 /**
495 * @tc.name : Test Direct Audio Playback Engine Set Config
496 * @tc.type : FUNC
497 * @tc.number: DirectAudioPlayBackEngineSetConfig_012
498 * @tc.desc : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
499 */
500 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_012, TestSize.Level1)
501 {
502 AudioProcessConfig config = InitProcessConfig();
503 config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_44100;
504 config.deviceType = DEVICE_TYPE_USB_HEADSET;
505 std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
506 int32_t ret = rendererStream->InitParams();
507 EXPECT_EQ(SUCCESS, ret);
508 rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
509 ret = rendererStream->Start();
510 EXPECT_EQ(SUCCESS, ret);
511 ret = rendererStream->Stop();
512 EXPECT_EQ(SUCCESS, ret);
513 ret = rendererStream->Release();
514 EXPECT_EQ(SUCCESS, ret);
515 }
516
517 /**
518 * @tc.name : Test NoneMixEngine API
519 * @tc.type : FUNC
520 * @tc.number: NoneMixEngine_001
521 * @tc.desc : Test NoneMixEngine interface.
522 */
523 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_001, TestSize.Level1)
524 {
525 NoneMixEngine noneMixEngineRet;
526 AudioDeviceDescriptor deviceRet(AudioDeviceDescriptor::DEVICE_INFO);
527 bool isVoipRet = true;
528 noneMixEngineRet.isInit_ = true;
529 deviceRet.deviceType_ = DEVICE_TYPE_INVALID;
530 noneMixEngineRet.device_.deviceType_ = DEVICE_TYPE_NONE;
531 noneMixEngineRet.renderId_ = HDI_INVALID_ID;
532
533 auto ret = noneMixEngineRet.Init(deviceRet, isVoipRet);
534 EXPECT_EQ(ret, SUCCESS);
535
536 ret = noneMixEngineRet.Init(deviceRet, isVoipRet);
537 EXPECT_EQ(ret, SUCCESS);
538 }
539
540 /**
541 * @tc.name : Test NoneMixEngine API
542 * @tc.type : FUNC
543 * @tc.number: NoneMixEngine_002
544 * @tc.desc : Test NoneMixEngine interface.
545 */
546 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_002, TestSize.Level1)
547 {
548 NoneMixEngine noneMixEngineRet;
549 AudioDeviceDescriptor deviceRet(AudioDeviceDescriptor::DEVICE_INFO);
550 bool isVoipRet = true;
551 noneMixEngineRet.isInit_ = true;
552 deviceRet.deviceType_ = DEVICE_TYPE_INVALID;
553 noneMixEngineRet.device_.deviceType_ = DEVICE_TYPE_INVALID;
554 noneMixEngineRet.renderId_ = HDI_INVALID_ID;
555
556 auto ret = noneMixEngineRet.Init(deviceRet, isVoipRet);
557 EXPECT_EQ(ret, SUCCESS);
558
559 deviceRet.deviceType_ = DEVICE_TYPE_NONE;
560 ret = noneMixEngineRet.Init(deviceRet, isVoipRet);
561 EXPECT_EQ(ret, SUCCESS);
562 }
563
564 /**
565 * @tc.name : Test NoneMixEngine API
566 * @tc.type : FUNC
567 * @tc.number: NoneMixEngine_003
568 * @tc.desc : Test NoneMixEngine interface.
569 */
570 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_003, TestSize.Level1)
571 {
572 NoneMixEngine noneMixEngineRet;
573 noneMixEngineRet.playbackThread_ = nullptr;
574 noneMixEngineRet.isStart_ = true;
575
576 auto ret = noneMixEngineRet.Stop();
577 EXPECT_EQ(ret, SUCCESS);
578
579 noneMixEngineRet.PauseAsync();
580 ret = noneMixEngineRet.StopAudioSink();
581 EXPECT_EQ(ret, SUCCESS);
582 }
583
584 /**
585 * @tc.name : Test NoneMixEngine API
586 * @tc.type : FUNC
587 * @tc.number: NoneMixEngine_004
588 * @tc.desc : Test NoneMixEngine interface.
589 */
590 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_004, TestSize.Level1)
591 {
592 NoneMixEngine noneMixEngineRet;
593 noneMixEngineRet.playbackThread_ = nullptr;
594 noneMixEngineRet.isStart_ = true;
595
596 noneMixEngineRet.Flush();
597 noneMixEngineRet.MixStreams();
598 auto ret = noneMixEngineRet.Pause();
599 EXPECT_EQ(ret, SUCCESS);
600 }
601
602 /**
603 * @tc.name : Test NoneMixEngine API
604 * @tc.type : FUNC
605 * @tc.number: NoneMixEngine_005
606 * @tc.desc : Test NoneMixEngine interface.
607 */
608 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_005, TestSize.Level1)
609 {
610 NoneMixEngine noneMixEngineRet;
611 noneMixEngineRet.playbackThread_ = nullptr;
612 noneMixEngineRet.isStart_ = true;
613 uint32_t indexRet1 = 0;
614 uint32_t indexRet2 = 1;
615 AudioProcessConfig configRet;
616 std::shared_ptr<ProRendererStreamImpl> rendererStream1 = std::make_shared<ProRendererStreamImpl>(configRet, true);
617 rendererStream1->SetStreamIndex(indexRet1);
618 noneMixEngineRet.stream_ = rendererStream1;
619
620 auto ret = noneMixEngineRet.AddRenderer(rendererStream1);
621 EXPECT_EQ(ret, SUCCESS);
622
623 std::shared_ptr<ProRendererStreamImpl> rendererStream2 = std::make_shared<ProRendererStreamImpl>(configRet, true);
624 rendererStream2->SetStreamIndex(indexRet2);
625 ret = noneMixEngineRet.AddRenderer(rendererStream2);
626 EXPECT_EQ(ret, ERROR_UNSUPPORTED);
627 }
628
629 /**
630 * @tc.name : Test NoneMixEngine API
631 * @tc.type : FUNC
632 * @tc.number: NoneMixEngine_006
633 * @tc.desc : Test NoneMixEngine interface.
634 */
635 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_006, TestSize.Level1)
636 {
637 NoneMixEngine noneMixEngineRet;
638 noneMixEngineRet.playbackThread_ = nullptr;
639 noneMixEngineRet.isStart_ = true;
640 uint32_t indexRet1 = 0;
641 uint32_t indexRet2 = 1;
642 AudioProcessConfig configRet;
643 std::shared_ptr<ProRendererStreamImpl> rendererStream1 = std::make_shared<ProRendererStreamImpl>(configRet, true);
644 rendererStream1->SetStreamIndex(indexRet1);
645
646 EXPECT_EQ(noneMixEngineRet.stream_, nullptr);
647 noneMixEngineRet.RemoveRenderer(rendererStream1);
648 noneMixEngineRet.stream_ = rendererStream1;
649
650 std::shared_ptr<ProRendererStreamImpl> rendererStream2 = std::make_shared<ProRendererStreamImpl>(configRet, true);
651 rendererStream2->SetStreamIndex(indexRet2);
652 EXPECT_NE(noneMixEngineRet.stream_->GetStreamIndex(), rendererStream2->GetStreamIndex());
653 noneMixEngineRet.RemoveRenderer(rendererStream2);
654 }
655
656 /**
657 * @tc.name : Test NoneMixEngine API
658 * @tc.type : FUNC
659 * @tc.number: NoneMixEngine_007
660 * @tc.desc : Test NoneMixEngine interface.
661 */
662 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_007, TestSize.Level1)
663 {
664 NoneMixEngine noneMixEngineRet;
665 AudioSamplingRate sampleRateRet = AudioSamplingRate::SAMPLE_RATE_44100;
666 auto ret = noneMixEngineRet.GetDirectSampleRate(sampleRateRet);
667 EXPECT_EQ(ret, AudioSamplingRate::SAMPLE_RATE_48000);
668
669 sampleRateRet = AudioSamplingRate::SAMPLE_RATE_88200;
670 ret = noneMixEngineRet.GetDirectSampleRate(sampleRateRet);
671 EXPECT_EQ(ret, AudioSamplingRate::SAMPLE_RATE_96000);
672
673 sampleRateRet = AudioSamplingRate::SAMPLE_RATE_176400;
674 ret = noneMixEngineRet.GetDirectSampleRate(sampleRateRet);
675 EXPECT_EQ(ret, AudioSamplingRate::SAMPLE_RATE_192000);
676
677 sampleRateRet = AudioSamplingRate::SAMPLE_RATE_8000;
678 ret = noneMixEngineRet.GetDirectSampleRate(sampleRateRet);
679 EXPECT_EQ(ret, AudioSamplingRate::SAMPLE_RATE_8000);
680 }
681
682 /**
683 * @tc.name : Test NoneMixEngine API
684 * @tc.type : FUNC
685 * @tc.number: NoneMixEngine_008
686 * @tc.desc : Test NoneMixEngine interface.
687 */
688 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_008, TestSize.Level1)
689 {
690 NoneMixEngine noneMixEngineRet;
691 AudioSamplingRate sampleRateRet = AudioSamplingRate::SAMPLE_RATE_8000;
692 auto ret = noneMixEngineRet.GetDirectVoipSampleRate(sampleRateRet);
693 EXPECT_EQ(ret, AudioSamplingRate::SAMPLE_RATE_16000);
694 }
695
696 /**
697 * @tc.name : Test NoneMixEngine API
698 * @tc.type : FUNC
699 * @tc.number: NoneMixEngine_010
700 * @tc.desc : Test NoneMixEngine::Start()
701 */
702 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_010, TestSize.Level1)
703 {
704 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
705 EXPECT_NE(ptrNoneMixEngine, nullptr);
706
707 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
708 HDI_ID_INFO_DEFAULT, true);
709 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
710
711 auto ret = ptrNoneMixEngine->Start();
712 EXPECT_EQ(ret, ERR_INVALID_HANDLE);
713 }
714
715 /**
716 * @tc.name : Test NoneMixEngine API
717 * @tc.type : FUNC
718 * @tc.number: NoneMixEngine_011
719 * @tc.desc : Test NoneMixEngine::DoFadeinOut
720 */
721 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_011, TestSize.Level1)
722 {
723 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
724 EXPECT_NE(ptrNoneMixEngine, nullptr);
725
726 bool isFadeOut = true;
727 char buffer = 'a';
728 size_t bufferSize = 10;
729 char *pBuffer = &buffer;
730 EXPECT_NE(pBuffer, nullptr);
731
732 ptrNoneMixEngine->uChannel_ = 10;
733 ptrNoneMixEngine->uFormat_ = sizeof(int16_t);
734
735 ptrNoneMixEngine->DoFadeinOut(isFadeOut, pBuffer, bufferSize);
736 }
737
738 /**
739 * @tc.name : Test NoneMixEngine API
740 * @tc.type : FUNC
741 * @tc.number: NoneMixEngine_012
742 * @tc.desc : Test NoneMixEngine::DoFadeinOut
743 */
744 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_012, TestSize.Level1)
745 {
746 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
747 EXPECT_NE(ptrNoneMixEngine, nullptr);
748
749 bool isFadeOut = true;
750 char buffer = 'a';
751 size_t bufferSize = 10;
752 char *pBuffer = &buffer;
753 EXPECT_NE(pBuffer, nullptr);
754
755 ptrNoneMixEngine->uChannel_ = 10;
756 ptrNoneMixEngine->uFormat_ = sizeof(int32_t);
757
758 ptrNoneMixEngine->DoFadeinOut(isFadeOut, pBuffer, bufferSize);
759 }
760
761 /**
762 * @tc.name : Test NoneMixEngine API
763 * @tc.type : FUNC
764 * @tc.number: NoneMixEngine_013
765 * @tc.desc : Test NoneMixEngine::DoFadeinOut
766 */
767 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_013, TestSize.Level1)
768 {
769 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
770 EXPECT_NE(ptrNoneMixEngine, nullptr);
771
772 bool isFadeOut = false;
773 char buffer = 'a';
774 size_t bufferSize = 10;
775 char *pBuffer = &buffer;
776 EXPECT_NE(pBuffer, nullptr);
777
778 ptrNoneMixEngine->uChannel_ = 10;
779 ptrNoneMixEngine->uFormat_ = sizeof(int16_t);
780
781 ptrNoneMixEngine->DoFadeinOut(isFadeOut, pBuffer, bufferSize);
782 }
783
784 /**
785 * @tc.name : Test NoneMixEngine API
786 * @tc.type : FUNC
787 * @tc.number: NoneMixEngine_014
788 * @tc.desc : Test NoneMixEngine::DoFadeinOut
789 */
790 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_014, TestSize.Level1)
791 {
792 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
793 EXPECT_NE(ptrNoneMixEngine, nullptr);
794
795 bool isFadeOut = false;
796 char buffer = 'a';
797 size_t bufferSize = 10;
798 char *pBuffer = &buffer;
799 EXPECT_NE(pBuffer, nullptr);
800
801 ptrNoneMixEngine->uChannel_ = 10;
802 ptrNoneMixEngine->uFormat_ = sizeof(int32_t);
803
804 ptrNoneMixEngine->DoFadeinOut(isFadeOut, pBuffer, bufferSize);
805 }
806
807 /**
808 * @tc.name : Test NoneMixEngine API
809 * @tc.type : FUNC
810 * @tc.number: NoneMixEngine_015
811 * @tc.desc : Test NoneMixEngine::MixStreams
812 */
813 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_015, TestSize.Level1)
814 {
815 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
816 EXPECT_NE(ptrNoneMixEngine, nullptr);
817
818 AudioProcessConfig configRet;
819
820 ptrNoneMixEngine->stream_ = std::make_shared<ProRendererStreamImpl>(configRet, true);
821 EXPECT_NE(ptrNoneMixEngine->stream_, nullptr);
822
823 ptrNoneMixEngine->MixStreams();
824 }
825
826 /**
827 * @tc.name : Test NoneMixEngine API
828 * @tc.type : FUNC
829 * @tc.number: NoneMixEngine_016
830 * @tc.desc : Test NoneMixEngine::MixStreams
831 */
832 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_016, TestSize.Level1)
833 {
834 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
835 EXPECT_NE(ptrNoneMixEngine, nullptr);
836
837 AudioProcessConfig configRet;
838
839 ptrNoneMixEngine->stream_ = nullptr;
840
841 ptrNoneMixEngine->MixStreams();
842 }
843
844 /**
845 * @tc.name : Test NoneMixEngine API
846 * @tc.type : FUNC
847 * @tc.number: NoneMixEngine_017
848 * @tc.desc : Test NoneMixEngine::MixStreams
849 */
850 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_017, TestSize.Level1)
851 {
852 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
853 EXPECT_NE(ptrNoneMixEngine, nullptr);
854
855 AudioProcessConfig configRet;
856
857 ptrNoneMixEngine->stream_ = std::make_shared<ProRendererStreamImpl>(configRet, true);
858 EXPECT_NE(ptrNoneMixEngine->stream_, nullptr);
859 ptrNoneMixEngine->failedCount_.store(100);
860
861 ptrNoneMixEngine->MixStreams();
862 }
863
864 /**
865 * @tc.name : Test NoneMixEngine API
866 * @tc.type : FUNC
867 * @tc.number: NoneMixEngine_018
868 * @tc.desc : Test NoneMixEngine::MixStreams
869 */
870 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_018, TestSize.Level1)
871 {
872 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
873 EXPECT_NE(ptrNoneMixEngine, nullptr);
874
875 AudioProcessConfig configRet;
876
877 ptrNoneMixEngine->stream_ = std::make_shared<ProRendererStreamImpl>(configRet, true);
878 EXPECT_NE(ptrNoneMixEngine->stream_, nullptr);
879 ptrNoneMixEngine->failedCount_.store(10);
880 ptrNoneMixEngine->startFadeout_.store(true);
881
882 ptrNoneMixEngine->MixStreams();
883 }
884
885 /**
886 * @tc.name : Test NoneMixEngine API
887 * @tc.type : FUNC
888 * @tc.number: NoneMixEngine_019
889 * @tc.desc : Test NoneMixEngine::MixStreams
890 */
891 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_019, TestSize.Level1)
892 {
893 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
894 EXPECT_NE(ptrNoneMixEngine, nullptr);
895
896 AudioProcessConfig configRet;
897
898 ptrNoneMixEngine->stream_ = std::make_shared<ProRendererStreamImpl>(configRet, true);
899 EXPECT_NE(ptrNoneMixEngine->stream_, nullptr);
900 ptrNoneMixEngine->failedCount_.store(10);
901 ptrNoneMixEngine->startFadeout_.store(false);
902 ptrNoneMixEngine->startFadein_.store(true);
903
904 ptrNoneMixEngine->MixStreams();
905 }
906
907 /**
908 * @tc.name : Test NoneMixEngine API
909 * @tc.type : FUNC
910 * @tc.number: NoneMixEngine_020
911 * @tc.desc : Test NoneMixEngine::MixStreams
912 */
913 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_020, TestSize.Level1)
914 {
915 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
916 EXPECT_NE(ptrNoneMixEngine, nullptr);
917
918 AudioProcessConfig configRet;
919
920 ptrNoneMixEngine->stream_ = std::make_shared<ProRendererStreamImpl>(configRet, true);
921 EXPECT_NE(ptrNoneMixEngine->stream_, nullptr);
922 ptrNoneMixEngine->failedCount_.store(10);
923 ptrNoneMixEngine->startFadeout_.store(false);
924 ptrNoneMixEngine->startFadein_.store(false);
925
926 ptrNoneMixEngine->MixStreams();
927 }
928
929 /**
930 * @tc.name : Test NoneMixEngine API
931 * @tc.type : FUNC
932 * @tc.number: NoneMixEngine_021
933 * @tc.desc : Test NoneMixEngine::GetDirectSampleRate
934 */
935 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_021, TestSize.Level1)
936 {
937 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
938 EXPECT_NE(ptrNoneMixEngine, nullptr);
939
940 AudioSamplingRate sampleRateRet = AudioSamplingRate::SAMPLE_RATE_44100;
941 auto ret = ptrNoneMixEngine->GetDirectSampleRate(sampleRateRet);
942 EXPECT_EQ(ret, AudioSamplingRate::SAMPLE_RATE_48000);
943
944 sampleRateRet = AudioSamplingRate::SAMPLE_RATE_88200;
945 ret = ptrNoneMixEngine->GetDirectSampleRate(sampleRateRet);
946 EXPECT_EQ(ret, AudioSamplingRate::SAMPLE_RATE_96000);
947
948 sampleRateRet = AudioSamplingRate::SAMPLE_RATE_176400;
949 ret = ptrNoneMixEngine->GetDirectSampleRate(sampleRateRet);
950 EXPECT_EQ(ret, AudioSamplingRate::SAMPLE_RATE_192000);
951
952 sampleRateRet = AudioSamplingRate::SAMPLE_RATE_8000;
953 ret = ptrNoneMixEngine->GetDirectSampleRate(sampleRateRet);
954 EXPECT_EQ(ret, AudioSamplingRate::SAMPLE_RATE_8000);
955 }
956
957 /**
958 * @tc.name : Test NoneMixEngine API
959 * @tc.type : FUNC
960 * @tc.number: NoneMixEngine_022
961 * @tc.desc : Test NoneMixEngine::InitSink
962 */
963 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_022, TestSize.Level1)
964 {
965 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
966 EXPECT_NE(ptrNoneMixEngine, nullptr);
967
968 AudioStreamInfo streamInfo;
969 ptrNoneMixEngine->isInit_ = false;
970 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
971 HDI_ID_INFO_DEFAULT, true);
972 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
973
974 ptrNoneMixEngine->InitSink(streamInfo);
975 }
976
977
978 /**
979 * @tc.name : Test NoneMixEngine API
980 * @tc.type : FUNC
981 * @tc.number: NoneMixEngine_023
982 * @tc.desc : Test NoneMixEngine::InitSink
983 */
984 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_023, TestSize.Level1)
985 {
986 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
987 EXPECT_NE(ptrNoneMixEngine, nullptr);
988
989 AudioStreamInfo streamInfo;
990 ptrNoneMixEngine->isInit_ = true;
991 ptrNoneMixEngine->renderId_ = HDI_INVALID_ID;
992
993 ptrNoneMixEngine->InitSink(streamInfo);
994 }
995
996 /**
997 * @tc.name : Test NoneMixEngine API
998 * @tc.type : FUNC
999 * @tc.number: NoneMixEngine_024
1000 * @tc.desc : Test NoneMixEngine::InitSink
1001 */
1002 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_024, TestSize.Level1)
1003 {
1004 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1005 EXPECT_NE(ptrNoneMixEngine, nullptr);
1006
1007 AudioStreamInfo streamInfo;
1008 ptrNoneMixEngine->isInit_ = true;
1009 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1010 HDI_ID_INFO_DEFAULT, true);
1011 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1012
1013 streamInfo.channels = AudioChannel::CHANNEL_15;
1014 ptrNoneMixEngine->uChannel_ = 1;
1015
1016 ptrNoneMixEngine->InitSink(streamInfo);
1017 }
1018
1019 /**
1020 * @tc.name : Test NoneMixEngine API
1021 * @tc.type : FUNC
1022 * @tc.number: NoneMixEngine_025
1023 * @tc.desc : Test NoneMixEngine::InitSink
1024 */
1025 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_025, TestSize.Level1)
1026 {
1027 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1028 EXPECT_NE(ptrNoneMixEngine, nullptr);
1029
1030 AudioStreamInfo streamInfo;
1031 ptrNoneMixEngine->isInit_ = true;
1032 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1033 HDI_ID_INFO_DEFAULT, true);
1034 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1035
1036 streamInfo.channels = AudioChannel::CHANNEL_15;
1037 streamInfo.format = AudioSampleFormat::SAMPLE_U8;
1038 ptrNoneMixEngine->uChannel_ = 2;
1039 ptrNoneMixEngine->uFormat_ = SAMPLE_S32LE;
1040
1041 ptrNoneMixEngine->InitSink(streamInfo);
1042 }
1043
1044 /**
1045 * @tc.name : Test NoneMixEngine API
1046 * @tc.type : FUNC
1047 * @tc.number: NoneMixEngine_026
1048 * @tc.desc : Test NoneMixEngine::InitSink
1049 */
1050 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_026, TestSize.Level1)
1051 {
1052 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1053 EXPECT_NE(ptrNoneMixEngine, nullptr);
1054
1055 AudioStreamInfo streamInfo;
1056 ptrNoneMixEngine->isInit_ = true;
1057 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1058 HDI_ID_INFO_DEFAULT, true);
1059 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1060
1061 streamInfo.channels = AudioChannel::CHANNEL_15;
1062 streamInfo.format = AudioSampleFormat::SAMPLE_U8;
1063 ptrNoneMixEngine->uChannel_ = 2;
1064 ptrNoneMixEngine->uFormat_ = SAMPLE_S16LE;
1065 ptrNoneMixEngine->isVoip_ = true;
1066 streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_8000;
1067 ptrNoneMixEngine->uSampleRate_ = AudioSamplingRate::SAMPLE_RATE_24000;
1068
1069 ptrNoneMixEngine->InitSink(streamInfo);
1070 }
1071
1072 /**
1073 * @tc.name : Test NoneMixEngine API
1074 * @tc.type : FUNC
1075 * @tc.number: NoneMixEngine_027
1076 * @tc.desc : Test NoneMixEngine::InitSink
1077 */
1078 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_027, TestSize.Level1)
1079 {
1080 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1081 EXPECT_NE(ptrNoneMixEngine, nullptr);
1082
1083 AudioStreamInfo streamInfo;
1084 ptrNoneMixEngine->isInit_ = true;
1085 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1086 HDI_ID_INFO_DEFAULT, true);
1087 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1088
1089 streamInfo.channels = AudioChannel::CHANNEL_15;
1090 streamInfo.format = AudioSampleFormat::SAMPLE_U8;
1091 ptrNoneMixEngine->uChannel_ = 2;
1092 ptrNoneMixEngine->uFormat_ = SAMPLE_S16LE;
1093 ptrNoneMixEngine->isVoip_ = true;
1094 streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_8000;
1095 ptrNoneMixEngine->uSampleRate_ = AudioSamplingRate::SAMPLE_RATE_16000;
1096
1097 ptrNoneMixEngine->InitSink(streamInfo);
1098 }
1099
1100 /**
1101 * @tc.name : Test NoneMixEngine API
1102 * @tc.type : FUNC
1103 * @tc.number: NoneMixEngine_028
1104 * @tc.desc : Test NoneMixEngine::SwitchSink
1105 */
1106 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_028, TestSize.Level1)
1107 {
1108 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1109 EXPECT_NE(ptrNoneMixEngine, nullptr);
1110
1111 AudioStreamInfo streamInfo;
1112 ptrNoneMixEngine->isInit_ = true;
1113 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1114 HDI_ID_INFO_DEFAULT, true);
1115 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1116
1117 streamInfo.channels = AudioChannel::CHANNEL_15;
1118 streamInfo.format = AudioSampleFormat::SAMPLE_U8;
1119 ptrNoneMixEngine->uChannel_ = 2;
1120 ptrNoneMixEngine->uFormat_ = SAMPLE_S16LE;
1121 ptrNoneMixEngine->isVoip_ = true;
1122 streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_8000;
1123 ptrNoneMixEngine->uSampleRate_ = AudioSamplingRate::SAMPLE_RATE_16000;
1124 bool isVoip = true;
1125 int32_t ret = ptrNoneMixEngine->SwitchSink(streamInfo, isVoip);
1126 EXPECT_EQ(ret, SUCCESS);
1127 }
1128
1129 /**
1130 * @tc.name : Test NoneMixEngine API
1131 * @tc.type : FUNC
1132 * @tc.number: NoneMixEngine_029
1133 * @tc.desc : Test NoneMixEngine::SwitchSink
1134 */
1135 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_029, TestSize.Level1)
1136 {
1137 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1138 EXPECT_NE(ptrNoneMixEngine, nullptr);
1139
1140 AudioStreamInfo streamInfo;
1141 ptrNoneMixEngine->isInit_ = false;
1142 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1143 HDI_ID_INFO_DEFAULT, true);
1144 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1145
1146 streamInfo.channels = AudioChannel::CHANNEL_15;
1147 streamInfo.format = AudioSampleFormat::SAMPLE_U8;
1148 ptrNoneMixEngine->uChannel_ = 2;
1149 ptrNoneMixEngine->uFormat_ = SAMPLE_S16LE;
1150 ptrNoneMixEngine->isVoip_ = true;
1151 streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_8000;
1152 ptrNoneMixEngine->uSampleRate_ = AudioSamplingRate::SAMPLE_RATE_16000;
1153 bool isVoip = true;
1154 int32_t ret = ptrNoneMixEngine->SwitchSink(streamInfo, isVoip);
1155 EXPECT_EQ(ret, SUCCESS);
1156 }
1157 /**
1158 * @tc.name : Test NoneMixEngine API
1159 * @tc.type : FUNC
1160 * @tc.number: NoneMixEngine_030
1161 * @tc.desc : Test NoneMixEngine::Start
1162 */
1163 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_030, TestSize.Level1)
1164 {
1165 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1166 EXPECT_NE(ptrNoneMixEngine, nullptr);
1167
1168 AudioStreamInfo streamInfo;
1169 ptrNoneMixEngine->isInit_ = true;
1170 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1171 HDI_ID_INFO_DEFAULT, true);
1172 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1173
1174 streamInfo.channels = AudioChannel::CHANNEL_15;
1175 streamInfo.format = AudioSampleFormat::SAMPLE_U8;
1176 ptrNoneMixEngine->uChannel_ = 2;
1177 ptrNoneMixEngine->uFormat_ = SAMPLE_S16LE;
1178 ptrNoneMixEngine->isVoip_ = true;
1179 streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_8000;
1180 ptrNoneMixEngine->uSampleRate_ = AudioSamplingRate::SAMPLE_RATE_16000;
1181 bool isVoip = true;
1182 ptrNoneMixEngine->SwitchSink(streamInfo, isVoip);
1183 int32_t ret = ptrNoneMixEngine->Start();
1184 EXPECT_EQ(ret, SUCCESS);
1185 }
1186
1187 /**
1188 * @tc.name : Test NoneMixEngine API
1189 * @tc.type : FUNC
1190 * @tc.number: NoneMixEngine_031
1191 * @tc.desc : Test NoneMixEngine::Start
1192 */
1193 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_031, TestSize.Level1)
1194 {
1195 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1196 EXPECT_NE(ptrNoneMixEngine, nullptr);
1197
1198 AudioStreamInfo streamInfo;
1199 ptrNoneMixEngine->isInit_ = false;
1200 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1201 HDI_ID_INFO_DEFAULT, true);
1202 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1203
1204 streamInfo.channels = AudioChannel::CHANNEL_15;
1205 streamInfo.format = AudioSampleFormat::SAMPLE_U8;
1206 ptrNoneMixEngine->uChannel_ = 2;
1207 ptrNoneMixEngine->uFormat_ = SAMPLE_S16LE;
1208 ptrNoneMixEngine->isVoip_ = true;
1209 streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_8000;
1210 ptrNoneMixEngine->uSampleRate_ = AudioSamplingRate::SAMPLE_RATE_16000;
1211 bool isVoip = true;
1212 ptrNoneMixEngine->SwitchSink(streamInfo, isVoip);
1213 int32_t ret = ptrNoneMixEngine->Start();
1214 EXPECT_EQ(ret, SUCCESS);
1215 }
1216
1217 /**
1218 * @tc.name : Test NoneMixEngine API
1219 * @tc.type : FUNC
1220 * @tc.number: NoneMixEngine_032
1221 * @tc.desc : Test NoneMixEngine::Pause
1222 */
1223 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_032, TestSize.Level1)
1224 {
1225 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1226 EXPECT_NE(ptrNoneMixEngine, nullptr);
1227
1228 AudioStreamInfo streamInfo;
1229 ptrNoneMixEngine->isInit_ = true;
1230 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1231 HDI_ID_INFO_DEFAULT, true);
1232 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1233
1234 streamInfo.channels = AudioChannel::CHANNEL_15;
1235 streamInfo.format = AudioSampleFormat::SAMPLE_U8;
1236 ptrNoneMixEngine->uChannel_ = 2;
1237 ptrNoneMixEngine->uFormat_ = SAMPLE_S16LE;
1238 ptrNoneMixEngine->isVoip_ = true;
1239 streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_8000;
1240 ptrNoneMixEngine->uSampleRate_ = AudioSamplingRate::SAMPLE_RATE_16000;
1241 bool isVoip = true;
1242 ptrNoneMixEngine->SwitchSink(streamInfo, isVoip);
1243 int32_t ret = ptrNoneMixEngine->Pause();
1244 EXPECT_EQ(ret, SUCCESS);
1245 }
1246
1247 /**
1248 * @tc.name : Test NoneMixEngine API
1249 * @tc.type : FUNC
1250 * @tc.number: NoneMixEngine_033
1251 * @tc.desc : Test NoneMixEngine::Pause
1252 */
1253 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_033, TestSize.Level1)
1254 {
1255 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1256 EXPECT_NE(ptrNoneMixEngine, nullptr);
1257
1258 AudioStreamInfo streamInfo;
1259 ptrNoneMixEngine->isInit_ = false;
1260 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1261 HDI_ID_INFO_DEFAULT, true);
1262 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1263
1264 streamInfo.channels = AudioChannel::CHANNEL_15;
1265 streamInfo.format = AudioSampleFormat::SAMPLE_U8;
1266 ptrNoneMixEngine->uChannel_ = 2;
1267 ptrNoneMixEngine->uFormat_ = SAMPLE_S16LE;
1268 ptrNoneMixEngine->isVoip_ = true;
1269 streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_8000;
1270 ptrNoneMixEngine->uSampleRate_ = AudioSamplingRate::SAMPLE_RATE_16000;
1271 bool isVoip = true;
1272 ptrNoneMixEngine->SwitchSink(streamInfo, isVoip);
1273 int32_t ret = ptrNoneMixEngine->Pause();
1274 EXPECT_EQ(ret, SUCCESS);
1275 }
1276
1277 /**
1278 * @tc.name : Test NoneMixEngine API
1279 * @tc.type : FUNC
1280 * @tc.number: NoneMixEngine_034
1281 * @tc.desc : Test NoneMixEngine interface.
1282 */
1283 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_034, TestSize.Level1)
1284 {
1285 NoneMixEngine noneMixEngineRet;
1286 AudioSamplingRate sampleRateRet = AudioSamplingRate::SAMPLE_RATE_48000;
1287 auto ret = noneMixEngineRet.GetDirectVoipSampleRate(sampleRateRet);
1288 EXPECT_EQ(ret, AudioSamplingRate::SAMPLE_RATE_48000);
1289 }
1290
1291 /**
1292 * @tc.name : Test NoneMixEngine API
1293 * @tc.type : FUNC
1294 * @tc.number: NoneMixEngine_035
1295 * @tc.desc : Test NoneMixEngine interface.
1296 */
1297 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_035, TestSize.Level1)
1298 {
1299 NoneMixEngine noneMixEngineRet;
1300 AudioSampleFormat formatRet = SAMPLE_S16LE;
1301 auto ret = noneMixEngineRet.GetDirectFormatByteSize(formatRet);
1302 EXPECT_EQ(ret, sizeof(int16_t));
1303
1304 formatRet = SAMPLE_S32LE;
1305 ret = noneMixEngineRet.GetDirectFormatByteSize(formatRet);
1306 EXPECT_EQ(ret, sizeof(int32_t));
1307
1308 formatRet = SAMPLE_F32LE;
1309 ret = noneMixEngineRet.GetDirectFormatByteSize(formatRet);
1310 EXPECT_EQ(ret, sizeof(int32_t));
1311
1312 formatRet = INVALID_WIDTH;
1313 ret = noneMixEngineRet.GetDirectFormatByteSize(formatRet);
1314 EXPECT_EQ(ret, sizeof(int32_t));
1315 }
1316
1317 /**
1318 * @tc.name : Test NoneMixEngine API
1319 * @tc.type : FUNC
1320 * @tc.number: NoneMixEngine_036
1321 * @tc.desc : Test NoneMixEngine::GetLatency
1322 */
1323 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_036, TestSize.Level1)
1324 {
1325 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1326 EXPECT_NE(ptrNoneMixEngine, nullptr);
1327 uint64_t latency = ptrNoneMixEngine->GetLatency();
1328 EXPECT_EQ(latency, 0);
1329
1330 AudioStreamInfo streamInfo;
1331 ptrNoneMixEngine->isInit_ = false;
1332 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1333 HDI_ID_INFO_DEFAULT, true);
1334 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1335
1336 streamInfo.channels = AudioChannel::CHANNEL_15;
1337 streamInfo.format = AudioSampleFormat::SAMPLE_U8;
1338 ptrNoneMixEngine->uChannel_ = 2;
1339 ptrNoneMixEngine->uFormat_ = SAMPLE_S16LE;
1340 ptrNoneMixEngine->isVoip_ = true;
1341 streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_8000;
1342 ptrNoneMixEngine->uSampleRate_ = AudioSamplingRate::SAMPLE_RATE_16000;
1343 bool isVoip = true;
1344 ptrNoneMixEngine->SwitchSink(streamInfo, isVoip);
1345 int32_t ret = ptrNoneMixEngine->Start();
1346 EXPECT_EQ(ret, SUCCESS);
1347
1348 latency = ptrNoneMixEngine->GetLatency();
1349 EXPECT_NE(latency, 0);
1350 }
1351
1352 /**
1353 * @tc.name : Test NoneMixEngine API
1354 * @tc.type : FUNC
1355 * @tc.number: NoneMixEngine_037
1356 * @tc.desc : Test NoneMixEngine::Stop()
1357 */
1358 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_037, TestSize.Level1)
1359 {
1360 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1361 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1362
1363 std::string name = "test";
1364 ptrNoneMixEngine->isStart_ = true;
1365 ptrNoneMixEngine->playbackThread_ = std::make_unique<AudioThreadTask>(name);
1366 auto ret = ptrNoneMixEngine->Stop();
1367 EXPECT_EQ(ret, SUCCESS);
1368 }
1369
1370 /**
1371 * @tc.name : Test NoneMixEngine API
1372 * @tc.type : FUNC
1373 * @tc.number: NoneMixEngine_038
1374 * @tc.desc : Test NoneMixEngine::PauseAsync()
1375 */
1376 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_038, TestSize.Level1)
1377 {
1378 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1379 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1380
1381 ptrNoneMixEngine->playbackThread_ = nullptr;
1382 ptrNoneMixEngine->PauseAsync();
1383 EXPECT_EQ(ptrNoneMixEngine->isStart_, false);
1384 }
1385
1386 /**
1387 * @tc.name : Test NoneMixEngine API
1388 * @tc.type : FUNC
1389 * @tc.number: NoneMixEngine_039
1390 * @tc.desc : Test NoneMixEngine::StopAudioSink()
1391 */
1392 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_039, TestSize.Level1)
1393 {
1394 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1395 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1396
1397 ptrNoneMixEngine->renderId_ = -1;
1398 auto ret = ptrNoneMixEngine->StopAudioSink();
1399 EXPECT_EQ(ret, SUCCESS);
1400 }
1401
1402 /**
1403 * @tc.name : Test NoneMixEngine API
1404 * @tc.type : FUNC
1405 * @tc.number: NoneMixEngine_040
1406 * @tc.desc : Test NoneMixEngine::StopAudioSink()
1407 */
1408 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_040, TestSize.Level1)
1409 {
1410 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1411 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1412
1413 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1414 HDI_ID_INFO_DEFAULT, true);
1415 auto sink = HdiAdapterManager::GetInstance().GetRenderSink(ptrNoneMixEngine->renderId_, true);
1416 ASSERT_TRUE(sink != nullptr);
1417
1418 auto ret = ptrNoneMixEngine->StopAudioSink();
1419 EXPECT_EQ(ret, SUCCESS);
1420 }
1421
1422 /**
1423 * @tc.name : Test NoneMixEngine API
1424 * @tc.type : FUNC
1425 * @tc.number: NoneMixEngine_041
1426 * @tc.desc : Test NoneMixEngine::Pause()
1427 */
1428 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_041, TestSize.Level1)
1429 {
1430 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1431 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1432
1433 ptrNoneMixEngine->isStart_ = true;
1434 std::string name = "test";
1435 ptrNoneMixEngine->playbackThread_ = std::make_unique<AudioThreadTask>(name);
1436 auto ret = ptrNoneMixEngine->Pause();
1437 EXPECT_EQ(ret, SUCCESS);
1438 }
1439
1440 /**
1441 * @tc.name : Test NoneMixEngine API
1442 * @tc.type : FUNC
1443 * @tc.number: NoneMixEngine_042
1444 * @tc.desc : Test NoneMixEngine::DoFadeinOut()
1445 */
1446 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_042, TestSize.Level1)
1447 {
1448 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1449 EXPECT_NE(ptrNoneMixEngine, nullptr);
1450
1451 bool isFadeOut = true;
1452 char buffer = 'a';
1453 size_t bufferSize = 2;
1454 char *pBuffer = &buffer;
1455 EXPECT_NE(pBuffer, nullptr);
1456
1457 ptrNoneMixEngine->uChannel_ = 1;
1458 ptrNoneMixEngine->uFormat_ = sizeof(int16_t);
1459
1460 ptrNoneMixEngine->DoFadeinOut(isFadeOut, pBuffer, bufferSize);
1461 }
1462
1463 /**
1464 * @tc.name : Test NoneMixEngine API
1465 * @tc.type : FUNC
1466 * @tc.number: NoneMixEngine_043
1467 * @tc.desc : Test NoneMixEngine::DoFadeinOut()
1468 */
1469 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_043, TestSize.Level1)
1470 {
1471 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1472 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1473
1474 char buffer = 'a';
1475 char *pBuffer = &buffer;
1476 ptrNoneMixEngine->uFormat_ = 1;
1477 ptrNoneMixEngine->uChannel_ = 1;
1478 ptrNoneMixEngine->uFormat_ = sizeof(int16_t);
1479 bool isFadeOut = false;
1480 size_t bufferSize = 2;
1481 ptrNoneMixEngine->DoFadeinOut(isFadeOut, pBuffer, bufferSize);
1482 }
1483
1484 /**
1485 * @tc.name : Test NoneMixEngine API
1486 * @tc.type : FUNC
1487 * @tc.number: NoneMixEngine_044
1488 * @tc.desc : Test NoneMixEngine::DoFadeinOut()
1489 */
1490 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_044, TestSize.Level1)
1491 {
1492 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1493 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1494
1495 char buffer = 'a';
1496 char *pBuffer = &buffer;
1497 ptrNoneMixEngine->uFormat_ = 1;
1498 ptrNoneMixEngine->uChannel_ = 1;
1499 ptrNoneMixEngine->uFormat_ = sizeof(int16_t);
1500 bool isFadeOut = false;
1501 size_t bufferSize = 0;
1502 ptrNoneMixEngine->DoFadeinOut(isFadeOut, pBuffer, bufferSize);
1503 }
1504
1505 /**
1506 * @tc.name : Test NoneMixEngine API
1507 * @tc.type : FUNC
1508 * @tc.number: NoneMixEngine_045
1509 * @tc.desc : Test NoneMixEngine::AdjustVoipVolume()
1510 */
1511 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_045, TestSize.Level1)
1512 {
1513 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1514 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1515
1516 ptrNoneMixEngine->isVoip_ = false;
1517 ptrNoneMixEngine->AdjustVoipVolume();
1518 }
1519
1520 /**
1521 * @tc.name : Test NoneMixEngine API
1522 * @tc.type : FUNC
1523 * @tc.number: NoneMixEngine_046
1524 * @tc.desc : Test NoneMixEngine::AdjustVoipVolume()
1525 */
1526 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_046, TestSize.Level1)
1527 {
1528 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1529 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1530
1531 AudioProcessConfig processConfig;
1532 ptrNoneMixEngine->isVoip_ = true;
1533 ptrNoneMixEngine->firstSetVolume_ = false;
1534 ptrNoneMixEngine->stream_ = std::make_shared<ProRendererStreamImpl>(processConfig, true);
1535 ptrNoneMixEngine->AdjustVoipVolume();
1536 }
1537
1538 /**
1539 * @tc.name : Test NoneMixEngine API
1540 * @tc.type : FUNC
1541 * @tc.number: NoneMixEngine_047
1542 * @tc.desc : Test NoneMixEngine::AdjustVoipVolume()
1543 */
1544 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_047, TestSize.Level1)
1545 {
1546 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1547 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1548
1549 AudioProcessConfig processConfig;
1550 ptrNoneMixEngine->isVoip_ = true;
1551 ptrNoneMixEngine->firstSetVolume_ = true;
1552 ptrNoneMixEngine->stream_ = std::make_shared<ProRendererStreamImpl>(processConfig, true);
1553 ptrNoneMixEngine->AdjustVoipVolume();
1554 }
1555
1556 /**
1557 * @tc.name : Test NoneMixEngine API
1558 * @tc.type : FUNC
1559 * @tc.number: NoneMixEngine_048
1560 * @tc.desc : Test NoneMixEngine::AddRenderer()
1561 */
1562 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_048, TestSize.Level1)
1563 {
1564 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1565 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1566
1567 AudioProcessConfig configRet;
1568 std::shared_ptr<ProRendererStreamImpl> rendererStream1 = std::make_shared<ProRendererStreamImpl>(configRet, true);
1569 ptrNoneMixEngine->stream_ = nullptr;
1570 ptrNoneMixEngine->AddRenderer(rendererStream1);
1571 }
1572
1573 /**
1574 * @tc.name : Test NoneMixEngine API
1575 * @tc.type : FUNC
1576 * @tc.number: NoneMixEngine_049
1577 * @tc.desc : Test NoneMixEngine::AddRenderer()
1578 */
1579 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_049, TestSize.Level1)
1580 {
1581 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1582 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1583
1584 AudioProcessConfig configRet;
1585 std::shared_ptr<ProRendererStreamImpl> rendererStream1 = std::make_shared<ProRendererStreamImpl>(configRet, true);
1586 ptrNoneMixEngine->stream_ = rendererStream1;
1587 ptrNoneMixEngine->AddRenderer(rendererStream1);
1588 }
1589
1590 /**
1591 * @tc.name : Test NoneMixEngine API
1592 * @tc.type : FUNC
1593 * @tc.number: NoneMixEngine_050
1594 * @tc.desc : Test NoneMixEngine::GetLatency()
1595 */
1596 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_050, TestSize.Level1)
1597 {
1598 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1599 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1600
1601 ptrNoneMixEngine->isStart_ = true;
1602 ptrNoneMixEngine->latency_ = 1;
1603 auto ret = ptrNoneMixEngine->GetLatency();
1604 EXPECT_EQ(ret, 1);
1605 }
1606
1607 /**
1608 * @tc.name : Test NoneMixEngine API
1609 * @tc.type : FUNC
1610 * @tc.number: NoneMixEngine_051
1611 * @tc.desc : Test NoneMixEngine::Start
1612 */
1613 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_051, TestSize.Level1)
1614 {
1615 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1616 EXPECT_NE(ptrNoneMixEngine, nullptr);
1617
1618 AudioStreamInfo streamInfo;
1619 ptrNoneMixEngine->isInit_ = true;
1620 ptrNoneMixEngine->renderId_ = HdiAdapterManager::GetInstance().GetId(HDI_ID_BASE_RENDER, HDI_ID_TYPE_PRIMARY,
1621 HDI_ID_INFO_DEFAULT, true);
1622 EXPECT_NE(ptrNoneMixEngine->renderId_, HDI_INVALID_ID);
1623
1624 streamInfo.channels = AudioChannel::CHANNEL_15;
1625 streamInfo.format = AudioSampleFormat::SAMPLE_U8;
1626 ptrNoneMixEngine->uChannel_ = 2;
1627 ptrNoneMixEngine->uFormat_ = SAMPLE_S16LE;
1628 ptrNoneMixEngine->isVoip_ = true;
1629 streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_8000;
1630 ptrNoneMixEngine->uSampleRate_ = AudioSamplingRate::SAMPLE_RATE_16000;
1631 bool isVoip = true;
1632 ptrNoneMixEngine->SwitchSink(streamInfo, isVoip);
1633
1634 std::string name = "noneMixThread";
1635 ptrNoneMixEngine->playbackThread_ = std::make_unique<AudioThreadTask>(name);
1636 ptrNoneMixEngine->isStart_ = true;
1637 int32_t ret = ptrNoneMixEngine->Start();
1638 EXPECT_EQ(ret, SUCCESS);
1639 }
1640
1641 /**
1642 * @tc.name : Test NoneMixEngine API
1643 * @tc.type : FUNC
1644 * @tc.number: NoneMixEngine_052
1645 * @tc.desc : Test NoneMixEngine::PauseAsync()
1646 */
1647 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_052, TestSize.Level1)
1648 {
1649 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1650 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1651
1652 std::string name = "noneMixThread";
1653 ptrNoneMixEngine->isStart_ = true;
1654 ptrNoneMixEngine->playbackThread_ = std::make_unique<AudioThreadTask>(name);
1655 ptrNoneMixEngine->playbackThread_->state_.store(AudioThreadTask::RunningState::PAUSING);
1656 ptrNoneMixEngine->PauseAsync();
1657 EXPECT_EQ(ptrNoneMixEngine->isStart_, false);
1658
1659 ptrNoneMixEngine->playbackThread_ = nullptr;
1660 ptrNoneMixEngine->PauseAsync();
1661 EXPECT_EQ(ptrNoneMixEngine->isStart_, false);
1662 }
1663
1664 /**
1665 * @tc.name : Test NoneMixEngine API
1666 * @tc.type : FUNC
1667 * @tc.number: NoneMixEngine_053
1668 * @tc.desc : Test NoneMixEngine::Pause()
1669 */
1670 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_053, TestSize.Level1)
1671 {
1672 auto ptrNoneMixEngine = std::make_shared<NoneMixEngine>();
1673 ASSERT_TRUE(ptrNoneMixEngine != nullptr);
1674
1675 ptrNoneMixEngine->isStart_ = true;
1676 auto ret = ptrNoneMixEngine->Pause();
1677 EXPECT_EQ(ret, SUCCESS);
1678
1679 std::string name = "test";
1680 ptrNoneMixEngine->isStart_ = true;
1681 ptrNoneMixEngine->playbackThread_ = std::make_unique<AudioThreadTask>(name);
1682 ret = ptrNoneMixEngine->Pause();
1683 EXPECT_EQ(ret, SUCCESS);
1684 }
1685
1686 /**
1687 * @tc.name : Test NoneMixEngine API
1688 * @tc.type : FUNC
1689 * @tc.number: NoneMixEngine_051
1690 * @tc.desc : Test NoneMixEngine::GetDirectVoipDeviceFormat()
1691 */
1692 HWTEST_F(NoneMixEngineUnitTest, NoneMixEngine_051, TestSize.Level1)
1693 {
1694 NoneMixEngine noneMixEngineRet;
1695 AudioSampleFormat formatRet = AudioSampleFormat::SAMPLE_S24LE;
1696 auto ret = noneMixEngineRet.GetDirectVoipDeviceFormat(formatRet);
1697 EXPECT_EQ(SAMPLE_S32LE, ret);
1698
1699 formatRet = AudioSampleFormat::SAMPLE_S32LE;
1700 ret = noneMixEngineRet.GetDirectVoipDeviceFormat(formatRet);
1701 EXPECT_EQ(SAMPLE_S32LE, ret);
1702
1703 formatRet = AudioSampleFormat::INVALID_WIDTH;
1704 ret = noneMixEngineRet.GetDirectVoipDeviceFormat(formatRet);
1705 EXPECT_EQ(SAMPLE_S16LE, ret);
1706 }
1707 } // namespace AudioStandard
1708 } // namespace OHOS
1709