• 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 AudioStreamInfo g_audioStreamInfo = {
61     SAMPLE_RATE_48000,
62     ENCODING_PCM,
63     SAMPLE_S16LE,
64     STEREO,
65     CH_LAYOUT_STEREO
66 };
67 
InitProcessConfig()68 static AudioProcessConfig InitProcessConfig()
69 {
70     AudioProcessConfig config;
71     config.appInfo.appFullTokenId = 1;
72     config.appInfo.appTokenId = 1;
73     config.appInfo.appUid = DEFAULT_STREAM_ID;
74     config.appInfo.appPid = DEFAULT_STREAM_ID;
75     config.streamInfo.format = SAMPLE_S32LE;
76     config.streamInfo.samplingRate = SAMPLE_RATE_48000;
77     config.streamInfo.channels = STEREO;
78     config.streamInfo.channelLayout = AudioChannelLayout::CH_LAYOUT_STEREO;
79     config.audioMode = AudioMode::AUDIO_MODE_RECORD;
80     config.streamType = AudioStreamType::STREAM_MUSIC;
81     config.deviceType = DEVICE_TYPE_USB_HEADSET;
82     return config;
83 }
84 
85 /**
86  * @tc.name  : Test AudioProcessInServer API
87  * @tc.type  : FUNC
88  * @tc.number: AudioProcessInServer_001
89  * @tc.desc  : Test AudioProcessInServer interface.
90  */
91 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_001, TestSize.Level1)
92 {
93     AudioProcessConfig configRet = InitProcessConfig();
94     AudioService *releaseCallbackRet = AudioService::GetInstance();
95     sptr<AudioProcessInServer> audioProcessInServer = AudioProcessInServer::Create(configRet, releaseCallbackRet);
96     uint32_t sessionIdRet = 0;
97     bool muteFlagRet = true;
98     auto ret = audioProcessInServer->GetSessionId(sessionIdRet);
99     EXPECT_EQ(ret, SUCCESS);
100     EXPECT_EQ(audioProcessInServer->GetSessionId(), sessionIdRet);
101     ret = audioProcessInServer->GetMuteState();
102     EXPECT_EQ(ret, false);
103     audioProcessInServer->SetNonInterruptMute(muteFlagRet);
104     EXPECT_EQ(audioProcessInServer->GetMuteState(), true);
105 }
106 
107 /**
108  * @tc.name  : Test AudioProcessInServer API
109  * @tc.type  : FUNC
110  * @tc.number: AudioProcessInServer_002
111  * @tc.desc  : Test AudioProcessInServer interface.
112  */
113 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_002, TestSize.Level1)
114 {
115     AudioProcessConfig configRet = InitProcessConfig();
116     AudioService *releaseCallbackRet = AudioService::GetInstance();
117     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
118     std::shared_ptr<OHAudioBufferBase> bufferRet = nullptr;
119     AudioBufferHolder bufferHolder = AudioBufferHolder::AUDIO_SERVER_SHARED;
120     uint32_t byteSizePerFrame = 1000;
121     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
122     uint32_t spanSizeInFrame;
123     audioProcessInServerRet.ResolveBufferBaseAndGetServerSpanSize(
124         bufferRet, spanSizeInFrame);
125     audioProcessInServerRet.processBuffer_ = std::make_shared<OHAudioBufferBase>(
126         bufferHolder, TOTAL_SIZE_IN_FRAME, byteSizePerFrame);
127     EXPECT_NE(audioProcessInServerRet.processBuffer_, nullptr);
128     auto ret = audioProcessInServerRet.ResolveBufferBaseAndGetServerSpanSize(
129         bufferRet, spanSizeInFrame);
130     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
131 }
132 
133 /**
134  * @tc.name  : Test AudioProcessInServer API
135  * @tc.type  : FUNC
136  * @tc.number: AudioProcessInServer_003
137  * @tc.desc  : Test AudioProcessInServer interface.
138  */
139 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_003, TestSize.Level1)
140 {
141     AudioProcessConfig configRet = InitProcessConfig();
142     AudioService *releaseCallbackRet = AudioService::GetInstance();
143     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
144     audioProcessInServerRet.isInited_ = true;
145     AudioBufferHolder bufferHolder = AudioBufferHolder::AUDIO_SERVER_SHARED;
146     uint32_t byteSizePerFrame = 1000;
147     audioProcessInServerRet.processBuffer_ = std::make_shared<OHAudioBufferBase>(bufferHolder,
148         TOTAL_SIZE_IN_FRAME, byteSizePerFrame);
149     EXPECT_NE(audioProcessInServerRet.processBuffer_, nullptr);
150     auto ret = audioProcessInServerRet.RequestHandleInfo();
151     EXPECT_EQ(ret, SUCCESS);
152 }
153 
154 /**
155  * @tc.name  : Test AudioProcessInServer API
156  * @tc.type  : FUNC
157  * @tc.number: AudioProcessInServer_004
158  * @tc.desc  : Test AudioProcessInServer interface.
159  */
160 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_004, TestSize.Level1)
161 {
162     AudioProcessConfig configRet = InitProcessConfig();
163     AudioService *releaseCallbackRet = AudioService::GetInstance();
164     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
165     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
166     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
167     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
168 
169     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
170     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
171         spanSizeInFrame, g_audioStreamInfo, buffer);
172     EXPECT_EQ(ret, SUCCESS);
173 }
174 
175 /**
176  * @tc.name  : Test AudioProcessInServer API
177  * @tc.type  : FUNC
178  * @tc.number: AudioProcessInServer_005
179  * @tc.desc  : Test AudioProcessInServer interface.
180  */
181 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_005, TestSize.Level1)
182 {
183     AudioProcessConfig configRet = InitProcessConfig();
184     configRet.streamInfo.format = SAMPLE_U8;
185     AudioService *releaseCallbackRet = AudioService::GetInstance();
186     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
187     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
188     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
189     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
190 
191     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
192     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
193         spanSizeInFrame, g_audioStreamInfo, buffer);
194     EXPECT_EQ(ret, SUCCESS);
195 }
196 
197 /**
198  * @tc.name  : Test AudioProcessInServer API
199  * @tc.type  : FUNC
200  * @tc.number: AudioProcessInServer_006
201  * @tc.desc  : Test AudioProcessInServer interface.
202  */
203 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_006, TestSize.Level1)
204 {
205     AudioProcessConfig configRet = InitProcessConfig();
206     configRet.streamInfo.format = SAMPLE_S16LE;
207     AudioService *releaseCallbackRet = AudioService::GetInstance();
208     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
209     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
210     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
211     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
212 
213     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
214     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
215         spanSizeInFrame, g_audioStreamInfo, buffer);
216     EXPECT_EQ(ret, SUCCESS);
217 }
218 
219 /**
220  * @tc.name  : Test AudioProcessInServer API
221  * @tc.type  : FUNC
222  * @tc.number: AudioProcessInServer_007
223  * @tc.desc  : Test AudioProcessInServer interface.
224  */
225 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_007, TestSize.Level1)
226 {
227     AudioProcessConfig configRet = InitProcessConfig();
228     configRet.streamInfo.format = SAMPLE_S24LE;
229     AudioService *releaseCallbackRet = AudioService::GetInstance();
230     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
231     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
232     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
233     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
234 
235     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
236     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
237         spanSizeInFrame, g_audioStreamInfo, buffer);
238     EXPECT_EQ(ret, SUCCESS);
239 }
240 
241 /**
242  * @tc.name  : Test AudioProcessInServer API
243  * @tc.type  : FUNC
244  * @tc.number: AudioProcessInServer_008
245  * @tc.desc  : Test AudioProcessInServer interface.
246  */
247 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_008, TestSize.Level1)
248 {
249     AudioProcessConfig configRet = InitProcessConfig();
250     configRet.streamInfo.format = SAMPLE_F32LE;
251     AudioService *releaseCallbackRet = AudioService::GetInstance();
252     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
253     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
254     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
255     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
256 
257     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
258     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
259         spanSizeInFrame, g_audioStreamInfo, buffer);
260     EXPECT_EQ(ret, SUCCESS);
261 }
262 
263 /**
264  * @tc.name  : Test AudioProcessInServer API
265  * @tc.type  : FUNC
266  * @tc.number: AudioProcessInServer_009
267  * @tc.desc  : Test AudioProcessInServer interface.
268  */
269 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_009, TestSize.Level1)
270 {
271     AudioProcessConfig configRet = InitProcessConfig();
272     configRet.streamInfo.format = INVALID_WIDTH;
273     AudioService *releaseCallbackRet = AudioService::GetInstance();
274     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
275     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
276     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
277     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
278 
279     EXPECT_EQ(audioProcessInServerRet.processBuffer_, nullptr);
280     auto ret = audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
281         spanSizeInFrame, g_audioStreamInfo, buffer);
282     EXPECT_EQ(ret, SUCCESS);
283 }
284 
285 // /**
286 //  * @tc.name  : Test AudioProcessInServer API
287 //  * @tc.type  : FUNC
288 //  * @tc.number: AudioProcessInServer_010
289 //  * @tc.desc  : Test AudioProcessInServer interface.
290 //  */
291 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_010, TestSize.Level1)
292 {
293     AudioProcessConfig configRet = InitProcessConfig();
294     AudioService *releaseCallbackRet = AudioService::GetInstance();
295     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
296     audioProcessInServerRet.isInited_ = true;
297     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
298     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
299     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
300     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
301         spanSizeInFrame, g_audioStreamInfo, buffer);
302 
303     audioProcessInServerRet.streamStatus_->store(STREAM_STAND_BY);
304     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STAND_BY);
305 
306     auto ret = audioProcessInServerRet.Start();
307     EXPECT_NE(ret, SUCCESS);
308 }
309 
310 // /**
311 //  * @tc.name  : Test AudioProcessInServer API
312 //  * @tc.type  : FUNC
313 //  * @tc.number: AudioProcessInServer_011
314 //  * @tc.desc  : Test AudioProcessInServer interface.
315 //  */
316 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_011, TestSize.Level1)
317 {
318     AudioProcessConfig configRet = InitProcessConfig();
319     AudioService *releaseCallbackRet = AudioService::GetInstance();
320     configRet.audioMode = AUDIO_MODE_PLAYBACK;
321     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
322     audioProcessInServerRet.isInited_ = true;
323     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
324     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
325     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
326     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
327         spanSizeInFrame, g_audioStreamInfo, buffer);
328 
329     audioProcessInServerRet.streamStatus_->store(STREAM_STAND_BY);
330     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STAND_BY);
331     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
332     auto ret = audioProcessInServerRet.Start();
333     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
334     EXPECT_NE(ret, SUCCESS);
335 
336     audioProcessInServerRet.needCheckBackground_ = true;
337     ret = audioProcessInServerRet.Start();
338     EXPECT_NE(ret, SUCCESS);
339 }
340 
341 /**
342  * @tc.name  : Test AudioProcessInServer API
343  * @tc.type  : FUNC
344  * @tc.number: AudioProcessInServer_012
345  * @tc.desc  : Test AudioProcessInServer interface.
346  */
347 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_012, TestSize.Level1)
348 {
349     AudioProcessConfig configRet = InitProcessConfig();
350     AudioService *releaseCallbackRet = AudioService::GetInstance();
351     configRet.callerUid = INTELL_VOICE_SERVICR_UID;
352     configRet.audioMode = AUDIO_MODE_PLAYBACK;
353     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
354     audioProcessInServerRet.isInited_ = true;
355     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
356     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
357     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
358     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
359         spanSizeInFrame, g_audioStreamInfo, buffer);
360 
361     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
362     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
363     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
364     auto ret = audioProcessInServerRet.Start();
365     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
366     EXPECT_NE(ret, SUCCESS);
367 
368     audioProcessInServerRet.needCheckBackground_ = true;
369     ret = audioProcessInServerRet.Start();
370     EXPECT_NE(ret, SUCCESS);
371 }
372 
373 /**
374  * @tc.name  : Test AudioProcessInServer API
375  * @tc.type  : FUNC
376  * @tc.number: AudioProcessInServer_013
377  * @tc.desc  : Test AudioProcessInServer interface.
378  */
379 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_013, TestSize.Level1)
380 {
381     AudioProcessConfig configRet = InitProcessConfig();
382     AudioService *releaseCallbackRet = AudioService::GetInstance();
383     configRet.callerUid = INTELL_VOICE_SERVICR_UID;
384     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
385     audioProcessInServerRet.isInited_ = true;
386     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
387     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
388     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
389     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
390         spanSizeInFrame, g_audioStreamInfo, buffer);
391 
392     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
393     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
394     auto ret = audioProcessInServerRet.Start();
395     EXPECT_NE(ret, SUCCESS);
396 
397     audioProcessInServerRet.needCheckBackground_ = true;
398     ret = audioProcessInServerRet.Start();
399     EXPECT_NE(ret, SUCCESS);
400 }
401 
402 /**
403  * @tc.name  : Test AudioProcessInServer API
404  * @tc.type  : FUNC
405  * @tc.number: AudioProcessInServer_014
406  * @tc.desc  : Test AudioProcessInServer interface.
407  */
408 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_014, TestSize.Level1)
409 {
410     AudioProcessConfig configRet = InitProcessConfig();
411     AudioService *releaseCallbackRet = AudioService::GetInstance();
412     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
413     audioProcessInServerRet.isInited_ = true;
414     audioProcessInServerRet.needCheckBackground_ = true;
415     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
416     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
417     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
418     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
419         spanSizeInFrame, g_audioStreamInfo, buffer);
420     audioProcessInServerRet.streamStatus_->store(STREAM_PAUSING);
421     bool isFlush = true;
422 
423     auto ret = audioProcessInServerRet.Pause(isFlush);
424     EXPECT_EQ(ret, SUCCESS);
425 
426     audioProcessInServerRet.needCheckBackground_ = false;
427     ret = audioProcessInServerRet.Pause(isFlush);
428     EXPECT_EQ(ret, SUCCESS);
429 }
430 
431 /**
432  * @tc.name  : Test AudioProcessInServer API
433  * @tc.type  : FUNC
434  * @tc.number: AudioProcessInServer_015
435  * @tc.desc  : Test AudioProcessInServer interface.
436  */
437 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_015, TestSize.Level1)
438 {
439     AudioProcessConfig configRet = InitProcessConfig();
440     AudioService *releaseCallbackRet = AudioService::GetInstance();
441     configRet.audioMode = AUDIO_MODE_PLAYBACK;
442     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
443     audioProcessInServerRet.isInited_ = true;
444     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
445     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
446     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
447     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
448         spanSizeInFrame, g_audioStreamInfo, buffer);
449     audioProcessInServerRet.streamStatus_->store(STREAM_PAUSING);
450     bool isFlush = true;
451 
452     auto ret = audioProcessInServerRet.Pause(isFlush);
453     EXPECT_EQ(ret, SUCCESS);
454 
455     audioProcessInServerRet.needCheckBackground_ = true;
456     ret = audioProcessInServerRet.Pause(isFlush);
457     EXPECT_EQ(ret, SUCCESS);
458 }
459 
460 // /**
461 //  * @tc.name  : Test AudioProcessInServer API
462 //  * @tc.type  : FUNC
463 //  * @tc.number: AudioProcessInServer_016
464 //  * @tc.desc  : Test AudioProcessInServer interface.
465 //  */
466 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_016, TestSize.Level1)
467 {
468     AudioProcessConfig configRet = InitProcessConfig();
469     AudioService *releaseCallbackRet = AudioService::GetInstance();
470     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
471     audioProcessInServerRet.isInited_ = true;
472     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
473     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
474     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
475     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
476         spanSizeInFrame, g_audioStreamInfo, buffer);
477 
478     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
479     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
480 
481     auto ret = audioProcessInServerRet.Resume();
482     EXPECT_NE(ret, SUCCESS);
483 }
484 
485 // /**
486 //  * @tc.name  : Test AudioProcessInServer API
487 //  * @tc.type  : FUNC
488 //  * @tc.number: AudioProcessInServer_017
489 //  * @tc.desc  : Test AudioProcessInServer interface.
490 //  */
491 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_017, TestSize.Level1)
492 {
493     AudioProcessConfig configRet = InitProcessConfig();
494     AudioService *releaseCallbackRet = AudioService::GetInstance();
495     configRet.audioMode = AUDIO_MODE_PLAYBACK;
496     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
497     audioProcessInServerRet.isInited_ = true;
498     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
499     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
500     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
501     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
502         spanSizeInFrame, g_audioStreamInfo, buffer);
503 
504     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
505     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
506     auto ret = audioProcessInServerRet.Resume();
507     EXPECT_EQ(ret, SUCCESS);
508 
509     audioProcessInServerRet.needCheckBackground_ = true;
510     ret = audioProcessInServerRet.Resume();
511     EXPECT_EQ(ret, SUCCESS);
512 }
513 
514 /**
515  * @tc.name  : Test AudioProcessInServer API
516  * @tc.type  : FUNC
517  * @tc.number: AudioProcessInServer_018
518  * @tc.desc  : Test AudioProcessInServer interface.
519  */
520 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_018, TestSize.Level1)
521 {
522     AudioProcessConfig configRet = InitProcessConfig();
523     AudioService *releaseCallbackRet = AudioService::GetInstance();
524     configRet.callerUid = INTELL_VOICE_SERVICR_UID;
525     configRet.audioMode = AUDIO_MODE_PLAYBACK;
526     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
527     audioProcessInServerRet.isInited_ = true;
528     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
529     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
530     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
531     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
532         spanSizeInFrame, g_audioStreamInfo, buffer);
533 
534     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
535     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
536     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
537     auto ret = audioProcessInServerRet.Resume();
538     EXPECT_EQ(audioProcessInServerRet.needCheckBackground_, false);
539     EXPECT_EQ(ret, SUCCESS);
540 
541     audioProcessInServerRet.needCheckBackground_ = true;
542     ret = audioProcessInServerRet.Resume();
543     EXPECT_EQ(ret, SUCCESS);
544 }
545 
546 /**
547  * @tc.name  : Test AudioProcessInServer API
548  * @tc.type  : FUNC
549  * @tc.number: AudioProcessInServer_019
550  * @tc.desc  : Test AudioProcessInServer interface.
551  */
552 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_019, TestSize.Level1)
553 {
554     AudioProcessConfig configRet = InitProcessConfig();
555     AudioService *releaseCallbackRet = AudioService::GetInstance();
556     configRet.callerUid = INTELL_VOICE_SERVICR_UID;
557     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
558     audioProcessInServerRet.isInited_ = true;
559     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
560     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
561     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
562     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
563         spanSizeInFrame, g_audioStreamInfo, buffer);
564 
565     audioProcessInServerRet.streamStatus_->store(STREAM_STARTING);
566     EXPECT_EQ(audioProcessInServerRet.streamStatus_->load(), STREAM_STARTING);
567     auto ret = audioProcessInServerRet.Resume();
568     EXPECT_EQ(ret, SUCCESS);
569 
570     audioProcessInServerRet.needCheckBackground_ = true;
571     ret = audioProcessInServerRet.Resume();
572     EXPECT_NE(ret, SUCCESS);
573 }
574 
575 /**
576  * @tc.name  : Test AudioProcessInServer API
577  * @tc.type  : FUNC
578  * @tc.number: AudioProcessInServer_020
579  * @tc.desc  : Test AudioProcessInServer interface.
580  */
581 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_020, TestSize.Level1)
582 {
583     AudioProcessConfig configRet = InitProcessConfig();
584     AudioService *releaseCallbackRet = AudioService::GetInstance();
585     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
586     audioProcessInServerRet.isInited_ = true;
587     audioProcessInServerRet.needCheckBackground_ = true;
588     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
589     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
590     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
591     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
592         spanSizeInFrame, g_audioStreamInfo, buffer);
593     audioProcessInServerRet.streamStatus_->store(STREAM_STOPPING);
594 
595     int32_t ret = 0;
596     audioProcessInServerRet.Stop(ret);
597     EXPECT_EQ(ret, SUCCESS);
598 
599     audioProcessInServerRet.needCheckBackground_ = false;
600     audioProcessInServerRet.Stop(ret);
601     EXPECT_EQ(ret, SUCCESS);
602 }
603 
604 /**
605  * @tc.name  : Test AudioProcessInServer API
606  * @tc.type  : FUNC
607  * @tc.number: AudioProcessInServer_021
608  * @tc.desc  : Test AudioProcessInServer interface.
609  */
610 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_021, TestSize.Level1)
611 {
612     AudioProcessConfig configRet = InitProcessConfig();
613     AudioService *releaseCallbackRet = AudioService::GetInstance();
614     configRet.audioMode = AUDIO_MODE_PLAYBACK;
615     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
616     audioProcessInServerRet.isInited_ = true;
617     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
618     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
619     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
620     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
621         spanSizeInFrame, g_audioStreamInfo, buffer);
622     audioProcessInServerRet.streamStatus_->store(STREAM_STOPPING);
623 
624     int32_t ret = 0;
625     audioProcessInServerRet.Stop(ret);
626     EXPECT_EQ(ret, SUCCESS);
627 
628     audioProcessInServerRet.needCheckBackground_ = true;
629     audioProcessInServerRet.Stop(ret);
630     EXPECT_EQ(ret, SUCCESS);
631 }
632 
633 /**
634  * @tc.name  : Test AudioProcessInServer API
635  * @tc.type  : FUNC
636  * @tc.number: AudioProcessInServer_022
637  * @tc.desc  : Test AudioProcessInServer interface.
638  */
639 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_022, TestSize.Level1)
640 {
641     AudioProcessConfig configRet = InitProcessConfig();
642     AudioService *releaseCallbackRet = AudioService::GetInstance();
643     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
644     audioProcessInServerRet.isInited_ = true;
645     audioProcessInServerRet.needCheckBackground_ = true;
646     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
647     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
648     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
649     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
650         spanSizeInFrame, g_audioStreamInfo, buffer);
651     audioProcessInServerRet.streamStatus_->store(STREAM_STOPPING);
652     bool isSwitchStream = false;
653 
654     EXPECT_NE(audioProcessInServerRet.releaseCallback_, nullptr);
655     auto ret = audioProcessInServerRet.Release(isSwitchStream);
656     EXPECT_NE(ret, SUCCESS);
657 
658     audioProcessInServerRet.isInited_ = true;
659     audioProcessInServerRet.needCheckBackground_ = false;
660     ret = audioProcessInServerRet.Release(isSwitchStream);
661     EXPECT_NE(ret, SUCCESS);
662 }
663 
664 /**
665  * @tc.name  : Test AudioProcessInServer API
666  * @tc.type  : FUNC
667  * @tc.number: AudioProcessInServer_023
668  * @tc.desc  : Test AudioProcessInServer interface.
669  */
670 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_023, TestSize.Level1)
671 {
672     AudioProcessConfig configRet = InitProcessConfig();
673     AudioService *releaseCallbackRet = AudioService::GetInstance();
674     configRet.audioMode = AUDIO_MODE_PLAYBACK;
675     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
676     audioProcessInServerRet.isInited_ = true;
677     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
678     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
679     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
680     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
681         spanSizeInFrame, g_audioStreamInfo, buffer);
682     audioProcessInServerRet.streamStatus_->store(STREAM_STOPPING);
683     bool isSwitchStream = false;
684 
685     auto ret = audioProcessInServerRet.Release(isSwitchStream);
686     EXPECT_NE(ret, SUCCESS);
687 
688     audioProcessInServerRet.isInited_ = true;
689     audioProcessInServerRet.needCheckBackground_ = true;
690     ret = audioProcessInServerRet.Release(isSwitchStream);
691     EXPECT_NE(ret, SUCCESS);
692 }
693 
694 /**
695  * @tc.name  : Test AudioProcessInServer API
696  * @tc.type  : FUNC
697  * @tc.number: AudioProcessInServer_024
698  * @tc.desc  : Test AudioProcessInServer interface.
699  */
700 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_024, TestSize.Level1)
701 {
702     AudioProcessConfig configRet = InitProcessConfig();
703     AudioService *releaseCallbackRet = AudioService::GetInstance();
704     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
705     std::string dumpStringRet1;
706 
707     EXPECT_EQ(audioProcessInServerRet.streamStatus_, nullptr);
708     audioProcessInServerRet.Dump(dumpStringRet1);
709 
710     audioProcessInServerRet.isInited_ = true;
711     std::shared_ptr<OHAudioBufferBase> buffer = nullptr;
712     uint32_t totalSizeInFrame = TOTAL_SIZE_IN_FRAME;
713     uint32_t spanSizeInFrame = SPAN_SIZE_IN_FRAME;
714     audioProcessInServerRet.ConfigProcessBuffer(totalSizeInFrame,
715         spanSizeInFrame, g_audioStreamInfo, buffer);
716     audioProcessInServerRet.streamStatus_->store(STREAM_STOPPING);
717     std::string dumpStringRet2;
718 
719     EXPECT_NE(audioProcessInServerRet.streamStatus_, nullptr);
720     audioProcessInServerRet.Dump(dumpStringRet2);
721 }
722 
723 /**
724  * @tc.name  : Test AudioProcessInServer API
725  * @tc.type  : FUNC
726  * @tc.number: AudioProcessInServer_025
727  * @tc.desc  : Test AudioProcessInServer interface.
728  */
729 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_025, TestSize.Level1)
730 {
731     AudioProcessConfig configRet = InitProcessConfig();
732     AudioService *releaseCallbackRet = AudioService::GetInstance();
733     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
734     std::string name = "unit_test";
735     auto ret = audioProcessInServerRet.RegisterThreadPriority(0, name, METHOD_WRITE_OR_READ);
736     EXPECT_EQ(ret, SUCCESS);
737 }
738 /**
739  * @tc.name  : Test AudioProcessInServer API
740  * @tc.type  : FUNC
741  * @tc.number: AudioProcessInServer_026
742  * @tc.desc  : Test AudioProcessInServer interface.
743  */
744 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_026, TestSize.Level1)
745 {
746     AudioProcessConfig configRet = InitProcessConfig();
747     AudioService *releaseCallbackRet = AudioService::GetInstance();
748 
749     configRet.originalSessionId = DEFAULT_STREAM_ID;
750     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
751     EXPECT_NE(audioProcessInServer, nullptr);
752 }
753 
754 /**
755  * @tc.name  : Test AudioProcessInServer API
756  * @tc.type  : FUNC
757  * @tc.number: AudioProcessInServer_027
758  * @tc.desc  : Test AudioProcessInServer interface.
759  */
760 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_027, TestSize.Level1)
761 {
762     AudioProcessConfig configRet = InitProcessConfig();
763     AudioService *releaseCallbackRet = AudioService::GetInstance();
764 
765     configRet.originalSessionId = MIN_STREAMID_2;
766     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
767     EXPECT_NE(audioProcessInServer, nullptr);
768 }
769 
770 /**
771  * @tc.name  : Test AudioProcessInServer API
772  * @tc.type  : FUNC
773  * @tc.number: AudioProcessInServer_028
774  * @tc.desc  : Test AudioProcessInServer interface.
775  */
776 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_028, TestSize.Level1)
777 {
778     AudioProcessConfig configRet = InitProcessConfig();
779     AudioService *releaseCallbackRet = AudioService::GetInstance();
780 
781     configRet.originalSessionId = MIN_STREAMID_3;
782     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
783     EXPECT_NE(audioProcessInServer, nullptr);
784 }
785 
786 /**
787  * @tc.name  : Test AudioProcessInServer API
788  * @tc.type  : FUNC
789  * @tc.number: AudioProcessInServer_029
790  * @tc.desc  : Test AudioProcessInServer interface.
791  */
792 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_029, TestSize.Level1)
793 {
794     AudioProcessConfig configRet = InitProcessConfig();
795     AudioService *releaseCallbackRet = AudioService::GetInstance();
796 
797     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
798 
799     bool isStandby = true;
800     int64_t enterStandbyTime = 0;
801 
802     audioProcessInServer->processBuffer_ = nullptr;
803     auto ret = audioProcessInServer->GetStandbyStatus(isStandby, enterStandbyTime);
804     EXPECT_EQ(ret, ERR_OPERATION_FAILED);
805 }
806 
807 /**
808  * @tc.name  : Test AudioProcessInServer API
809  * @tc.type  : FUNC
810  * @tc.number: AudioProcessInServer_030
811  * @tc.desc  : Test AudioProcessInServer interface.
812  */
813 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_030, TestSize.Level1)
814 {
815     AudioProcessConfig configRet = InitProcessConfig();
816     AudioService *releaseCallbackRet = AudioService::GetInstance();
817 
818     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
819 
820     bool isStandby = true;
821     int64_t enterStandbyTime = 0;
822 
823     AudioBufferHolder bufferHolder = AudioBufferHolder::AUDIO_SERVER_SHARED;
824     uint32_t byteSizePerFrame = SPAN_SIZE_IN_FRAME;
825     audioProcessInServer->processBuffer_ = std::make_shared<OHAudioBufferBase>(
826         bufferHolder, TOTAL_SIZE_IN_FRAME, byteSizePerFrame);
827     EXPECT_NE(audioProcessInServer->processBuffer_, nullptr);
828 
829     audioProcessInServer->processBuffer_->basicBufferInfo_ = nullptr;
830     auto ret = audioProcessInServer->GetStandbyStatus(isStandby, enterStandbyTime);
831     EXPECT_EQ(ret, ERR_OPERATION_FAILED);
832 }
833 
834 /**
835  * @tc.name  : Test AudioProcessInServer API
836  * @tc.type  : FUNC
837  * @tc.number: AudioProcessInServer_031
838  * @tc.desc  : Test AudioProcessInServer interface.
839  */
840 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_031, TestSize.Level1)
841 {
842     AudioProcessConfig configRet = InitProcessConfig();
843     AudioService *releaseCallbackRet = AudioService::GetInstance();
844 
845     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
846 
847     bool isStandby = true;
848     int64_t enterStandbyTime = INTELL_VOICE_SERVICR_UID;
849 
850     AudioBufferHolder bufferHolder = AudioBufferHolder::AUDIO_SERVER_SHARED;
851     uint32_t byteSizePerFrame = SPAN_SIZE_IN_FRAME;
852     audioProcessInServer->processBuffer_ = std::make_shared<OHAudioBufferBase>(
853         bufferHolder, TOTAL_SIZE_IN_FRAME, byteSizePerFrame);
854     EXPECT_NE(audioProcessInServer->processBuffer_, nullptr);
855 
856     BasicBufferInfo basicBufferInfo;
857     audioProcessInServer->processBuffer_->basicBufferInfo_ = &basicBufferInfo;
858     EXPECT_NE(audioProcessInServer->processBuffer_->basicBufferInfo_, nullptr);
859     audioProcessInServer->processBuffer_->basicBufferInfo_->streamStatus = STREAM_STAND_BY;
860 
861     audioProcessInServer->enterStandbyTime_ = DEFAULT_STREAM_ID;
862 
863     auto ret = audioProcessInServer->GetStandbyStatus(isStandby, enterStandbyTime);
864     EXPECT_EQ(ret, SUCCESS);
865     EXPECT_EQ(enterStandbyTime, DEFAULT_STREAM_ID);
866 }
867 
868 /**
869  * @tc.name  : Test AudioProcessInServer API
870  * @tc.type  : FUNC
871  * @tc.number: AudioProcessInServer_032
872  * @tc.desc  : Test AudioProcessInServer interface.
873  */
874 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_032, TestSize.Level1)
875 {
876     AudioProcessConfig configRet = InitProcessConfig();
877     AudioService *releaseCallbackRet = AudioService::GetInstance();
878 
879     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
880 
881     bool isStandby = true;
882     int64_t enterStandbyTime = INTELL_VOICE_SERVICR_UID;
883 
884     AudioBufferHolder bufferHolder = AudioBufferHolder::AUDIO_SERVER_SHARED;
885     uint32_t byteSizePerFrame = SPAN_SIZE_IN_FRAME;
886     audioProcessInServer->processBuffer_ = std::make_shared<OHAudioBufferBase>(
887         bufferHolder, TOTAL_SIZE_IN_FRAME, byteSizePerFrame);
888     EXPECT_NE(audioProcessInServer->processBuffer_, nullptr);
889 
890     BasicBufferInfo basicBufferInfo;
891     audioProcessInServer->processBuffer_->basicBufferInfo_ = &basicBufferInfo;
892     EXPECT_NE(audioProcessInServer->processBuffer_->basicBufferInfo_, nullptr);
893     audioProcessInServer->processBuffer_->basicBufferInfo_->streamStatus = STREAM_IDEL;
894 
895     audioProcessInServer->enterStandbyTime_ = DEFAULT_STREAM_ID;
896 
897     auto ret = audioProcessInServer->GetStandbyStatus(isStandby, enterStandbyTime);
898     EXPECT_EQ(ret, SUCCESS);
899     EXPECT_EQ(enterStandbyTime, 0);
900 }
901 
902 /**
903  * @tc.name  : Test AudioProcessInServer API
904  * @tc.type  : FUNC
905  * @tc.number: AudioProcessInServer_033
906  * @tc.desc  : Test AudioProcessInServer interface.
907  */
908 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_033, TestSize.Level1)
909 {
910     AudioProcessConfig configRet = InitProcessConfig();
911     AudioService *releaseCallbackRet = AudioService::GetInstance();
912     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
913     int64_t duration = 0;
914 
915     int32_t ret = audioProcessInServer->SetSourceDuration(duration);
916     EXPECT_EQ(ret, SUCCESS);
917 }
918 
919 /**
920  * @tc.name  : Test AudioProcessInServer API
921  * @tc.type  : FUNC
922  * @tc.number: AudioProcessInServer_034
923  * @tc.desc  : Test AudioProcessInServer interface.
924  */
925 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_034, TestSize.Level1)
926 {
927     AudioProcessConfig configRet = InitProcessConfig();
928     AudioService *releaseCallbackRet = AudioService::GetInstance();
929     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
930     uint32_t underrunCnt = 0;
931 
932     int32_t ret = audioProcessInServer->SetUnderrunCount(underrunCnt);
933     EXPECT_EQ(ret, SUCCESS);
934 }
935 
936 /**
937  * @tc.name  : Test AudioProcessInServer API
938  * @tc.type  : FUNC
939  * @tc.number: AudioProcessInServer_035
940  * @tc.desc  : Test AudioProcessInServer interface.
941  */
942 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_035, TestSize.Level1)
943 {
944     AudioProcessConfig configRet = InitProcessConfig();
945     AudioService *releaseCallbackRet = AudioService::GetInstance();
946     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
947     int64_t muteFrameCnt = 1;
948 
949     audioProcessInServer->lastWriteMuteFrame_ = 0;
950     audioProcessInServer->AddMuteWriteFrameCnt(muteFrameCnt);
951     EXPECT_EQ(audioProcessInServer->lastWriteMuteFrame_, 1);
952 }
953 
954 /**
955  * @tc.name  : Test AudioProcessInServer API
956  * @tc.type  : FUNC
957  * @tc.number: AudioProcessInServer_036
958  * @tc.desc  : Test AudioProcessInServer interface.
959  */
960 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_036, TestSize.Level1)
961 {
962     AudioProcessConfig configRet = InitProcessConfig();
963     AudioService *releaseCallbackRet = AudioService::GetInstance();
964     auto audioProcessInServer = std::make_shared<AudioProcessInServer>(configRet, releaseCallbackRet);
965 
966     audioProcessInServer->lastStopTime_ = 10;
967     audioProcessInServer->lastStartTime_ = 100;
968     int64_t ret = audioProcessInServer->GetLastAudioDuration();
969     EXPECT_EQ(ret, -1);
970 
971     audioProcessInServer->lastStopTime_ = 100;
972     audioProcessInServer->lastStartTime_ = 10;
973     ret = audioProcessInServer->GetLastAudioDuration();
974     EXPECT_EQ(ret, 90);
975 }
976 
977 /**
978  * @tc.name  : Test AudioProcessInServer API
979  * @tc.type  : FUNC
980  * @tc.number: AudioProcessInServer_037
981  * @tc.desc  : Test AudioProcessInServer interface.
982  */
983 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_037, TestSize.Level1)
984 {
985     AudioProcessConfig configRet = InitProcessConfig();
986     AudioService *releaseCallbackRet = AudioService::GetInstance();
987     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
988 
989     int32_t syncId = 100;
990     auto ret = audioProcessInServerRet.SetAudioHapticsSyncId(syncId);
991     EXPECT_EQ(ret, SUCCESS);
992     EXPECT_EQ(audioProcessInServerRet.audioHapticsSyncId_, syncId);
993 }
994 
995 /**
996  * @tc.name  : Test AudioProcessInServer API
997  * @tc.type  : FUNC
998  * @tc.number: AudioProcessInServer_038
999  * @tc.desc  : Test AudioProcessInServer interface.
1000  */
1001 HWTEST(AudioProcessInServerUnitTest, AudioProcessInServer_038, TestSize.Level1)
1002 {
1003     AudioProcessConfig configRet = InitProcessConfig();
1004     AudioService *releaseCallbackRet = AudioService::GetInstance();
1005     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
1006 
1007     int32_t syncId = 100;
1008     audioProcessInServerRet.audioHapticsSyncId_.store(syncId);
1009     auto ret = audioProcessInServerRet.GetAudioHapticsSyncId();
1010     EXPECT_EQ(ret, syncId);
1011 }
1012 
1013 /**
1014  * @tc.name  : Test TurnOnMicIndicator API
1015  * @tc.type  : FUNC
1016  * @tc.number: TurnOnMicIndicator_001
1017  * @tc.desc  : Test TurnOnMicIndicator interface.
1018  */
1019 HWTEST(AudioProcessInServerUnitTest, TurnOnMicIndicator_001, TestSize.Level2)
1020 {
1021     AudioProcessConfig configRet = InitProcessConfig();
1022     AudioService *releaseCallbackRet = AudioService::GetInstance();
1023     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
1024     CapturerState capturerState = CapturerState::CAPTURER_PREPARED;
1025     audioProcessInServerRet.isMicIndicatorOn_ = true;
1026 
1027     bool ret = audioProcessInServerRet.TurnOnMicIndicator(capturerState);
1028     EXPECT_FALSE(ret);
1029 }
1030 
1031 /**
1032  * @tc.name  : Test TurnOnMicIndicator API
1033  * @tc.type  : FUNC
1034  * @tc.number: TurnOnMicIndicator_002
1035  * @tc.desc  : Test TurnOnMicIndicator interface.
1036  */
1037 HWTEST(AudioProcessInServerUnitTest, TurnOnMicIndicator_002, TestSize.Level2)
1038 {
1039     AudioProcessConfig configRet = InitProcessConfig();
1040     AudioService *releaseCallbackRet = AudioService::GetInstance();
1041     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
1042     CapturerState capturerState = CapturerState::CAPTURER_PREPARED;
1043     audioProcessInServerRet.isMicIndicatorOn_ = false;
1044 
1045     bool ret = audioProcessInServerRet.TurnOnMicIndicator(capturerState);
1046     EXPECT_FALSE(ret);
1047 }
1048 
1049 /**
1050  * @tc.name  : Test TurnOffMicIndicator API
1051  * @tc.type  : FUNC
1052  * @tc.number: TurnOffMicIndicator_001
1053  * @tc.desc  : Test TurnOffMicIndicator interface.
1054  */
1055 HWTEST(AudioProcessInServerUnitTest, TurnOffMicIndicator_001, TestSize.Level2)
1056 {
1057     AudioProcessConfig configRet = InitProcessConfig();
1058     AudioService *releaseCallbackRet = AudioService::GetInstance();
1059     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
1060     CapturerState capturerState = CapturerState::CAPTURER_PREPARED;
1061     audioProcessInServerRet.isMicIndicatorOn_ = false;
1062 
1063     bool ret = audioProcessInServerRet.TurnOffMicIndicator(capturerState);
1064     EXPECT_TRUE(ret);
1065 }
1066 
1067 /**
1068  * @tc.name  : Test TurnOffMicIndicator API
1069  * @tc.type  : FUNC
1070  * @tc.number: TurnOffMicIndicator_002
1071  * @tc.desc  : Test TurnOffMicIndicator interface.
1072  */
1073 HWTEST(AudioProcessInServerUnitTest, TurnOffMicIndicator_002, TestSize.Level2)
1074 {
1075     AudioProcessConfig configRet = InitProcessConfig();
1076     AudioService *releaseCallbackRet = AudioService::GetInstance();
1077     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
1078     CapturerState capturerState = CapturerState::CAPTURER_PREPARED;
1079     audioProcessInServerRet.isMicIndicatorOn_ = true;
1080 
1081     bool ret = audioProcessInServerRet.TurnOffMicIndicator(capturerState);
1082     EXPECT_TRUE(ret);
1083 }
1084 
1085 /**
1086  * @tc.name  : Test GetInnerCapState API
1087  * @tc.type  : FUNC
1088  * @tc.number: GetInnerCapState_001
1089  * @tc.desc  : Test GetInnerCapState interface.
1090  */
1091 HWTEST(AudioProcessInServerUnitTest, GetInnerCapState_001, TestSize.Level2)
1092 {
1093     AudioProcessConfig configRet = InitProcessConfig();
1094     AudioService *releaseCallbackRet = AudioService::GetInstance();
1095     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
1096     CapturerState capturerState = CapturerState::CAPTURER_PREPARED;
1097     audioProcessInServerRet.isMicIndicatorOn_ = true;
1098 
1099     bool ret = audioProcessInServerRet.GetInnerCapState(capturerState);
1100     EXPECT_FALSE(ret);
1101 }
1102 
1103 /**
1104  * @tc.name  : Test GetInnerCapState API
1105  * @tc.type  : FUNC
1106  * @tc.number: GetInnerCapState_002
1107  * @tc.desc  : Test GetInnerCapState interface.
1108  */
1109 HWTEST(AudioProcessInServerUnitTest, GetInnerCapState_002, TestSize.Level2)
1110 {
1111     AudioProcessConfig configRet = InitProcessConfig();
1112     AudioService *releaseCallbackRet = AudioService::GetInstance();
1113     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
1114     int32_t innerCapId = 1;
1115     audioProcessInServerRet.SetInnerCapState(true, innerCapId);
1116 
1117     bool ret = audioProcessInServerRet.GetInnerCapState(innerCapId);
1118     EXPECT_TRUE(ret);
1119 }
1120 
1121 /**
1122  * @tc.name  : Test CheckBGCapturer API
1123  * @tc.type  : FUNC
1124  * @tc.number: CheckBGCapturer_001
1125  * @tc.desc  : Test CheckBGCapturer interface.
1126  */
1127 HWTEST(AudioProcessInServerUnitTest, CheckBGCapturer_001, TestSize.Level4)
1128 {
1129     AudioProcessConfig configRet = InitProcessConfig();
1130     AudioService *releaseCallbackRet = AudioService::GetInstance();
1131     AudioProcessInServer audioProcessInServerRet(configRet, releaseCallbackRet);
1132 
1133     EXPECT_FALSE(audioProcessInServerRet.CheckBGCapturer());
1134 }
1135 } // namespace AudioStandard
1136 } // namespace OHOS
1137