• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gtest/gtest.h>
17 #include "audio_process_in_server.h"
18 #include "audio_errors.h"
19 #include "audio_service.h"
20 #include "audio_device_info.h"
21 
22 using namespace testing::ext;
23 
24 namespace OHOS {
25 namespace AudioStandard {
26     constexpr int32_t DEFAULT_STREAM_ID = 10;
27     const uint32_t SPAN_SIZE_IN_FRAME = 1000;
28     const uint32_t TOTAL_SIZE_IN_FRAME = 1000;
29     const int32_t INTELL_VOICE_SERVICR_UID = 1042;
30     constexpr uint32_t MIN_STREAMID_2 = UINT32_MAX - MIN_STREAMID + DEFAULT_STREAM_ID;
31     constexpr uint32_t MIN_STREAMID_3 = UINT32_MAX - MIN_STREAMID - DEFAULT_STREAM_ID;
32 class AudioProcessInServerUnitTest : public testing::Test {
33 public:
34     static void SetUpTestCase(void);
35     static void TearDownTestCase(void);
36     void SetUp();
37     void TearDown();
38 };
39 
SetUpTestCase(void)40 void AudioProcessInServerUnitTest::SetUpTestCase(void)
41 {
42     // input testsuit setup step,setup invoked before all testcases
43 }
44 
TearDownTestCase(void)45 void AudioProcessInServerUnitTest::TearDownTestCase(void)
46 {
47     // input testsuit teardown step,teardown invoked after all testcases
48 }
49 
SetUp(void)50 void AudioProcessInServerUnitTest::SetUp(void)
51 {
52     // input testcase setup step,setup invoked before each testcases
53 }
54 
TearDown(void)55 void AudioProcessInServerUnitTest::TearDown(void)
56 {
57     // input testcase teardown step,teardown invoked after each testcases
58 }
59 
60 DeviceStreamInfo g_audioStreamInfo = {
61     SAMPLE_RATE_48000,
62     ENCODING_PCM,
63     SAMPLE_S16LE,
64     STEREO
65 };
66 
InitProcessConfig()67 static AudioProcessConfig InitProcessConfig()
68 {
69     AudioProcessConfig config;
70     config.appInfo.appFullTokenId = 1;
71     config.appInfo.appTokenId = 1;
72     config.appInfo.appUid = DEFAULT_STREAM_ID;
73     config.appInfo.appPid = DEFAULT_STREAM_ID;
74     config.streamInfo.format = SAMPLE_S32LE;
75     config.streamInfo.samplingRate = SAMPLE_RATE_48000;
76     config.streamInfo.channels = STEREO;
77     config.streamInfo.channelLayout = AudioChannelLayout::CH_LAYOUT_STEREO;
78     config.audioMode = AudioMode::AUDIO_MODE_RECORD;
79     config.streamType = AudioStreamType::STREAM_MUSIC;
80     config.deviceType = DEVICE_TYPE_USB_HEADSET;
81     return config;
82 }
83 
84 /**
85  * @tc.name  : Test AudioProcessInServer API
86  * @tc.type  : FUNC
87  * @tc.number: AudioProcessInServer_001
88  * @tc.desc  : Test AudioProcessInServer interface.
89  */
90 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_001, TestSize.Level1)
91 {
92     AudioProcessConfig configRet = InitProcessConfig();
93     AudioService *releaseCallbackRet = AudioService::GetInstance();
94     sptr<AudioProcessInServer> audioProcessInServer = AudioProcessInServer::Create(configRet, releaseCallbackRet);
95     uint32_t sessionIdRet = 0;
96     bool muteFlagRet = true;
97     auto ret = audioProcessInServer->GetSessionId(sessionIdRet);
98     EXPECT_EQ(ret, SUCCESS);
99     EXPECT_EQ(audioProcessInServer->GetSessionId(), sessionIdRet);
100     ret = audioProcessInServer->GetMuteState();
101     EXPECT_EQ(ret, false);
102     audioProcessInServer->SetNonInterruptMute(muteFlagRet);
103     EXPECT_EQ(audioProcessInServer->GetMuteState(), true);
104 }
105 
106 /**
107  * @tc.name  : Test AudioProcessInServer API
108  * @tc.type  : FUNC
109  * @tc.number: AudioProcessInServer_002
110  * @tc.desc  : Test AudioProcessInServer interface.
111  */
112 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_002, TestSize.Level1)
113 {
114     AudioProcessConfig configRet = InitProcessConfig();
115     AudioService *releaseCallbackRet = AudioService::GetInstance();
116     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
117     std::shared_ptr<OHAudioBuffer> bufferRet = nullptr;
118     AudioBufferHolder bufferHolder = AudioBufferHolder::AUDIO_SERVER_SHARED;
119     uint32_t byteSizePerFrame = 1000;
120     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
121     audioProcessInServerRet.ResolveBuffer(bufferRet);
122     audioProcessInServerRet.processBuffer_ = std::make_shared<OHAudioBuffer>(bufferHolder,
123         TOTAL_SIZE_IN_FRAME, SPAN_SIZE_IN_FRAME, byteSizePerFrame);
124     EXPECT_NE(audioProcessInServerRet.processBuffer_, nullptr);
125     auto ret = audioProcessInServerRet.ResolveBuffer(bufferRet);
126     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
127 }
128 
129 /**
130  * @tc.name  : Test AudioProcessInServer API
131  * @tc.type  : FUNC
132  * @tc.number: AudioProcessInServer_003
133  * @tc.desc  : Test AudioProcessInServer interface.
134  */
135 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_003, TestSize.Level1)
136 {
137     AudioProcessConfig configRet = InitProcessConfig();
138     AudioService *releaseCallbackRet = AudioService::GetInstance();
139     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
140     audioProcessInServerRet.isInited_ = true;
141     AudioBufferHolder bufferHolder = AudioBufferHolder::AUDIO_SERVER_SHARED;
142     uint32_t byteSizePerFrame = 1000;
143     audioProcessInServerRet.processBuffer_ = std::make_shared<OHAudioBuffer>(bufferHolder,
144         TOTAL_SIZE_IN_FRAME, SPAN_SIZE_IN_FRAME, byteSizePerFrame);
145     EXPECT_NE(audioProcessInServerRet.processBuffer_, nullptr);
146     bool isAsyncRet = false;
147     auto ret = audioProcessInServerRet.RequestHandleInfo(isAsyncRet);
148     EXPECT_EQ(ret, SUCCESS);
149 }
150 
151 /**
152  * @tc.name  : Test AudioProcessInServer API
153  * @tc.type  : FUNC
154  * @tc.number: AudioProcessInServer_004
155  * @tc.desc  : Test AudioProcessInServer interface.
156  */
157 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_004, TestSize.Level1)
158 {
159     AudioProcessConfig configRet = InitProcessConfig();
160     AudioService *releaseCallbackRet = AudioService::GetInstance();
161     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
162     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
163     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
164     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
165 
166     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
167     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
168         spanSizeInFrame, g_audioStreamInfo, buffer);
169     EXPECT_EQ(ret, SUCCESS);
170 }
171 
172 /**
173  * @tc.name  : Test AudioProcessInServer API
174  * @tc.type  : FUNC
175  * @tc.number: AudioProcessInServer_005
176  * @tc.desc  : Test AudioProcessInServer interface.
177  */
178 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_005, TestSize.Level1)
179 {
180     AudioProcessConfig configRet = InitProcessConfig();
181     configRet.streamInfo.format = SAMPLE_U8;
182     AudioService *releaseCallbackRet = AudioService::GetInstance();
183     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
184     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
185     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
186     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
187 
188     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
189     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
190         spanSizeInFrame, g_audioStreamInfo, buffer);
191     EXPECT_EQ(ret, SUCCESS);
192 }
193 
194 /**
195  * @tc.name  : Test AudioProcessInServer API
196  * @tc.type  : FUNC
197  * @tc.number: AudioProcessInServer_006
198  * @tc.desc  : Test AudioProcessInServer interface.
199  */
200 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_006, TestSize.Level1)
201 {
202     AudioProcessConfig configRet = InitProcessConfig();
203     configRet.streamInfo.format = SAMPLE_S16LE;
204     AudioService *releaseCallbackRet = AudioService::GetInstance();
205     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
206     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
207     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
208     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
209 
210     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
211     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
212         spanSizeInFrame, g_audioStreamInfo, buffer);
213     EXPECT_EQ(ret, SUCCESS);
214 }
215 
216 /**
217  * @tc.name  : Test AudioProcessInServer API
218  * @tc.type  : FUNC
219  * @tc.number: AudioProcessInServer_007
220  * @tc.desc  : Test AudioProcessInServer interface.
221  */
222 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_007, TestSize.Level1)
223 {
224     AudioProcessConfig configRet = InitProcessConfig();
225     configRet.streamInfo.format = SAMPLE_S24LE;
226     AudioService *releaseCallbackRet = AudioService::GetInstance();
227     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
228     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
229     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
230     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
231 
232     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
233     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
234         spanSizeInFrame, g_audioStreamInfo, buffer);
235     EXPECT_EQ(ret, SUCCESS);
236 }
237 
238 /**
239  * @tc.name  : Test AudioProcessInServer API
240  * @tc.type  : FUNC
241  * @tc.number: AudioProcessInServer_008
242  * @tc.desc  : Test AudioProcessInServer interface.
243  */
244 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_008, TestSize.Level1)
245 {
246     AudioProcessConfig configRet = InitProcessConfig();
247     configRet.streamInfo.format = SAMPLE_F32LE;
248     AudioService *releaseCallbackRet = AudioService::GetInstance();
249     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
250     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
251     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
252     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
253 
254     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
255     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
256         spanSizeInFrame, g_audioStreamInfo, buffer);
257     EXPECT_EQ(ret, SUCCESS);
258 }
259 
260 /**
261  * @tc.name  : Test AudioProcessInServer API
262  * @tc.type  : FUNC
263  * @tc.number: AudioProcessInServer_009
264  * @tc.desc  : Test AudioProcessInServer interface.
265  */
266 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_009, TestSize.Level1)
267 {
268     AudioProcessConfig configRet = InitProcessConfig();
269     configRet.streamInfo.format = INVALID_WIDTH;
270     AudioService *releaseCallbackRet = AudioService::GetInstance();
271     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
272     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
273     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
274     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
275 
276     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
277     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
278         spanSizeInFrame, g_audioStreamInfo, buffer);
279     EXPECT_EQ(ret, SUCCESS);
280 }
281 
282 // /**
283 //  * @tc.name  : Test AudioProcessInServer API
284 //  * @tc.type  : FUNC
285 //  * @tc.number: AudioProcessInServer_010
286 //  * @tc.desc  : Test AudioProcessInServer interface.
287 //  */
288 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_010, TestSize.Level1)
289 {
290     AudioProcessConfig configRet = InitProcessConfig();
291     AudioService *releaseCallbackRet = AudioService::GetInstance();
292     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
293     audioProcessInServerRet.isInited_ = true;
294     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
295     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
296     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
297     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
298         spanSizeInFrame, g_audioStreamInfo, buffer);
299 
300     audioProcessInServerRet.streamStatus_->store(STREAM_STAND_BY);
301     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STAND_BY);
302 
303     auto ret = audioProcessInServerRet.Start();
304     EXPECT_EQ(ret, ERR_OPERATION_FAILED);
305 }
306 
307 // /**
308 //  * @tc.name  : Test AudioProcessInServer API
309 //  * @tc.type  : FUNC
310 //  * @tc.number: AudioProcessInServer_011
311 //  * @tc.desc  : Test AudioProcessInServer interface.
312 //  */
313 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_011, TestSize.Level1)
314 {
315     AudioProcessConfig configRet = InitProcessConfig();
316     AudioService *releaseCallbackRet = AudioService::GetInstance();
317     configRet.audioMode = AUDIO_MODE_PLAYBACK;
318     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
319     audioProcessInServerRet.isInited_ = true;
320     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
321     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
322     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
323     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
324         spanSizeInFrame, g_audioStreamInfo, buffer);
325 
326     audioProcessInServerRet.streamStatus_->store(STREAM_STAND_BY);
327     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STAND_BY);
328     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
329     auto ret = audioProcessInServerRet.Start();
330     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
331     EXPECT_EQ(ret, SUCCESS);
332 
333     audioProcessInServerRet.needCheckBackground_ = true;
334     ret = audioProcessInServerRet.Start();
335     EXPECT_EQ(ret, SUCCESS);
336 }
337 
338 /**
339  * @tc.name  : Test AudioProcessInServer API
340  * @tc.type  : FUNC
341  * @tc.number: AudioProcessInServer_012
342  * @tc.desc  : Test AudioProcessInServer interface.
343  */
344 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_012, TestSize.Level1)
345 {
346     AudioProcessConfig configRet = InitProcessConfig();
347     AudioService *releaseCallbackRet = AudioService::GetInstance();
348     configRet.callerUid = INTELL_VOICE_SERVICR_UID;
349     configRet.audioMode = AUDIO_MODE_PLAYBACK;
350     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
351     audioProcessInServerRet.isInited_ = true;
352     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
353     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
354     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
355     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
356         spanSizeInFrame, g_audioStreamInfo, buffer);
357 
358     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
359     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
360     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
361     auto ret = audioProcessInServerRet.Start();
362     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
363     EXPECT_EQ(ret, SUCCESS);
364 
365     audioProcessInServerRet.needCheckBackground_ = true;
366     ret = audioProcessInServerRet.Start();
367     EXPECT_EQ(ret, SUCCESS);
368 }
369 
370 /**
371  * @tc.name  : Test AudioProcessInServer API
372  * @tc.type  : FUNC
373  * @tc.number: AudioProcessInServer_013
374  * @tc.desc  : Test AudioProcessInServer interface.
375  */
376 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_013, TestSize.Level1)
377 {
378     AudioProcessConfig configRet = InitProcessConfig();
379     AudioService *releaseCallbackRet = AudioService::GetInstance();
380     configRet.callerUid = INTELL_VOICE_SERVICR_UID;
381     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
382     audioProcessInServerRet.isInited_ = true;
383     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
384     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
385     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
386     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
387         spanSizeInFrame, g_audioStreamInfo, buffer);
388 
389     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
390     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
391     auto ret = audioProcessInServerRet.Start();
392     EXPECT_EQ(ret, SUCCESS);
393 
394     audioProcessInServerRet.needCheckBackground_ = true;
395     ret = audioProcessInServerRet.Start();
396     EXPECT_EQ(ret, ERR_OPERATION_FAILED);
397 }
398 
399 /**
400  * @tc.name  : Test AudioProcessInServer API
401  * @tc.type  : FUNC
402  * @tc.number: AudioProcessInServer_014
403  * @tc.desc  : Test AudioProcessInServer interface.
404  */
405 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_014, TestSize.Level1)
406 {
407     AudioProcessConfig configRet = InitProcessConfig();
408     AudioService *releaseCallbackRet = AudioService::GetInstance();
409     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
410     audioProcessInServerRet.isInited_ = true;
411     audioProcessInServerRet.needCheckBackground_ = true;
412     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
413     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
414     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
415     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
416         spanSizeInFrame, g_audioStreamInfo, buffer);
417     audioProcessInServerRet.streamStatus_->store(STREAM_PAUSING);
418     bool isFlush = true;
419 
420     auto ret = audioProcessInServerRet.Pause(isFlush);
421     EXPECT_EQ(ret, SUCCESS);
422 
423     audioProcessInServerRet.needCheckBackground_ = false;
424     ret = audioProcessInServerRet.Pause(isFlush);
425     EXPECT_EQ(ret, SUCCESS);
426 }
427 
428 /**
429  * @tc.name  : Test AudioProcessInServer API
430  * @tc.type  : FUNC
431  * @tc.number: AudioProcessInServer_015
432  * @tc.desc  : Test AudioProcessInServer interface.
433  */
434 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_015, TestSize.Level1)
435 {
436     AudioProcessConfig configRet = InitProcessConfig();
437     AudioService *releaseCallbackRet = AudioService::GetInstance();
438     configRet.audioMode = AUDIO_MODE_PLAYBACK;
439     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
440     audioProcessInServerRet.isInited_ = true;
441     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
442     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
443     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
444     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
445         spanSizeInFrame, g_audioStreamInfo, buffer);
446     audioProcessInServerRet.streamStatus_->store(STREAM_PAUSING);
447     bool isFlush = true;
448 
449     auto ret = audioProcessInServerRet.Pause(isFlush);
450     EXPECT_EQ(ret, SUCCESS);
451 
452     audioProcessInServerRet.needCheckBackground_ = true;
453     ret = audioProcessInServerRet.Pause(isFlush);
454     EXPECT_EQ(ret, SUCCESS);
455 }
456 
457 // /**
458 //  * @tc.name  : Test AudioProcessInServer API
459 //  * @tc.type  : FUNC
460 //  * @tc.number: AudioProcessInServer_016
461 //  * @tc.desc  : Test AudioProcessInServer interface.
462 //  */
463 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_016, TestSize.Level1)
464 {
465     AudioProcessConfig configRet = InitProcessConfig();
466     AudioService *releaseCallbackRet = AudioService::GetInstance();
467     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
468     audioProcessInServerRet.isInited_ = true;
469     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
470     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
471     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
472     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
473         spanSizeInFrame, g_audioStreamInfo, buffer);
474 
475     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
476     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
477 
478     auto ret = audioProcessInServerRet.Resume();
479     EXPECT_EQ(ret, ERR_OPERATION_FAILED);
480 }
481 
482 // /**
483 //  * @tc.name  : Test AudioProcessInServer API
484 //  * @tc.type  : FUNC
485 //  * @tc.number: AudioProcessInServer_017
486 //  * @tc.desc  : Test AudioProcessInServer interface.
487 //  */
488 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_017, TestSize.Level1)
489 {
490     AudioProcessConfig configRet = InitProcessConfig();
491     AudioService *releaseCallbackRet = AudioService::GetInstance();
492     configRet.audioMode = AUDIO_MODE_PLAYBACK;
493     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
494     audioProcessInServerRet.isInited_ = true;
495     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
496     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
497     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
498     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
499         spanSizeInFrame, g_audioStreamInfo, buffer);
500 
501     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
502     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
503     auto ret = audioProcessInServerRet.Resume();
504     EXPECT_EQ(ret, SUCCESS);
505 
506     audioProcessInServerRet.needCheckBackground_ = true;
507     ret = audioProcessInServerRet.Resume();
508     EXPECT_EQ(ret, SUCCESS);
509 }
510 
511 /**
512  * @tc.name  : Test AudioProcessInServer API
513  * @tc.type  : FUNC
514  * @tc.number: AudioProcessInServer_018
515  * @tc.desc  : Test AudioProcessInServer interface.
516  */
517 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_018, TestSize.Level1)
518 {
519     AudioProcessConfig configRet = InitProcessConfig();
520     AudioService *releaseCallbackRet = AudioService::GetInstance();
521     configRet.callerUid = INTELL_VOICE_SERVICR_UID;
522     configRet.audioMode = AUDIO_MODE_PLAYBACK;
523     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
524     audioProcessInServerRet.isInited_ = true;
525     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
526     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
527     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
528     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
529         spanSizeInFrame, g_audioStreamInfo, buffer);
530 
531     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
532     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
533     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
534     auto ret = audioProcessInServerRet.Resume();
535     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
536     EXPECT_EQ(ret, SUCCESS);
537 
538     audioProcessInServerRet.needCheckBackground_ = true;
539     ret = audioProcessInServerRet.Resume();
540     EXPECT_EQ(ret, SUCCESS);
541 }
542 
543 /**
544  * @tc.name  : Test AudioProcessInServer API
545  * @tc.type  : FUNC
546  * @tc.number: AudioProcessInServer_019
547  * @tc.desc  : Test AudioProcessInServer interface.
548  */
549 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_019, TestSize.Level1)
550 {
551     AudioProcessConfig configRet = InitProcessConfig();
552     AudioService *releaseCallbackRet = AudioService::GetInstance();
553     configRet.callerUid = INTELL_VOICE_SERVICR_UID;
554     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
555     audioProcessInServerRet.isInited_ = true;
556     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
557     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
558     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
559     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
560         spanSizeInFrame, g_audioStreamInfo, buffer);
561 
562     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
563     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
564     auto ret = audioProcessInServerRet.Resume();
565     EXPECT_EQ(ret, SUCCESS);
566 
567     audioProcessInServerRet.needCheckBackground_ = true;
568     ret = audioProcessInServerRet.Resume();
569     EXPECT_EQ(ret, ERR_OPERATION_FAILED);
570 }
571 
572 /**
573  * @tc.name  : Test AudioProcessInServer API
574  * @tc.type  : FUNC
575  * @tc.number: AudioProcessInServer_020
576  * @tc.desc  : Test AudioProcessInServer interface.
577  */
578 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_020, TestSize.Level1)
579 {
580     AudioProcessConfig configRet = InitProcessConfig();
581     AudioService *releaseCallbackRet = AudioService::GetInstance();
582     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
583     audioProcessInServerRet.isInited_ = true;
584     audioProcessInServerRet.needCheckBackground_ = true;
585     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
586     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
587     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
588     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
589         spanSizeInFrame, g_audioStreamInfo, buffer);
590     audioProcessInServerRet.streamStatus_->store(STREAM_STOPPING);
591 
592     auto ret = audioProcessInServerRet.Stop();
593     EXPECT_EQ(ret, SUCCESS);
594 
595     audioProcessInServerRet.needCheckBackground_ = false;
596     ret = audioProcessInServerRet.Stop();
597     EXPECT_EQ(ret, SUCCESS);
598 }
599 
600 /**
601  * @tc.name  : Test AudioProcessInServer API
602  * @tc.type  : FUNC
603  * @tc.number: AudioProcessInServer_021
604  * @tc.desc  : Test AudioProcessInServer interface.
605  */
606 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_021, TestSize.Level1)
607 {
608     AudioProcessConfig configRet = InitProcessConfig();
609     AudioService *releaseCallbackRet = AudioService::GetInstance();
610     configRet.audioMode = AUDIO_MODE_PLAYBACK;
611     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
612     audioProcessInServerRet.isInited_ = true;
613     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
614     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
615     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
616     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
617         spanSizeInFrame, g_audioStreamInfo, buffer);
618     audioProcessInServerRet.streamStatus_->store(STREAM_STOPPING);
619 
620     auto ret = audioProcessInServerRet.Stop();
621     EXPECT_EQ(ret, SUCCESS);
622 
623     audioProcessInServerRet.needCheckBackground_ = true;
624     ret = audioProcessInServerRet.Stop();
625     EXPECT_EQ(ret, SUCCESS);
626 }
627 
628 /**
629  * @tc.name  : Test AudioProcessInServer API
630  * @tc.type  : FUNC
631  * @tc.number: AudioProcessInServer_022
632  * @tc.desc  : Test AudioProcessInServer interface.
633  */
634 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_022, TestSize.Level1)
635 {
636     AudioProcessConfig configRet = InitProcessConfig();
637     AudioService *releaseCallbackRet = AudioService::GetInstance();
638     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
639     audioProcessInServerRet.isInited_ = true;
640     audioProcessInServerRet.needCheckBackground_ = true;
641     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
642     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
643     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
644     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
645         spanSizeInFrame, g_audioStreamInfo, buffer);
646     audioProcessInServerRet.streamStatus_->store(STREAM_STOPPING);
647     bool isSwitchStream = false;
648 
649     EXPECT_NE(audioProcessInServerRet.releaseCallback_, nullptr);
650     auto ret = audioProcessInServerRet.Release(isSwitchStream);
651     EXPECT_EQ(ret, SUCCESS);
652 
653     audioProcessInServerRet.isInited_ = true;
654     audioProcessInServerRet.needCheckBackground_ = false;
655     ret = audioProcessInServerRet.Release(isSwitchStream);
656     EXPECT_EQ(ret, SUCCESS);
657 }
658 
659 /**
660  * @tc.name  : Test AudioProcessInServer API
661  * @tc.type  : FUNC
662  * @tc.number: AudioProcessInServer_023
663  * @tc.desc  : Test AudioProcessInServer interface.
664  */
665 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_023, TestSize.Level1)
666 {
667     AudioProcessConfig configRet = InitProcessConfig();
668     AudioService *releaseCallbackRet = AudioService::GetInstance();
669     configRet.audioMode = AUDIO_MODE_PLAYBACK;
670     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
671     audioProcessInServerRet.isInited_ = true;
672     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
673     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
674     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
675     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
676         spanSizeInFrame, g_audioStreamInfo, buffer);
677     audioProcessInServerRet.streamStatus_->store(STREAM_STOPPING);
678     bool isSwitchStream = false;
679 
680     auto ret = audioProcessInServerRet.Release(isSwitchStream);
681     EXPECT_EQ(ret, SUCCESS);
682 
683     audioProcessInServerRet.isInited_ = true;
684     audioProcessInServerRet.needCheckBackground_ = true;
685     ret = audioProcessInServerRet.Release(isSwitchStream);
686     EXPECT_EQ(ret, SUCCESS);
687 }
688 
689 /**
690  * @tc.name  : Test AudioProcessInServer API
691  * @tc.type  : FUNC
692  * @tc.number: AudioProcessInServer_024
693  * @tc.desc  : Test AudioProcessInServer interface.
694  */
695 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_024, TestSize.Level1)
696 {
697     AudioProcessConfig configRet = InitProcessConfig();
698     AudioService *releaseCallbackRet = AudioService::GetInstance();
699     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
700     std::string dumpStringRet1;
701 
702     EXPECT_EQ(audioProcessInServerRet.streamStatus_, nullptr);
703     audioProcessInServerRet.Dump(dumpStringRet1);
704 
705     audioProcessInServerRet.isInited_ = true;
706     std::shared_ptr<OHAudioBuffer> buffer = nullptr;
707     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
708     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
709     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
710         spanSizeInFrame, g_audioStreamInfo, buffer);
711     audioProcessInServerRet.streamStatus_->store(STREAM_STOPPING);
712     std::string dumpStringRet2;
713 
714     EXPECT_NE(audioProcessInServerRet.streamStatus_, nullptr);
715     audioProcessInServerRet.Dump(dumpStringRet2);
716 }
717 
718 /**
719  * @tc.name  : Test AudioProcessInServer API
720  * @tc.type  : FUNC
721  * @tc.number: AudioProcessInServer_025
722  * @tc.desc  : Test AudioProcessInServer interface.
723  */
724 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_025, TestSize.Level1)
725 {
726     AudioProcessConfig configRet = InitProcessConfig();
727     AudioService *releaseCallbackRet = AudioService::GetInstance();
728     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
729     std::string name = "unit_test";
730     auto ret = audioProcessInServerRet.RegisterThreadPriority(0, name);
731     EXPECT_EQ(ret, SUCCESS);
732 
733     audioProcessInServerRet.clientThreadPriorityRequested_ = true;
734     ret = audioProcessInServerRet.RegisterThreadPriority(0, name);
735     EXPECT_EQ(ret, ERR_OPERATION_FAILED);
736 }
737 /**
738  * @tc.name  : Test AudioProcessInServer API
739  * @tc.type  : FUNC
740  * @tc.number: AudioProcessInServer_026
741  * @tc.desc  : Test AudioProcessInServer interface.
742  */
743 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_026, TestSize.Level1)
744 {
745     AudioProcessConfig configRet = InitProcessConfig();
746     AudioService *releaseCallbackRet = AudioService::GetInstance();
747 
748     configRet.originalSessionId = DEFAULT_STREAM_ID;
749     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
750     EXPECT_NE(audioProcessInServer, nullptr);
751 }
752 
753 /**
754  * @tc.name  : Test AudioProcessInServer API
755  * @tc.type  : FUNC
756  * @tc.number: AudioProcessInServer_027
757  * @tc.desc  : Test AudioProcessInServer interface.
758  */
759 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_027, TestSize.Level1)
760 {
761     AudioProcessConfig configRet = InitProcessConfig();
762     AudioService *releaseCallbackRet = AudioService::GetInstance();
763 
764     configRet.originalSessionId = MIN_STREAMID_2;
765     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
766     EXPECT_NE(audioProcessInServer, nullptr);
767 }
768 
769 /**
770  * @tc.name  : Test AudioProcessInServer API
771  * @tc.type  : FUNC
772  * @tc.number: AudioProcessInServer_028
773  * @tc.desc  : Test AudioProcessInServer interface.
774  */
775 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_028, TestSize.Level1)
776 {
777     AudioProcessConfig configRet = InitProcessConfig();
778     AudioService *releaseCallbackRet = AudioService::GetInstance();
779 
780     configRet.originalSessionId = MIN_STREAMID_3;
781     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
782     EXPECT_NE(audioProcessInServer, nullptr);
783 }
784 
785 /**
786  * @tc.name  : Test AudioProcessInServer API
787  * @tc.type  : FUNC
788  * @tc.number: AudioProcessInServer_029
789  * @tc.desc  : Test AudioProcessInServer interface.
790  */
791 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_029, TestSize.Level1)
792 {
793     AudioProcessConfig configRet = InitProcessConfig();
794     AudioService *releaseCallbackRet = AudioService::GetInstance();
795 
796     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
797 
798     bool isStandby = true;
799     int64_t enterStandbyTime = 0;
800 
801     audioProcessInServer->processBuffer_ = nullptr;
802     auto ret = audioProcessInServer->GetStandbyStatus(isStandby, enterStandbyTime);
803     EXPECT_EQ(ret, ERR_OPERATION_FAILED);
804 }
805 
806 /**
807  * @tc.name  : Test AudioProcessInServer API
808  * @tc.type  : FUNC
809  * @tc.number: AudioProcessInServer_030
810  * @tc.desc  : Test AudioProcessInServer interface.
811  */
812 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_030, TestSize.Level1)
813 {
814     AudioProcessConfig configRet = InitProcessConfig();
815     AudioService *releaseCallbackRet = AudioService::GetInstance();
816 
817     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
818 
819     bool isStandby = true;
820     int64_t enterStandbyTime = 0;
821 
822     AudioBufferHolder bufferHolder = AudioBufferHolder::AUDIO_SERVER_SHARED;
823     uint32_t byteSizePerFrame = SPAN_SIZE_IN_FRAME;
824     audioProcessInServer->processBuffer_ = std::make_shared<OHAudioBuffer>(bufferHolder,
825         TOTAL_SIZE_IN_FRAME, SPAN_SIZE_IN_FRAME, byteSizePerFrame);
826     EXPECT_NE(audioProcessInServer->processBuffer_, nullptr);
827 
828     audioProcessInServer->processBuffer_->basicBufferInfo_ = nullptr;
829     auto ret = audioProcessInServer->GetStandbyStatus(isStandby, enterStandbyTime);
830     EXPECT_EQ(ret, ERR_OPERATION_FAILED);
831 }
832 
833 /**
834  * @tc.name  : Test AudioProcessInServer API
835  * @tc.type  : FUNC
836  * @tc.number: AudioProcessInServer_031
837  * @tc.desc  : Test AudioProcessInServer interface.
838  */
839 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_031, TestSize.Level1)
840 {
841     AudioProcessConfig configRet = InitProcessConfig();
842     AudioService *releaseCallbackRet = AudioService::GetInstance();
843 
844     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
845 
846     bool isStandby = true;
847     int64_t enterStandbyTime = INTELL_VOICE_SERVICR_UID;
848 
849     AudioBufferHolder bufferHolder = AudioBufferHolder::AUDIO_SERVER_SHARED;
850     uint32_t byteSizePerFrame = SPAN_SIZE_IN_FRAME;
851     audioProcessInServer->processBuffer_ = std::make_shared<OHAudioBuffer>(bufferHolder,
852         TOTAL_SIZE_IN_FRAME, SPAN_SIZE_IN_FRAME, byteSizePerFrame);
853     EXPECT_NE(audioProcessInServer->processBuffer_, nullptr);
854 
855     BasicBufferInfo basicBufferInfo;
856     audioProcessInServer->processBuffer_->basicBufferInfo_ = &basicBufferInfo;
857     EXPECT_NE(audioProcessInServer->processBuffer_->basicBufferInfo_, nullptr);
858     audioProcessInServer->processBuffer_->basicBufferInfo_->streamStatus = STREAM_STAND_BY;
859 
860     audioProcessInServer->enterStandbyTime_ = DEFAULT_STREAM_ID;
861 
862     auto ret = audioProcessInServer->GetStandbyStatus(isStandby, enterStandbyTime);
863     EXPECT_EQ(ret, SUCCESS);
864     EXPECT_EQ(enterStandbyTime, DEFAULT_STREAM_ID);
865 }
866 
867 /**
868  * @tc.name  : Test AudioProcessInServer API
869  * @tc.type  : FUNC
870  * @tc.number: AudioProcessInServer_032
871  * @tc.desc  : Test AudioProcessInServer interface.
872  */
873 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_032, TestSize.Level1)
874 {
875     AudioProcessConfig configRet = InitProcessConfig();
876     AudioService *releaseCallbackRet = AudioService::GetInstance();
877 
878     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
879 
880     bool isStandby = true;
881     int64_t enterStandbyTime = INTELL_VOICE_SERVICR_UID;
882 
883     AudioBufferHolder bufferHolder = AudioBufferHolder::AUDIO_SERVER_SHARED;
884     uint32_t byteSizePerFrame = SPAN_SIZE_IN_FRAME;
885     audioProcessInServer->processBuffer_ = std::make_shared<OHAudioBuffer>(bufferHolder,
886         TOTAL_SIZE_IN_FRAME, SPAN_SIZE_IN_FRAME, byteSizePerFrame);
887     EXPECT_NE(audioProcessInServer->processBuffer_, nullptr);
888 
889     BasicBufferInfo basicBufferInfo;
890     audioProcessInServer->processBuffer_->basicBufferInfo_ = &basicBufferInfo;
891     EXPECT_NE(audioProcessInServer->processBuffer_->basicBufferInfo_, nullptr);
892     audioProcessInServer->processBuffer_->basicBufferInfo_->streamStatus = STREAM_IDEL;
893 
894     audioProcessInServer->enterStandbyTime_ = DEFAULT_STREAM_ID;
895 
896     auto ret = audioProcessInServer->GetStandbyStatus(isStandby, enterStandbyTime);
897     EXPECT_EQ(ret, SUCCESS);
898     EXPECT_EQ(enterStandbyTime, 0);
899 }
900 } // namespace AudioStandard
901 } // namespace OHOS