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 "pro_renderer_stream_impl.h"
18 #include "audio_errors.h"
19 
20 using namespace testing::ext;
21 namespace OHOS {
22 namespace AudioStandard {
23 constexpr int32_t DEFAULT_STREAM_ID = 10;
24 class NoneMixEngineUnitTest : public testing::Test {
25 public:
26     static void SetUpTestCase(void);
27     static void TearDownTestCase(void);
28     void SetUp();
29     void TearDown();
30 
31 protected:
32     AudioProcessConfig InitProcessConfig();
33 
34 protected:
35     std::unique_ptr<AudioPlaybackEngine> playbackEngine_;
36 };
37 
SetUpTestCase(void)38 void NoneMixEngineUnitTest::SetUpTestCase(void)
39 {
40     // input testsuit setup step,setup invoked before all testcases
41 }
42 
TearDownTestCase(void)43 void NoneMixEngineUnitTest::TearDownTestCase(void)
44 {
45     // input testsuit teardown step,teardown invoked after all testcases
46 }
47 
SetUp(void)48 void NoneMixEngineUnitTest::SetUp(void)
49 {
50     DeviceInfo deviceInfo;
51     deviceInfo.deviceType = DEVICE_TYPE_USB_HEADSET;
52     playbackEngine_ = std::make_unique<NoneMixEngine>();
53     playbackEngine_->Init(deviceInfo, false);
54 }
55 
TearDown(void)56 void NoneMixEngineUnitTest::TearDown(void)
57 {
58     if (playbackEngine_) {
59         playbackEngine_->Stop();
60         playbackEngine_ = nullptr;
61     }
62 }
63 
InitProcessConfig()64 AudioProcessConfig NoneMixEngineUnitTest::InitProcessConfig()
65 {
66     AudioProcessConfig config;
67     config.appInfo.appUid = DEFAULT_STREAM_ID;
68     config.appInfo.appPid = DEFAULT_STREAM_ID;
69     config.streamInfo.format = SAMPLE_S32LE;
70     config.streamInfo.samplingRate = SAMPLE_RATE_48000;
71     config.streamInfo.channels = STEREO;
72     config.streamInfo.channelLayout = AudioChannelLayout::CH_LAYOUT_STEREO;
73     config.audioMode = AudioMode::AUDIO_MODE_PLAYBACK;
74     config.streamType = AudioStreamType::STREAM_MUSIC;
75     config.deviceType = DEVICE_TYPE_USB_HEADSET;
76     return config;
77 }
78 
79 /**
80  * @tc.name  : Test Direct Audio Playback Engine State
81  * @tc.type  : FUNC
82  * @tc.number: DirectAudioPlayBackEngineState_001
83  * @tc.desc  : Test direct audio playback engine state(start->pause->flush->stop->release) success
84  */
85 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_001, TestSize.Level1)
86 {
87     AudioProcessConfig config = InitProcessConfig();
88     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
89     int32_t ret = rendererStream->InitParams();
90     EXPECT_EQ(SUCCESS, ret);
91     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
92     ret = rendererStream->Start();
93     EXPECT_EQ(SUCCESS, ret);
94     ret = rendererStream->Pause();
95     EXPECT_EQ(SUCCESS, ret);
96     ret = rendererStream->Flush();
97     EXPECT_EQ(SUCCESS, ret);
98     ret = rendererStream->Stop();
99     EXPECT_EQ(SUCCESS, ret);
100     ret = rendererStream->Release();
101     EXPECT_EQ(SUCCESS, ret);
102 }
103 
104 /**
105  * @tc.name  : Test Direct Audio Playback Engine State
106  * @tc.type  : FUNC
107  * @tc.number: DirectAudioPlayBackEngineState_002
108  * @tc.desc  : Test direct audio playback engine state init success
109  */
110 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_002, TestSize.Level1)
111 {
112     AudioProcessConfig config;
113     config.appInfo.appUid = DEFAULT_STREAM_ID;
114     config.appInfo.appPid = DEFAULT_STREAM_ID;
115     config.streamInfo.format = SAMPLE_S32LE;
116     config.streamInfo.samplingRate = SAMPLE_RATE_48000;
117     config.streamInfo.channels = STEREO;
118     config.streamInfo.channelLayout = AudioChannelLayout::CH_LAYOUT_STEREO;
119     config.audioMode = AudioMode::AUDIO_MODE_PLAYBACK;
120     config.streamType = AudioStreamType::STREAM_MUSIC;
121     config.deviceType = DEVICE_TYPE_USB_HEADSET;
122     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
123     int32_t ret = rendererStream->InitParams();
124     EXPECT_EQ(SUCCESS, ret);
125 
126     // ERR_ILLEGAL_STATE
127     ret = rendererStream->Start();
128     EXPECT_EQ(SUCCESS, ret);
129     ret = rendererStream->InitParams();
130     EXPECT_EQ(ERR_ILLEGAL_STATE, ret);
131 
132     // ERR_ILLEGAL_STATE
133     ret = rendererStream->Stop();
134     EXPECT_EQ(SUCCESS, ret);
135     ret = rendererStream->InitParams();
136     EXPECT_EQ(ERR_ILLEGAL_STATE, ret);
137 
138     ret = rendererStream->Release();
139     EXPECT_EQ(SUCCESS, ret);
140     ret = rendererStream->InitParams();
141     EXPECT_EQ(SUCCESS, ret);
142 }
143 
144 /**
145  * @tc.name  : Test Direct Audio Playback Engine State
146  * @tc.type  : FUNC
147  * @tc.number: DirectAudioPlayBackEngineState_003
148  * @tc.desc  : Test direct audio playback engine state start success
149  */
150 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_003, TestSize.Level1)
151 {
152     AudioProcessConfig config = InitProcessConfig();
153     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
154     int32_t ret = rendererStream->InitParams();
155     EXPECT_EQ(SUCCESS, ret);
156     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
157     ret = rendererStream->Start();
158     EXPECT_EQ(SUCCESS, ret);
159     ret = rendererStream->Stop();
160     EXPECT_EQ(SUCCESS, ret);
161     ret = rendererStream->Release();
162     EXPECT_EQ(SUCCESS, ret);
163 
164     // ERR_ILLEGAL_STATE
165     ret = rendererStream->Start();
166     EXPECT_EQ(ERR_ILLEGAL_STATE, ret);
167 }
168 
169 /**
170  * @tc.name  : Test Direct Audio Playback Engine State
171  * @tc.type  : FUNC
172  * @tc.number: DirectAudioPlayBackEngineState_004
173  * @tc.desc  : Test direct audio playback engine state pause success
174  */
175 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_004, TestSize.Level1)
176 {
177     AudioProcessConfig config = InitProcessConfig();
178     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
179     int32_t ret = rendererStream->InitParams();
180     EXPECT_EQ(SUCCESS, ret);
181     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
182     ret = rendererStream->Start();
183     EXPECT_EQ(SUCCESS, ret);
184     ret = rendererStream->Pause();
185     EXPECT_EQ(SUCCESS, ret);
186     ret = rendererStream->Stop();
187     EXPECT_EQ(SUCCESS, ret);
188     ret = rendererStream->Release();
189     EXPECT_EQ(SUCCESS, ret);
190 }
191 
192 /**
193  * @tc.name  : Test Direct Audio Playback Engine State
194  * @tc.type  : FUNC
195  * @tc.number: DirectAudioPlayBackEngineState_005
196  * @tc.desc  : Test direct audio playback engine state flush success
197  */
198 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_005, TestSize.Level1)
199 {
200     AudioProcessConfig config = InitProcessConfig();
201     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
202     int32_t ret = rendererStream->InitParams();
203     EXPECT_EQ(SUCCESS, ret);
204     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
205     ret = rendererStream->Start();
206     EXPECT_EQ(SUCCESS, ret);
207     ret = rendererStream->Flush();
208     EXPECT_EQ(SUCCESS, ret);
209     ret = rendererStream->Stop();
210     EXPECT_EQ(SUCCESS, ret);
211     ret = rendererStream->Release();
212     EXPECT_EQ(SUCCESS, ret);
213 }
214 
215 /**
216  * @tc.name  : Test Direct Audio Playback Engine State
217  * @tc.type  : FUNC
218  * @tc.number: DirectAudioPlayBackEngineState_006
219  * @tc.desc  : Test direct audio playback engine state drain success
220  */
221 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineState_006, TestSize.Level1)
222 {
223     AudioProcessConfig config = InitProcessConfig();
224     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
225     int32_t ret = rendererStream->InitParams();
226     EXPECT_EQ(SUCCESS, ret);
227     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
228     ret = rendererStream->Start();
229     EXPECT_EQ(SUCCESS, ret);
230     ret = rendererStream->Drain();
231     EXPECT_EQ(SUCCESS, ret);
232     ret = rendererStream->Stop();
233     EXPECT_EQ(SUCCESS, ret);
234     ret = rendererStream->Release();
235     EXPECT_EQ(SUCCESS, ret);
236 }
237 
238 /**
239  * @tc.name  : Test Direct Audio Playback Engine Set Config
240  * @tc.type  : FUNC
241  * @tc.number: DirectAudioPlayBackEngineSetConfig_001
242  * @tc.desc  : Test direct audio playback engine set config (sampleRate 192000) success
243  */
244 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_001, TestSize.Level1)
245 {
246     AudioProcessConfig config = InitProcessConfig();
247     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_192000;
248     config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
249     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
250     int32_t ret = rendererStream->InitParams();
251     EXPECT_EQ(SUCCESS, ret);
252     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
253     ret = rendererStream->Start();
254     EXPECT_EQ(SUCCESS, ret);
255     ret = rendererStream->Stop();
256     EXPECT_EQ(SUCCESS, ret);
257     ret = rendererStream->Release();
258     EXPECT_EQ(SUCCESS, ret);
259 }
260 
261 /**
262  * @tc.name  : Test Direct Audio Playback Engine Set Config
263  * @tc.type  : FUNC
264  * @tc.number: DirectAudioPlayBackEngineSetConfig_002
265  * @tc.desc  : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
266  */
267 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_002, TestSize.Level1)
268 {
269     AudioProcessConfig config = InitProcessConfig();
270     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_192000;
271     config.deviceType = DEVICE_TYPE_USB_HEADSET;
272     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
273     int32_t ret = rendererStream->InitParams();
274     EXPECT_EQ(SUCCESS, ret);
275     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
276     ret = rendererStream->Start();
277     EXPECT_EQ(SUCCESS, ret);
278     ret = rendererStream->Stop();
279     EXPECT_EQ(SUCCESS, ret);
280     ret = rendererStream->Release();
281     EXPECT_EQ(SUCCESS, ret);
282 }
283 
284 /**
285  * @tc.name  : Test Direct Audio Playback Engine Set Config
286  * @tc.type  : FUNC
287  * @tc.number: DirectAudioPlayBackEngineSetConfig_003
288  * @tc.desc  : Test direct audio playback engine set config (sampleRate 176400) success
289  */
290 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_003, TestSize.Level1)
291 {
292     AudioProcessConfig config = InitProcessConfig();
293     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_176400;
294     config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
295     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
296     int32_t ret = rendererStream->InitParams();
297     EXPECT_EQ(SUCCESS, ret);
298     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
299     ret = rendererStream->Start();
300     EXPECT_EQ(SUCCESS, ret);
301     ret = rendererStream->Stop();
302     EXPECT_EQ(SUCCESS, ret);
303     ret = rendererStream->Release();
304     EXPECT_EQ(SUCCESS, ret);
305 }
306 
307 /**
308  * @tc.name  : Test Direct Audio Playback Engine Set Config
309  * @tc.type  : FUNC
310  * @tc.number: DirectAudioPlayBackEngineSetConfig_004
311  * @tc.desc  : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
312  */
313 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_004, TestSize.Level1)
314 {
315     AudioProcessConfig config = InitProcessConfig();
316     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_176400;
317     config.deviceType = DEVICE_TYPE_USB_HEADSET;
318     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
319     int32_t ret = rendererStream->InitParams();
320     EXPECT_EQ(SUCCESS, ret);
321     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
322     ret = rendererStream->Start();
323     EXPECT_EQ(SUCCESS, ret);
324     ret = rendererStream->Stop();
325     EXPECT_EQ(SUCCESS, ret);
326     ret = rendererStream->Release();
327     EXPECT_EQ(SUCCESS, ret);
328 }
329 
330 /**
331  * @tc.name  : Test Direct Audio Playback Engine Set Config
332  * @tc.type  : FUNC
333  * @tc.number: DirectAudioPlayBackEngineSetConfig_005
334  * @tc.desc  : Test direct audio playback engine set config (sampleRate 96000) success
335  */
336 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_005, TestSize.Level1)
337 {
338     AudioProcessConfig config = InitProcessConfig();
339     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_96000;
340     config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
341     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
342     int32_t ret = rendererStream->InitParams();
343     EXPECT_EQ(SUCCESS, ret);
344     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
345     ret = rendererStream->Start();
346     EXPECT_EQ(SUCCESS, ret);
347     ret = rendererStream->Stop();
348     EXPECT_EQ(SUCCESS, ret);
349     ret = rendererStream->Release();
350     EXPECT_EQ(SUCCESS, ret);
351 }
352 
353 /**
354  * @tc.name  : Test Direct Audio Playback Engine Set Config
355  * @tc.type  : FUNC
356  * @tc.number: DirectAudioPlayBackEngineSetConfig_006
357  * @tc.desc  : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
358  */
359 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_006, TestSize.Level1)
360 {
361     AudioProcessConfig config = InitProcessConfig();
362     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_96000;
363     config.deviceType = DEVICE_TYPE_USB_HEADSET;
364     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
365     int32_t ret = rendererStream->InitParams();
366     EXPECT_EQ(SUCCESS, ret);
367     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
368     ret = rendererStream->Start();
369     EXPECT_EQ(SUCCESS, ret);
370     ret = rendererStream->Stop();
371     EXPECT_EQ(SUCCESS, ret);
372     ret = rendererStream->Release();
373     EXPECT_EQ(SUCCESS, ret);
374 }
375 
376 /**
377  * @tc.name  : Test Direct Audio Playback Engine Set Config
378  * @tc.type  : FUNC
379  * @tc.number: DirectAudioPlayBackEngineSetConfig_007
380  * @tc.desc  : Test direct audio playback engine set config (sampleRate 88200) success
381  */
382 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_007, TestSize.Level1)
383 {
384     AudioProcessConfig config = InitProcessConfig();
385     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_88200;
386     config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
387     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
388     int32_t ret = rendererStream->InitParams();
389     EXPECT_EQ(SUCCESS, ret);
390     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
391     ret = rendererStream->Start();
392     EXPECT_EQ(SUCCESS, ret);
393     ret = rendererStream->Stop();
394     EXPECT_EQ(SUCCESS, ret);
395     ret = rendererStream->Release();
396     EXPECT_EQ(SUCCESS, ret);
397 }
398 
399 /**
400  * @tc.name  : Test Direct Audio Playback Engine Set Config
401  * @tc.type  : FUNC
402  * @tc.number: DirectAudioPlayBackEngineSetConfig_008
403  * @tc.desc  : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
404  */
405 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_008, TestSize.Level1)
406 {
407     AudioProcessConfig config = InitProcessConfig();
408     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_88200;
409     config.deviceType = DEVICE_TYPE_USB_HEADSET;
410     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
411     int32_t ret = rendererStream->InitParams();
412     EXPECT_EQ(SUCCESS, ret);
413     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
414     ret = rendererStream->Start();
415     EXPECT_EQ(SUCCESS, ret);
416     ret = rendererStream->Stop();
417     EXPECT_EQ(SUCCESS, ret);
418     ret = rendererStream->Release();
419     EXPECT_EQ(SUCCESS, ret);
420 }
421 
422 /**
423  * @tc.name  : Test Direct Audio Playback Engine Set Config
424  * @tc.type  : FUNC
425  * @tc.number: DirectAudioPlayBackEngineSetConfig_009
426  * @tc.desc  : Test direct audio playback engine set config (sampleRate 48000) success
427  */
428 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_009, TestSize.Level1)
429 {
430     AudioProcessConfig config = InitProcessConfig();
431     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_48000;
432     config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
433     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
434     int32_t ret = rendererStream->InitParams();
435     EXPECT_EQ(SUCCESS, ret);
436     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
437     ret = rendererStream->Start();
438     EXPECT_EQ(SUCCESS, ret);
439     ret = rendererStream->Stop();
440     EXPECT_EQ(SUCCESS, ret);
441     ret = rendererStream->Release();
442     EXPECT_EQ(SUCCESS, ret);
443 }
444 
445 /**
446  * @tc.name  : Test Direct Audio Playback Engine Set Config
447  * @tc.type  : FUNC
448  * @tc.number: DirectAudioPlayBackEngineSetConfig_010
449  * @tc.desc  : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
450  */
451 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_010, TestSize.Level1)
452 {
453     AudioProcessConfig config = InitProcessConfig();
454     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_48000;
455     config.deviceType = DEVICE_TYPE_USB_HEADSET;
456     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
457     int32_t ret = rendererStream->InitParams();
458     EXPECT_EQ(SUCCESS, ret);
459     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
460     ret = rendererStream->Start();
461     EXPECT_EQ(SUCCESS, ret);
462     ret = rendererStream->Stop();
463     EXPECT_EQ(SUCCESS, ret);
464     ret = rendererStream->Release();
465     EXPECT_EQ(SUCCESS, ret);
466 }
467 
468 /**
469  * @tc.name  : Test Direct Audio Playback Engine Set Config
470  * @tc.type  : FUNC
471  * @tc.number: DirectAudioPlayBackEngineSetConfig_011
472  * @tc.desc  : Test direct audio playback engine set config (sampleRate 44100) success
473  */
474 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_011, TestSize.Level1)
475 {
476     AudioProcessConfig config = InitProcessConfig();
477     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_44100;
478     config.deviceType = DEVICE_TYPE_WIRED_HEADSET;
479     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
480     int32_t ret = rendererStream->InitParams();
481     EXPECT_EQ(SUCCESS, ret);
482     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
483     ret = rendererStream->Start();
484     EXPECT_EQ(SUCCESS, ret);
485     ret = rendererStream->Stop();
486     EXPECT_EQ(SUCCESS, ret);
487     ret = rendererStream->Release();
488     EXPECT_EQ(SUCCESS, ret);
489 }
490 
491 /**
492  * @tc.name  : Test Direct Audio Playback Engine Set Config
493  * @tc.type  : FUNC
494  * @tc.number: DirectAudioPlayBackEngineSetConfig_012
495  * @tc.desc  : Test direct audio playback engine set config (deviceType DEVICE_TYPE_USB_HEADSET) success
496  */
497 HWTEST_F(NoneMixEngineUnitTest, DirectAudioPlayBackEngineSetConfig_012, TestSize.Level1)
498 {
499     AudioProcessConfig config = InitProcessConfig();
500     config.streamInfo.samplingRate = AudioSamplingRate::SAMPLE_RATE_44100;
501     config.deviceType = DEVICE_TYPE_USB_HEADSET;
502     std::shared_ptr<ProRendererStreamImpl> rendererStream = std::make_shared<ProRendererStreamImpl>(config, true);
503     int32_t ret = rendererStream->InitParams();
504     EXPECT_EQ(SUCCESS, ret);
505     rendererStream->SetStreamIndex(DEFAULT_STREAM_ID);
506     ret = rendererStream->Start();
507     EXPECT_EQ(SUCCESS, ret);
508     ret = rendererStream->Stop();
509     EXPECT_EQ(SUCCESS, ret);
510     ret = rendererStream->Release();
511     EXPECT_EQ(SUCCESS, ret);
512 }
513 } // namespace AudioStandard
514 } // namespace OHOS