• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
16 #include <gtest/gtest.h>
17 #include "pa_capturer_stream_impl.h"
18 #include "audio_errors.h"
19 #include "pa_adapter_manager.h"
20 #include <pulse/pulseaudio.h>
21 #include "pulse/stream.h"
22 #include "audio_system_manager.h"
23 
24 using namespace testing::ext;
25 namespace OHOS {
26 namespace AudioStandard {
27 const int32_t CAPTURER_FLAG = 10;
28 static std::shared_ptr<PaAdapterManager> adapterManager;
29 
30 class PaCapturerStreamUnitTest : public testing::Test {
31 public:
32     static void SetUpTestCase(void);
33     static void TearDownTestCase(void);
34     void SetUp();
35     void TearDown();
36     std::shared_ptr<PaCapturerStreamImpl> CreatePaCapturerStreamImpl();
37 };
38 
SetUpTestCase(void)39 void PaCapturerStreamUnitTest::SetUpTestCase(void)
40 {
41     // input testsuit setup step,setup invoked before all testcases
42 }
43 
TearDownTestCase(void)44 void PaCapturerStreamUnitTest::TearDownTestCase(void)
45 {
46     // input testsuit teardown step,teardown invoked after all testcases
47 }
48 
SetUp(void)49 void PaCapturerStreamUnitTest::SetUp(void)
50 {
51     // input testcase setup step,setup invoked before each testcases
52 }
53 
TearDown(void)54 void PaCapturerStreamUnitTest::TearDown(void)
55 {
56     // input testcase teardown step,teardown invoked after each testcases
57 }
58 
59 #ifdef HAS_FEATURE_INNERCAPTURER
LoadPaPort()60 void LoadPaPort()
61 {
62     AudioPlaybackCaptureConfig checkConfig;
63     int32_t checkInnerCapId = 0;
64     AudioSystemManager::GetInstance()->CheckCaptureLimit(checkConfig, checkInnerCapId);
65 }
66 
ReleasePaPort()67 void ReleasePaPort()
68 {
69     AudioSystemManager::GetInstance()->ReleaseCaptureLimit(1);
70 }
71 #endif
72 
GetInnerCapConfig()73 static AudioProcessConfig GetInnerCapConfig()
74 {
75     AudioProcessConfig config;
76     config.appInfo.appUid = CAPTURER_FLAG;
77     config.appInfo.appPid = CAPTURER_FLAG;
78     config.streamInfo.format = SAMPLE_S32LE;
79     config.streamInfo.samplingRate = SAMPLE_RATE_48000;
80     config.streamInfo.channels = STEREO;
81     config.streamInfo.channelLayout = AudioChannelLayout::CH_LAYOUT_STEREO;
82     config.audioMode = AudioMode::AUDIO_MODE_PLAYBACK;
83     config.streamType = AudioStreamType::STREAM_MUSIC;
84     config.deviceType = DEVICE_TYPE_USB_HEADSET;
85     config.capturerInfo.sourceType = SOURCE_TYPE_WAKEUP;
86     config.innerCapId = 1;
87     return config;
88 }
89 
CreatePaCapturerStreamImpl()90 std::shared_ptr<PaCapturerStreamImpl> PaCapturerStreamUnitTest::CreatePaCapturerStreamImpl()
91 {
92     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
93     adapterManager->InitPaContext();
94     AudioProcessConfig processConfig = GetInnerCapConfig();
95     uint32_t sessionId = 123456;
96     pa_stream *stream = adapterManager->InitPaStream(processConfig, sessionId, false);
97     std::shared_ptr<ICapturerStream> capturerStream = adapterManager->CreateCapturerStream(processConfig, stream);
98     std::shared_ptr<PaCapturerStreamImpl> capturerStreamImpl =
99         std::static_pointer_cast<PaCapturerStreamImpl>(capturerStream);
100     return capturerStreamImpl;
101 }
102 
103 /**
104  * @tc.name  : Test PaCapturerStreamImpl API
105  * @tc.type  : FUNC
106  * @tc.number: PaCapturerStream_001
107  * @tc.desc  : Test PaCapturerStreamImpl interface.
108  */
109 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_001, TestSize.Level1)
110 {
111 #ifdef HAS_FEATURE_INNERCAPTURER
112     LoadPaPort();
113 #endif
114     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
115     uint64_t framesReadRet = 0;
116     capturerStreamImplRet->byteSizePerFrame_ = 0;
117     auto ret = capturerStreamImplRet->GetStreamFramesRead(framesReadRet);
118     EXPECT_EQ(ret, ERR_OPERATION_FAILED);
119 
120     capturerStreamImplRet->byteSizePerFrame_ = 1;
121     ret = capturerStreamImplRet->GetStreamFramesRead(framesReadRet);
122     EXPECT_EQ(ret, SUCCESS);
123 }
124 
125 /**
126  * @tc.name  : Test PaCapturerStreamImpl API
127  * @tc.type  : FUNC
128  * @tc.number: PaCapturerStream_002
129  * @tc.desc  : Test PaCapturerStreamImpl interface.
130  */
131 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_002, TestSize.Level1)
132 {
133     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
134     uint64_t timestampRet = 0;
135     capturerStreamImplRet->paStream_ = nullptr;
136 
137     auto ret = capturerStreamImplRet->GetCurrentTimeStamp(timestampRet);
138     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
139 }
140 
141 /**
142  * @tc.name  : Test PaCapturerStreamImpl API
143  * @tc.type  : FUNC
144  * @tc.number: PaCapturerStream_003
145  * @tc.desc  : Test PaCapturerStreamImpl interface.
146  */
147 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_003, TestSize.Level1)
148 {
149     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
150     uint64_t timestampRet = 0;
151 
152     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
153     adapterManager->InitPaContext();
154     uint32_t sessionId = 123456;
155     AudioProcessConfig processConfig = GetInnerCapConfig();
156     pa_stream *stream = adapterManager->InitPaStream(processConfig, sessionId, false);
157     capturerStreamImplRet->paStream_ = stream;
158     EXPECT_EQ(pa_stream_get_state(capturerStreamImplRet->paStream_), PA_STREAM_READY);
159     pa_stream_terminate(capturerStreamImplRet->paStream_);
160     auto ret = capturerStreamImplRet->GetCurrentTimeStamp(timestampRet);
161     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
162 }
163 
164 /**
165  * @tc.name  : Test PaCapturerStreamImpl API
166  * @tc.type  : FUNC
167  * @tc.number: PaCapturerStream_004
168  * @tc.desc  : Test PaCapturerStreamImpl interface.
169  */
170 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_004, TestSize.Level1)
171 {
172     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
173     uint64_t latencyRet;
174     bool isStandbyRet = false;
175     capturerStreamImplRet->paStream_ = nullptr;
176 
177     auto ret = capturerStreamImplRet->GetLatency(latencyRet);
178     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
179 
180     ret = capturerStreamImplRet->Flush();
181     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
182 
183     ret = capturerStreamImplRet->Stop();
184     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
185 
186     ret = capturerStreamImplRet->Start();
187     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
188 
189     ret = capturerStreamImplRet->Pause(isStandbyRet);
190     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
191 }
192 
193 /**
194  * @tc.name  : Test PaCapturerStreamImpl API
195  * @tc.type  : FUNC
196  * @tc.number: PaCapturerStream_005
197  * @tc.desc  : Test PaCapturerStreamImpl interface.
198  */
199 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_005, TestSize.Level1)
200 {
201     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
202     bool isStandbyRet = false;
203     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
204     adapterManager->InitPaContext();
205     uint32_t sessionId = 123456;
206     AudioProcessConfig processConfig = GetInnerCapConfig();
207     pa_stream *stream = adapterManager->InitPaStream(processConfig, sessionId, false);
208     capturerStreamImplRet->paStream_ = stream;
209     EXPECT_EQ(pa_stream_get_state(capturerStreamImplRet->paStream_), PA_STREAM_READY);
210 
211     auto ret = capturerStreamImplRet->Start();
212     EXPECT_EQ(ret, SUCCESS);
213 
214     ret = capturerStreamImplRet->Pause(isStandbyRet);
215     EXPECT_EQ(ret, SUCCESS);
216 
217     ret = capturerStreamImplRet->Flush();
218     EXPECT_EQ(ret, SUCCESS);
219 
220     ret = capturerStreamImplRet->Stop();
221     EXPECT_EQ(ret, SUCCESS);
222 }
223 
224 /**
225  * @tc.name  : Test PaCapturerStreamImpl API
226  * @tc.type  : FUNC
227  * @tc.number: PaCapturerStream_006
228  * @tc.desc  : Test PaCapturerStreamImpl interface.
229  */
230 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_006, TestSize.Level1)
231 {
232     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
233     capturerStreamImplRet->paStream_ = nullptr;
234     capturerStreamImplRet->state_ = RUNNING;
235 
236     auto ret = capturerStreamImplRet->Release();
237     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
238 }
239 
240 /**
241  * @tc.name  : Test PaCapturerStreamImpl API
242  * @tc.type  : FUNC
243  * @tc.number: PaCapturerStream_007
244  * @tc.desc  : Test PaCapturerStreamImpl interface.
245  */
246 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_007, TestSize.Level1)
247 {
248     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
249     capturerStreamImplRet->statusCallback_ = std::weak_ptr<IStatusCallback>();
250     capturerStreamImplRet->state_ = STOPPED;
251 
252     auto ret = capturerStreamImplRet->Release();
253     EXPECT_EQ(ret, SUCCESS);
254 }
255 
256 /**
257  * @tc.name  : Test PaCapturerStreamImpl API
258  * @tc.type  : FUNC
259  * @tc.number: PaCapturerStream_008
260  * @tc.desc  : Test PaCapturerStreamImpl interface.
261  */
262 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_008, TestSize.Level1)
263 {
264     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
265     ASSERT_NE(nullptr, capturerStreamImplRet);
266 
267     size_t lengthRet = 10;
268     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
269     adapterManager->InitPaContext();
270     uint32_t sessionId = 123456;
271     AudioProcessConfig processConfig = GetInnerCapConfig();
272     pa_stream *streamRet = adapterManager->InitPaStream(processConfig, sessionId, false);
273     ASSERT_NE(nullptr, streamRet);
274 
275     void *userdataRet = nullptr;
276     capturerStreamImplRet->PAStreamReadCb(streamRet, lengthRet, userdataRet);
277     EXPECT_NE(capturerStreamImplRet->paStream_, nullptr);
278 }
279 
280 /**
281  * @tc.name  : Test PaCapturerStreamImpl API
282  * @tc.type  : FUNC
283  * @tc.number: PaCapturerStream_009
284  * @tc.desc  : Test PaCapturerStreamImpl interface.
285  */
286 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_009, TestSize.Level1)
287 {
288     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
289     ASSERT_NE(nullptr, capturerStreamImplRet);
290 
291     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
292     adapterManager->InitPaContext();
293     uint32_t sessionId = 123456;
294     AudioProcessConfig processConfig = GetInnerCapConfig();
295     pa_stream *streamRet = adapterManager->InitPaStream(processConfig, sessionId, false);
296     ASSERT_NE(nullptr, streamRet);
297 
298     void *userdataRet = nullptr;
299     capturerStreamImplRet->PAStreamMovedCb(streamRet, userdataRet);
300     capturerStreamImplRet->PAStreamMovedCb(streamRet, (void *)1);
301     EXPECT_NE(capturerStreamImplRet->paStream_, nullptr);
302 }
303 
304 /**
305  * @tc.name  : Test PaCapturerStreamImpl API
306  * @tc.type  : FUNC
307  * @tc.number: PaCapturerStream_010
308  * @tc.desc  : Test PaCapturerStreamImpl interface.
309  */
310 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_010, TestSize.Level1)
311 {
312     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
313     ASSERT_NE(nullptr, capturerStreamImplRet);
314 
315     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
316     adapterManager->InitPaContext();
317     uint32_t sessionId = 123456;
318     AudioProcessConfig processConfig = GetInnerCapConfig();
319     pa_stream *stream = adapterManager->InitPaStream(processConfig, sessionId, false);
320     ASSERT_NE(nullptr, stream);
321 
322     capturerStreamImplRet->paStream_ = stream;
323     auto ret = capturerStreamImplRet->InitParams();
324     EXPECT_EQ(ret, SUCCESS);
325 }
326 
327 /**
328  * @tc.name  : Test PaCapturerStreamImpl API
329  * @tc.type  : FUNC
330  * @tc.number: PaCapturerStream_011
331  * @tc.desc  : Test PaCapturerStreamImpl interface.
332  */
333 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_011, TestSize.Level1)
334 {
335     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
336     ASSERT_NE(nullptr, capturerStreamImplRet);
337 
338     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
339     adapterManager->InitPaContext();
340     uint32_t sessionId = 123456;
341     AudioProcessConfig processConfig = GetInnerCapConfig();
342     pa_stream *streamRet = adapterManager->InitPaStream(processConfig, sessionId, false);
343     ASSERT_NE(nullptr, streamRet);
344 
345     void *userdataRet = nullptr;
346     capturerStreamImplRet->PAStreamUnderFlowCb(streamRet, userdataRet);
347     EXPECT_NE(capturerStreamImplRet->paStream_, nullptr);
348 }
349 
350 /**
351  * @tc.name  : Test PaCapturerStreamImpl API
352  * @tc.type  : FUNC
353  * @tc.number: PaCapturerStream_012
354  * @tc.desc  : Test PaCapturerStreamImpl interface.
355  */
356 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_012, TestSize.Level1)
357 {
358     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
359     ASSERT_NE(nullptr, capturerStreamImplRet);
360 
361     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
362     adapterManager->InitPaContext();
363     uint32_t sessionId = 123456;
364     AudioProcessConfig processConfig = GetInnerCapConfig();
365     pa_stream *streamRet = adapterManager->InitPaStream(processConfig, sessionId, false);
366     ASSERT_NE(nullptr, streamRet);
367 
368     void *userdataRet = nullptr;
369     capturerStreamImplRet->PAStreamSetStartedCb(streamRet, userdataRet);
370     capturerStreamImplRet->PAStreamSetStartedCb(streamRet, (void *)1);
371     EXPECT_NE(capturerStreamImplRet->paStream_, nullptr);
372 }
373 
374 /**
375  * @tc.name  : Test PaCapturerStreamImpl API
376  * @tc.type  : FUNC
377  * @tc.number: PaCapturerStream_013
378  * @tc.desc  : Test PaCapturerStreamImpl interface.
379  */
380 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_013, TestSize.Level1)
381 {
382     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
383     ASSERT_NE(nullptr, capturerStreamImplRet);
384 
385     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
386     adapterManager->InitPaContext();
387     uint32_t sessionId = 123456;
388     AudioProcessConfig processConfig = GetInnerCapConfig();
389     pa_stream *streamRet = adapterManager->InitPaStream(processConfig, sessionId, false);
390     ASSERT_NE(nullptr, streamRet);
391     void *userdataRet = nullptr;
392     int32_t successRet = 0;
393 
394     capturerStreamImplRet->PAStreamStartSuccessCb(streamRet, successRet, userdataRet);
395     capturerStreamImplRet->PAStreamPauseSuccessCb(streamRet, successRet, userdataRet);
396     capturerStreamImplRet->PAStreamFlushSuccessCb(streamRet, successRet, userdataRet);
397     capturerStreamImplRet->PAStreamStopSuccessCb(streamRet, successRet, userdataRet);
398 }
399 
400 /**
401  * @tc.name  : Test PaCapturerStreamImpl API
402  * @tc.type  : FUNC
403  * @tc.number: PaCapturerStream_014
404  * @tc.desc  : Test PaCapturerStreamImpl interface.
405  */
406 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_014, TestSize.Level1)
407 {
408     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
409     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
410     adapterManager->InitPaContext();
411     uint32_t sessionId = 123456;
412     AudioProcessConfig processConfig = GetInnerCapConfig();
413     pa_stream *stream = adapterManager->InitPaStream(processConfig, sessionId, false);
414     capturerStreamImplRet->paStream_ = stream;
415     EXPECT_EQ(pa_stream_get_state(capturerStreamImplRet->paStream_), PA_STREAM_READY);
416     pa_stream_terminate(capturerStreamImplRet->paStream_);
417     int32_t ret = capturerStreamImplRet->Start();
418     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
419 }
420 
421 /**
422  * @tc.name  : Test PaCapturerStreamImpl API
423  * @tc.type  : FUNC
424  * @tc.number: PaCapturerStream_015
425  * @tc.desc  : Test PaCapturerStreamImpl interface.
426  */
427 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_015, TestSize.Level1)
428 {
429     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
430     bool isStandbyRet = false;
431     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
432     adapterManager->InitPaContext();
433     uint32_t sessionId = 123456;
434     AudioProcessConfig processConfig = GetInnerCapConfig();
435     pa_stream *stream = adapterManager->InitPaStream(processConfig, sessionId, false);
436     capturerStreamImplRet->paStream_ = stream;
437     EXPECT_EQ(pa_stream_get_state(capturerStreamImplRet->paStream_), PA_STREAM_READY);
438 
439     auto ret = capturerStreamImplRet->Start();
440     EXPECT_EQ(ret, SUCCESS);
441     pa_stream_terminate(capturerStreamImplRet->paStream_);
442     ret = capturerStreamImplRet->Pause(isStandbyRet);
443     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
444 }
445 
446 /**
447  * @tc.name  : Test PaCapturerStreamImpl API
448  * @tc.type  : FUNC
449  * @tc.number: PaCapturerStream_016
450  * @tc.desc  : Test PaCapturerStreamImpl interface.
451  */
452 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_016, TestSize.Level1)
453 {
454     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
455     bool isStandbyRet = false;
456     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
457     adapterManager->InitPaContext();
458     uint32_t sessionId = 123456;
459     AudioProcessConfig processConfig = GetInnerCapConfig();
460     pa_stream *stream = adapterManager->InitPaStream(processConfig, sessionId, false);
461     capturerStreamImplRet->paStream_ = stream;
462     EXPECT_EQ(pa_stream_get_state(capturerStreamImplRet->paStream_), PA_STREAM_READY);
463 
464     auto ret = capturerStreamImplRet->Start();
465     EXPECT_EQ(ret, SUCCESS);
466 
467     ret = capturerStreamImplRet->Pause(isStandbyRet);
468     EXPECT_EQ(ret, SUCCESS);
469 
470     pa_stream_terminate(capturerStreamImplRet->paStream_);
471     ret = capturerStreamImplRet->Flush();
472     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
473 }
474 
475 /**
476  * @tc.name  : Test PaCapturerStreamImpl API
477  * @tc.type  : FUNC
478  * @tc.number: PaCapturerStream_017
479  * @tc.desc  : Test PaCapturerStreamImpl interface.
480  */
481 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_017, TestSize.Level1)
482 {
483     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
484     bool isStandbyRet = false;
485     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
486     adapterManager->InitPaContext();
487     uint32_t sessionId = 123456;
488     AudioProcessConfig processConfig = GetInnerCapConfig();
489     pa_stream *stream = adapterManager->InitPaStream(processConfig, sessionId, false);
490     capturerStreamImplRet->paStream_ = stream;
491     EXPECT_EQ(pa_stream_get_state(capturerStreamImplRet->paStream_), PA_STREAM_READY);
492 
493     auto ret = capturerStreamImplRet->Start();
494     EXPECT_EQ(ret, SUCCESS);
495 
496     ret = capturerStreamImplRet->Pause(isStandbyRet);
497     EXPECT_EQ(ret, SUCCESS);
498 
499     ret = capturerStreamImplRet->Flush();
500     EXPECT_EQ(ret, SUCCESS);
501 
502     pa_stream_terminate(capturerStreamImplRet->paStream_);
503     ret = capturerStreamImplRet->Stop();
504     EXPECT_EQ(ret, ERR_ILLEGAL_STATE);
505 }
506 
507 /**
508  * @tc.name  : Test PaCapturerStreamImpl API
509  * @tc.type  : FUNC
510  * @tc.number: PaCapturerStream_018
511  * @tc.desc  : Test PaCapturerStreamImpl interface.
512  */
513 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_018, TestSize.Level1)
514 {
515     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
516     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
517     adapterManager->InitPaContext();
518     uint32_t sessionId = 123456;
519     AudioProcessConfig processConfig = GetInnerCapConfig();
520     pa_stream *stream = adapterManager->InitPaStream(processConfig, sessionId, false);
521     capturerStreamImplRet->paStream_ = stream;
522     capturerStreamImplRet->state_ = RUNNING;
523     auto ret = capturerStreamImplRet->Release();
524     EXPECT_EQ(ret, SUCCESS);
525 }
526 
527 /**
528  * @tc.name  : Test PaCapturerStreamImpl API
529  * @tc.type  : FUNC
530  * @tc.number: PaCapturerStream_019
531  * @tc.desc  : Test PaCapturerStreamImpl interface.
532  */
533 HWTEST_F(PaCapturerStreamUnitTest, PaCapturerStream_019, TestSize.Level1)
534 {
535     auto capturerStreamImplRet = CreatePaCapturerStreamImpl();
536     adapterManager = std::make_shared<PaAdapterManager>(DUP_PLAYBACK);
537     adapterManager->InitPaContext();
538     uint32_t sessionId = 123456;
539     AudioProcessConfig processConfig = GetInnerCapConfig();
540     pa_stream *stream = adapterManager->InitPaStream(processConfig, sessionId, false);
541     capturerStreamImplRet->paStream_ = stream;
542     capturerStreamImplRet->capturerServerDumpFile_ = fopen("/data/data/.pulse_dir/capturer_impl.pcm", "wb+");
543     size_t length = 1;
544     capturerStreamImplRet->DequeueBuffer(length);
545     EXPECT_EQ(capturerStreamImplRet != nullptr, true);
546 #ifdef HAS_FEATURE_INNERCAPTURER
547     ReleasePaPort();
548 #endif
549 }
550 }
551 }