1 /*
2 * Copyright (c) 2023-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 "osal_mem.h"
17 #include <gtest/gtest.h>
18
19 #include "v4_0/audio_types.h"
20 #include "v4_0/iaudio_manager.h"
21 #include "v4_0/iaudio_render.h"
22
23 using namespace std;
24 using namespace testing::ext;
25
26 namespace {
27 const int BUFFER_LENTH = 1024 * 16;
28 const int DEEP_BUFFER_RENDER_PERIOD_SIZE = 4 * 1024;
29 const int32_t AUDIO_RENDER_CHANNELCOUNT = 2;
30 const int32_t AUDIO_SAMPLE_RATE_48K = 48000;
31 const int32_t MAX_AUDIO_ADAPTER_DESC = 5;
32
33 class AudioUtRenderMmapTestAdditional : public testing::Test {
34 public:
35 struct IAudioManager *manager_ = nullptr;
36 struct AudioAdapterDescriptor descs_[MAX_AUDIO_ADAPTER_DESC];
37 struct AudioAdapterDescriptor *desc_;
38 struct IAudioAdapter *adapter_ = nullptr;
39 struct IAudioRender *render_ = nullptr;
40 struct AudioDeviceDescriptor devDescRender_ = {};
41 struct AudioSampleAttributes attrsRender_ = {};
42 uint32_t renderId_ = 0;
43 uint32_t size_ = MAX_AUDIO_ADAPTER_DESC;
44 virtual void SetUp();
45 virtual void TearDown();
46 void InitRenderAttrs(struct AudioSampleAttributes &attrs);
47 void InitRenderDevDesc(struct AudioDeviceDescriptor &devDesc);
48 void FreeAdapterElements(struct AudioAdapterDescriptor *dataBlock, bool freeSelf);
49 void ReleaseAllAdapterDescs(struct AudioAdapterDescriptor *descs, uint32_t descsLen);
50 };
51
InitRenderAttrs(struct AudioSampleAttributes &attrs)52 void AudioUtRenderMmapTestAdditional::InitRenderAttrs(struct AudioSampleAttributes &attrs)
53 {
54 attrs.format = AUDIO_FORMAT_TYPE_PCM_16_BIT;
55 attrs.channelCount = AUDIO_RENDER_CHANNELCOUNT;
56 attrs.sampleRate = AUDIO_SAMPLE_RATE_48K;
57 attrs.interleaved = 0;
58 attrs.type = AUDIO_MMAP_NOIRQ;
59 attrs.period = DEEP_BUFFER_RENDER_PERIOD_SIZE;
60 attrs.frameSize = AUDIO_FORMAT_TYPE_PCM_16_BIT * AUDIO_RENDER_CHANNELCOUNT;
61 attrs.isBigEndian = false;
62 attrs.isSignedData = true;
63 attrs.startThreshold = DEEP_BUFFER_RENDER_PERIOD_SIZE / (attrs.format * attrs.channelCount);
64 attrs.stopThreshold = INT_MAX;
65 attrs.silenceThreshold = BUFFER_LENTH;
66 }
67
InitRenderDevDesc(struct AudioDeviceDescriptor &devDesc)68 void AudioUtRenderMmapTestAdditional::InitRenderDevDesc(struct AudioDeviceDescriptor &devDesc)
69 {
70 devDesc.pins = PIN_OUT_SPEAKER;
71 devDesc.desc = strdup("cardname");
72
73 ASSERT_NE(desc_, nullptr);
74 ASSERT_NE(desc_->ports, nullptr);
75 for (uint32_t index = 0; index < desc_->portsLen; index++) {
76 if (desc_->ports[index].dir == PORT_OUT) {
77 devDesc.portId = desc_->ports[index].portId;
78 return;
79 }
80 }
81 free(devDesc.desc);
82 }
83
FreeAdapterElements(struct AudioAdapterDescriptor *dataBlock, bool freeSelf)84 void AudioUtRenderMmapTestAdditional::FreeAdapterElements(struct AudioAdapterDescriptor *dataBlock, bool freeSelf)
85 {
86 if (dataBlock == nullptr) {
87 return;
88 }
89
90 OsalMemFree(dataBlock->adapterName);
91
92 OsalMemFree(dataBlock->ports);
93
94 if (freeSelf) {
95 OsalMemFree(dataBlock);
96 }
97 }
98
ReleaseAllAdapterDescs(struct AudioAdapterDescriptor *descs, uint32_t descsLen)99 void AudioUtRenderMmapTestAdditional::ReleaseAllAdapterDescs(struct AudioAdapterDescriptor *descs, uint32_t descsLen)
100 {
101 if (descs == nullptr || descsLen == 0) {
102 return;
103 }
104
105 for (uint32_t i = 0; i < descsLen; i++) {
106 FreeAdapterElements(&descs[i], false);
107 }
108 }
109
SetUp()110 void AudioUtRenderMmapTestAdditional::SetUp()
111 {
112 manager_ = IAudioManagerGet(false);
113 ASSERT_NE(manager_, nullptr);
114
115 ASSERT_EQ(HDF_SUCCESS, manager_->GetAllAdapters(manager_, descs_, &size_));
116 ASSERT_NE(descs_, nullptr);
117 EXPECT_GE(MAX_AUDIO_ADAPTER_DESC, size_);
118 desc_ = &descs_[0];
119 ASSERT_EQ(HDF_SUCCESS, manager_->LoadAdapter(manager_, desc_, &adapter_));
120 ASSERT_NE(adapter_, nullptr);
121 InitRenderDevDesc(devDescRender_);
122 InitRenderAttrs(attrsRender_);
123
124 int32_t ret = adapter_->CreateRender(adapter_, &devDescRender_, &attrsRender_, &render_, &renderId_);
125 if (ret != HDF_SUCCESS) {
126 attrsRender_.format = AUDIO_FORMAT_TYPE_PCM_32_BIT;
127 ASSERT_EQ(HDF_SUCCESS, adapter_->CreateRender(adapter_, &devDescRender_, &attrsRender_, &render_, &renderId_));
128 }
129 ASSERT_NE(render_, nullptr);
130 }
131
TearDown()132 void AudioUtRenderMmapTestAdditional::TearDown()
133 {
134 if (adapter_ != nullptr) {
135 adapter_->DestroyRender(adapter_, renderId_);
136 render_ = nullptr;
137 }
138 if (manager_ != nullptr) {
139 manager_->UnloadAdapter(manager_, desc_->adapterName);
140 adapter_ = nullptr;
141 ReleaseAllAdapterDescs(descs_, size_);
142
143 IAudioManagerRelease(manager_, false);
144 }
145 }
146
147 /**
148 * @tc.number SUB_Driver_Audio_GetMmapPosition_0100
149 * @tc.name testCommonRenderGetMmapPosition001
150 * @tc.desc Reliability of function(GetMmapPosition)
151 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition001, TestSize.Level2)152 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition001, TestSize.Level2)
153 {
154 uint64_t frames = 256;
155 struct AudioTimeStamp time;
156 time.tvNSec = 0;
157 time.tvSec = 0;
158 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, &time));
159 }
160
161 /**
162 * @tc.number SUB_Driver_Audio_GetMmapPosition_0200
163 * @tc.name testCommonRenderGetMmapPosition002
164 * @tc.desc Reliability of function(GetMmapPosition)
165 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition002, TestSize.Level2)166 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition002, TestSize.Level2)
167 {
168 uint64_t frames = -256;
169 struct AudioTimeStamp time;
170 time.tvNSec = 0;
171 time.tvSec = 0;
172 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, &time));
173 }
174
175 /**
176 * @tc.number SUB_Driver_Audio_GetMmapPosition_0300
177 * @tc.name testCommonRenderGetMmapPosition003
178 * @tc.desc Reliability of function(GetMmapPosition)
179 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition003, TestSize.Level2)180 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition003, TestSize.Level2)
181 {
182 uint64_t frames = 0;
183 struct AudioTimeStamp time;
184 time.tvNSec = -1;
185 time.tvSec = -1;
186 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, &time));
187 }
188
189 /**
190 * @tc.number SUB_Driver_Audio_GetMmapPosition_0400
191 * @tc.name testCommonRenderGetMmapPosition004
192 * @tc.desc Reliability of function(GetMmapPosition)
193 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition004, TestSize.Level2)194 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition004, TestSize.Level2)
195 {
196 uint64_t frames = 0;
197 struct AudioTimeStamp time;
198 time.tvNSec = 21474836470;
199 time.tvSec = 21474836470;
200 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, &time));
201 }
202
203 /**
204 * @tc.number SUB_Driver_Audio_GetMmapPosition_0500
205 * @tc.name testCommonRenderGetMmapPosition005
206 * @tc.desc Reliability of function(GetMmapPosition)
207 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition005, TestSize.Level2)208 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition005, TestSize.Level2)
209 {
210 uint64_t frames = 0;
211 struct AudioTimeStamp time;
212 time.tvNSec = -21474836480;
213 time.tvSec = -21474836480;
214 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, &time));
215 }
216
217 /**
218 * @tc.number SUB_Driver_Audio_GetMmapPosition_0600
219 * @tc.name testCommonRenderGetMmapPosition006
220 * @tc.desc Reliability of function(GetMmapPosition)
221 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition006, TestSize.Level2)222 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition006, TestSize.Level2)
223 {
224 uint64_t frames = 2;
225 struct AudioTimeStamp time;
226 time.tvNSec = 0;
227 time.tvSec = 0;
228 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, &time));
229 }
230
231 /**
232 * @tc.number SUB_Driver_Audio_GetMmapPosition_0700
233 * @tc.name testCommonRenderGetMmapPosition007
234 * @tc.desc Reliability of function(GetMmapPosition)
235 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition007, TestSize.Level2)236 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition007, TestSize.Level2)
237 {
238 struct AudioTimeStamp time;
239 time.tvNSec = 0;
240 time.tvSec = 0;
241 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, nullptr, &time));
242 }
243
244 /**
245 * @tc.number SUB_Driver_Audio_GetMmapPosition_0800
246 * @tc.name testCommonRenderGetMmapPosition008
247 * @tc.desc Reliability of function(GetMmapPosition)
248 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition008, TestSize.Level2)249 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition008, TestSize.Level2)
250 {
251 uint64_t frames = 0;
252 struct AudioTimeStamp time;
253 time.tvNSec = 0;
254 time.tvSec = 0;
255 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, nullptr));
256 }
257
258 /**
259 * @tc.number SUB_Driver_Audio_GetMmapPosition_0900
260 * @tc.name testCommonRenderGetMmapPosition009
261 * @tc.desc Reliability of function(GetMmapPosition)
262 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition009, TestSize.Level2)263 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition009, TestSize.Level2)
264 {
265 struct AudioTimeStamp time;
266 time.tvNSec = 0;
267 time.tvSec = 0;
268 int32_t i;
269 for (i = 0; i < 10; i++) {
270 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, 0, nullptr));
271 }
272 }
273
274 /**
275 * @tc.number SUB_Driver_Audio_GetMmapPosition_1100
276 * @tc.name testCommonRenderGetMmapPosition011
277 * @tc.desc Reliability of function(GetMmapPosition)
278 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition011, TestSize.Level2)279 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition011, TestSize.Level2)
280 {
281 uint64_t frames = 42949672950;
282 struct AudioTimeStamp time;
283 time.tvNSec = 0;
284 time.tvSec = 0;
285 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, &time));
286 }
287
288 /**
289 * @tc.number SUB_Driver_Audio_GetMmapPosition_1200
290 * @tc.name testCommonRenderGetMmapPosition012
291 * @tc.desc Reliability of function(GetMmapPosition)
292 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition012, TestSize.Level2)293 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition012, TestSize.Level2)
294 {
295 uint64_t frames = 200;
296 struct AudioTimeStamp time;
297 time.tvNSec = 0;
298 time.tvSec = 0;
299 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, &time));
300 }
301
302 /**
303 * @tc.number SUB_Driver_Audio_GetMmapPosition_1300
304 * @tc.name testCommonRenderGetMmapPosition013
305 * @tc.desc Reliability of function(GetMmapPosition)
306 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition013, TestSize.Level2)307 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition013, TestSize.Level2)
308 {
309 uint64_t frames = 0;
310 struct AudioTimeStamp time;
311 time.tvNSec = 3;
312 time.tvSec = 3;
313 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, &time));
314 }
315
316 /**
317 * @tc.number SUB_Driver_Audio_GetMmapPosition_1400
318 * @tc.name testCommonRenderGetMmapPosition014
319 * @tc.desc Reliability of function(GetMmapPosition)
320 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition014, TestSize.Level2)321 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition014, TestSize.Level2)
322 {
323 uint64_t frames = 0;
324 struct AudioTimeStamp time;
325 time.tvNSec = -60;
326 time.tvSec = -60;
327 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, &time));
328 }
329
330 /**
331 * @tc.number SUB_Driver_Audio_GetMmapPosition_1500
332 * @tc.name testCommonRenderGetMmapPosition015
333 * @tc.desc Reliability of function(GetMmapPosition)
334 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition015, TestSize.Level2)335 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition015, TestSize.Level2)
336 {
337 int32_t i;
338 for (i = 0; i < 50; i++) {
339 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, nullptr, nullptr));
340 }
341 }
342
343 /**
344 * @tc.number SUB_Driver_Audio_GetMmapPosition_1600
345 * @tc.name testCommonRenderGetMmapPosition016
346 * @tc.desc Reliability of function(GetMmapPosition)
347 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition016, TestSize.Level2)348 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition016, TestSize.Level2)
349 {
350 uint64_t frames = 0;
351 struct AudioTimeStamp time;
352 time.tvNSec = 0;
353 time.tvSec = 0;
354 int32_t i;
355 for (i = 0; i < 60; i++) {
356 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, &time));
357 }
358 }
359
360 /**
361 * @tc.number SUB_Driver_Audio_GetMmapPosition_1700
362 * @tc.name testCommonRenderGetMmapPosition017
363 * @tc.desc Reliability of function(GetMmapPosition)
364 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition017, TestSize.Level2)365 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition017, TestSize.Level2)
366 {
367 uint64_t frames = 0;
368 int32_t i;
369 for (i = 0; i < 70; i++) {
370 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, nullptr));
371 }
372 }
373
374 /**
375 * @tc.number SUB_Driver_Audio_GetMmapPosition_1800
376 * @tc.name testCommonRenderGetMmapPosition018
377 * @tc.desc Reliability of function(GetMmapPosition)
378 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition018, TestSize.Level2)379 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition018, TestSize.Level2)
380 {
381 struct AudioTimeStamp time;
382 time.tvNSec = 0;
383 time.tvSec = 0;
384 int32_t i;
385 for (i = 0; i < 70; i++) {
386 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, nullptr, &time));
387 }
388 }
389
390 /**
391 * @tc.number SUB_Driver_Audio_GetMmapPosition_1900
392 * @tc.name testCommonRenderGetMmapPosition019
393 * @tc.desc Reliability of function(GetMmapPosition)
394 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition019, TestSize.Level2)395 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition019, TestSize.Level2)
396 {
397 struct AudioTimeStamp time;
398 time.tvNSec = 256;
399 time.tvSec = 256;
400 int32_t i;
401 for (i = 0; i < 70; i++) {
402 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, nullptr, &time));
403 }
404 }
405
406 /**
407 * @tc.number SUB_Driver_Audio_GetMmapPosition_2000
408 * @tc.name testCommonRenderGetMmapPosition020
409 * @tc.desc Reliability of function(GetMmapPosition)
410 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition020, TestSize.Level2)411 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition020, TestSize.Level2)
412 {
413 uint64_t frames = 256;
414 struct AudioTimeStamp time;
415 time.tvNSec = 0;
416 time.tvSec = 0;
417 int32_t i;
418 for (i = 0; i < 70; i++) {
419 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->GetMmapPosition(nullptr, &frames, nullptr));
420 }
421 }
422
423 /**
424 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_0300
425 * @tc.name testCommonRenderReqMmapBuffer003
426 * @tc.desc Test parameters with abnormal input
427 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer003, Function | MediumTest | Level2)428 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer003, Function | MediumTest | Level2)
429 {
430 int32_t reqSize = 256;
431 struct AudioMmapBufferDescriptor desc;
432 EXPECT_EQ(HDF_ERR_INVALID_OBJECT, render_->ReqMmapBuffer(nullptr, reqSize, &desc));
433 }
434
435 /**
436 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_0600
437 * @tc.name testCommonRenderReqMmapBuffer006
438 * @tc.desc Test parameters with abnormal input
439 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer006, Function | MediumTest | Level2)440 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer006, Function | MediumTest | Level2)
441 {
442 int32_t reqSize = 0;
443 struct AudioMmapBufferDescriptor desc;
444 desc.memoryAddress = nullptr;
445 EXPECT_NE(HDF_SUCCESS, render_->ReqMmapBuffer(render_, reqSize, &desc));
446 }
447
448 /**
449 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_1200
450 * @tc.name testCommonRenderReqMmapBuffer012
451 * @tc.desc Test parameters with abnormal input
452 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer012, Function | MediumTest | Level2)453 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer012, Function | MediumTest | Level2)
454 {
455 int32_t reqSize = 0;
456 struct AudioMmapBufferDescriptor desc;
457 desc.filePath = nullptr;
458 EXPECT_NE(HDF_SUCCESS, render_->ReqMmapBuffer(render_, reqSize, &desc));
459 }
460
461 /**
462 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_1300
463 * @tc.name testCommonRenderReqMmapBuffer013
464 * @tc.desc Test parameters with abnormal input
465 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer013, Function | MediumTest | Level2)466 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer013, Function | MediumTest | Level2)
467 {
468 int32_t reqSize = 0;
469 struct AudioMmapBufferDescriptor desc;
470 desc.filePath = nullptr;
471 for (int i = 0; i < 10; i++) {
472 EXPECT_NE(HDF_SUCCESS, render_->ReqMmapBuffer(render_, reqSize, &desc));
473 }
474 }
475
476 /**
477 * @tc.number SUB_Driver_Audio_GetMmapPosition_1000
478 * @tc.name testCommonRenderGetMmapPosition010
479 * @tc.desc Reliability of function(GetMmapPosition)
480 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition010, TestSize.Level1)481 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderGetMmapPosition010, TestSize.Level1)
482 {
483 uint64_t frames = 0;
484 struct AudioTimeStamp time;
485 time.tvNSec = 0;
486 time.tvSec = 0;
487
488 int32_t ret = 0;
489 ASSERT_EQ(HDF_SUCCESS, render_->Start(render_));
490 int32_t i;
491 for (i = 0; i < 50; i++) {
492 ret = render_->GetMmapPosition(render_, &frames, &time);
493 ASSERT_EQ(ret, HDF_SUCCESS);
494 }
495 ret = render_->Stop(render_);
496 }
497
498 /**
499 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_0100
500 * @tc.name testCommonRenderReqMmapBuffer001
501 * @tc.desc Test input param
502 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer001, Function | MediumTest | Level1)503 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer001, Function | MediumTest | Level1)
504 {
505 int32_t reqSize = 256;
506 struct AudioMmapBufferDescriptor desc;
507 int32_t ret = render_->ReqMmapBuffer(render_, reqSize, &desc);
508 #if defined DISPLAY_COMMUNITY || defined ALSA_LIB_MODE
509 ASSERT_NE(ret, HDF_SUCCESS);
510 #else
511 ASSERT_EQ(ret, HDF_SUCCESS);
512 #endif
513 }
514
515 /**
516 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_0200
517 * @tc.name testCommonRenderReqMmapBuffer002
518 * @tc.desc Reliability of function(ReqMmapBuffer)
519 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer002, Function | MediumTest | Level1)520 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer002, Function | MediumTest | Level1)
521 {
522 int32_t reqSize = 1000;
523 struct AudioMmapBufferDescriptor desc;
524 int32_t i;
525 for (i = 0; i < 1000; i++) {
526 int32_t ret = render_->ReqMmapBuffer(render_, reqSize, &desc);
527 #if defined DISPLAY_COMMUNITY || defined ALSA_LIB_MODE
528 ASSERT_NE(ret, HDF_SUCCESS);
529 #else
530 ASSERT_EQ(ret, HDF_SUCCESS);
531 #endif
532 }
533 }
534
535 /**
536 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_0400
537 * @tc.name testCommonRenderReqMmapBuffer004
538 * @tc.desc Test parameters with abnormal input
539 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer004, Function | MediumTest | Level2)540 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer004, Function | MediumTest | Level2)
541 {
542 int32_t reqSize = -1;
543 struct AudioMmapBufferDescriptor desc;
544 int32_t ret = render_->ReqMmapBuffer(render_, reqSize, &desc);
545 ASSERT_NE(ret, HDF_SUCCESS);
546 }
547
548 /**
549 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_0500
550 * @tc.name testCommonRenderReqMmapBuffer005
551 * @tc.desc Test parameters with abnormal input
552 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer005, Function | MediumTest | Level2)553 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer005, Function | MediumTest | Level2)
554 {
555 int32_t reqSize = 0;
556 struct AudioMmapBufferDescriptor desc;
557 int32_t ret = render_->ReqMmapBuffer(render_, reqSize, &desc);
558 ASSERT_NE(ret, HDF_SUCCESS);
559 }
560
561 /**
562 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_0700
563 * @tc.name testCommonRenderReqMmapBuffer007
564 * @tc.desc Test input param
565 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer007, Function | MediumTest | Level1)566 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer007, Function | MediumTest | Level1)
567 {
568 int32_t reqSize = 0;
569 struct AudioMmapBufferDescriptor desc;
570 desc.memoryFd = 0;
571 int32_t ret = render_->ReqMmapBuffer(render_, reqSize, &desc);
572 ASSERT_NE(ret, HDF_SUCCESS);
573 }
574
575 /**
576 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_0800
577 * @tc.name testCommonRenderReqMmapBuffer008
578 * @tc.desc Test input param
579 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer008, Function | MediumTest | Level1)580 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer008, Function | MediumTest | Level1)
581 {
582 int32_t reqSize = 0;
583 struct AudioMmapBufferDescriptor desc;
584 desc.totalBufferFrames = 0;
585 int32_t ret = render_->ReqMmapBuffer(render_, reqSize, &desc);
586 ASSERT_NE(ret, HDF_SUCCESS);
587 }
588
589 /**
590 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_0900
591 * @tc.name testCommonRenderReqMmapBuffer009
592 * @tc.desc Test input param
593 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer009, Function | MediumTest | Level1)594 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer009, Function | MediumTest | Level1)
595 {
596 int32_t reqSize = 0;
597 struct AudioMmapBufferDescriptor desc;
598 desc.transferFrameSize = 0;
599 int32_t ret = render_->ReqMmapBuffer(render_, reqSize, &desc);
600 ASSERT_NE(ret, HDF_SUCCESS);
601 }
602
603 /**
604 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_1000
605 * @tc.name testCommonRenderReqMmapBuffer010
606 * @tc.desc Test input param
607 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer010, Function | MediumTest | Level1)608 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer010, Function | MediumTest | Level1)
609 {
610 int32_t reqSize = 0;
611 struct AudioMmapBufferDescriptor desc;
612 desc.isShareable = 0;
613 int32_t ret = render_->ReqMmapBuffer(render_, reqSize, &desc);
614 ASSERT_NE(ret, HDF_SUCCESS);
615 }
616
617 /**
618 * @tc.number SUB_Driver_Audio_ReqMmapBuffer_1100
619 * @tc.name testCommonRenderReqMmapBuffer011
620 * @tc.desc Test input param
621 */
HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer011, Function | MediumTest | Level1)622 HWTEST_F(AudioUtRenderMmapTestAdditional, testCommonRenderReqMmapBuffer011, Function | MediumTest | Level1)
623 {
624 int32_t reqSize = 0;
625 struct AudioMmapBufferDescriptor desc;
626 desc.offset = 0;
627 int32_t ret = render_->ReqMmapBuffer(render_, reqSize, &desc);
628 ASSERT_NE(ret, HDF_SUCCESS);
629 }
630 } // end of namespace