1 /*
2  * Copyright (c) 2023 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 "effect_common.h"
17 #include "hdf_base.h"
18 #include "hdf_log.h"
19 #include "osal_mem.h"
20 #include "v1_0/effect_types.h"
21 #include "v1_0/ieffect_control.h"
22 #include "v1_0/ieffect_model.h"
23 #include <gtest/gtest.h>
24 
25 using namespace std;
26 using namespace testing::ext;
27 
28 namespace {
29 constexpr bool IS_DIRECTLY_CALL = false;
30 constexpr uint32_t MAX_DESCRIPTOR_NUM = 20;
31 
32 class EffectModelTestAdditional : public testing::Test {
33 public:
34     struct IEffectModel *model_ = nullptr;
35     struct ControllerId controllerId_;
36     virtual void SetUp();
37     virtual void TearDown();
38 };
39 
SetUp()40 void EffectModelTestAdditional::SetUp()
41 {
42     model_ = IEffectModelGet(IS_DIRECTLY_CALL);
43     ASSERT_NE(nullptr, model_);
44 }
45 
TearDown()46 void EffectModelTestAdditional::TearDown()
47 {
48     if (model_ != nullptr) {
49         IEffectModelRelease(model_, IS_DIRECTLY_CALL);
50     }
51 }
52 
53 /**
54  * @tc.number  SUB_Driver_Audio_IsSupplyEffectLibs_0100
55  * @tc.name  testEffectIsSupplyEffectLibs001
56  * @tc.desc  supply indicates the state whether the vendor/OEM supplies effect libraries.
57  */
HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs001, TestSize.Level2)58 HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs001, TestSize.Level2)
59 {
60     int32_t ret = model_->IsSupplyEffectLibs(nullptr, nullptr);
61     EXPECT_EQ(ret, HDF_ERR_INVALID_OBJECT);
62 }
63 
64 /**
65  * @tc.number  SUB_Driver_Audio_IsSupplyEffectLibs_0200
66  * @tc.name  testEffectIsSupplyEffectLibs002
67  * @tc.desc  supply indicates the state whether the vendor/OEM supplies effect libraries.
68  */
HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs002, TestSize.Level2)69 HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs002, TestSize.Level2)
70 {
71     int32_t ret;
72     for (int i = 0; i < 50; i++) {
73         ret = model_->IsSupplyEffectLibs(nullptr, nullptr);
74         EXPECT_EQ(ret, HDF_ERR_INVALID_OBJECT);
75     }
76 }
77 
78 /**
79  * @tc.number  SUB_Driver_Audio_IsSupplyEffectLibs_0300
80  * @tc.name  testEffectIsSupplyEffectLibs003
81  * @tc.desc  supply indicates the state whether the vendor/OEM supplies effect libraries.
82  */
HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs003, TestSize.Level1)83 HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs003, TestSize.Level1)
84 {
85     bool isSupport = true;
86     EXPECT_EQ(HDF_SUCCESS, model_->IsSupplyEffectLibs(model_, &isSupport));
87 }
88 
89 /**
90  * @tc.number  SUB_Driver_Audio_IsSupplyEffectLibs_0400
91  * @tc.name  testEffectIsSupplyEffectLibs004
92  * @tc.desc  supply indicates the state whether the vendor/OEM supplies effect libraries.
93  */
HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs004, TestSize.Level1)94 HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs004, TestSize.Level1)
95 {
96     bool isSupport = true;
97     for (int i = 0; i < 50; i++) {
98         EXPECT_EQ(HDF_SUCCESS, model_->IsSupplyEffectLibs(model_, &isSupport));
99     }
100 }
101 
102 /**
103  * @tc.number  SUB_Driver_Audio_IsSupplyEffectLibs_0500
104  * @tc.name  testEffectIsSupplyEffectLibs005
105  * @tc.desc  supply indicates the state whether the vendor/OEM supplies effect libraries.
106  */
HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs005, TestSize.Level2)107 HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs005, TestSize.Level2)
108 {
109     bool isSupport = true;
110     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->IsSupplyEffectLibs(nullptr, &isSupport));
111 }
112 
113 /**
114  * @tc.number  SUB_Driver_Audio_IsSupplyEffectLibs_0600
115  * @tc.name  testEffectIsSupplyEffectLibs006
116  * @tc.desc  supply indicates the state whether the vendor/OEM supplies effect libraries.
117  */
HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs006, TestSize.Level2)118 HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs006, TestSize.Level2)
119 {
120     bool isSupport = true;
121     for (int i = 0; i < 50; i++) {
122         EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->IsSupplyEffectLibs(nullptr, &isSupport));
123     }
124 }
125 
126 /**
127  * @tc.number  SUB_Driver_Audio_IsSupplyEffectLibs_0700
128  * @tc.name  testEffectIsSupplyEffectLibs007
129  * @tc.desc  supply indicates the state whether the vendor/OEM supplies effect libraries.
130  */
HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs007, TestSize.Level1)131 HWTEST_F(EffectModelTestAdditional, testEffectIsSupplyEffectLibs007, TestSize.Level1)
132 {
133     bool isSupport = false;
134     int32_t ret = HDF_SUCCESS;
135     for (int32_t i = 0; i < 1000; i++) {
136         ret = model_->IsSupplyEffectLibs(model_, &isSupport);
137         EXPECT_EQ(ret, HDF_SUCCESS);
138     }
139 }
140 
141 /**
142  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_0100
143  * @tc.name  testEffectGetAllEffectDescriptors001
144  * @tc.desc  Get descriptors of all supported audio effects.
145  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors001, TestSize.Level2)146 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors001, TestSize.Level2)
147 {
148     uint32_t descsLen = MAX_DESCRIPTOR_NUM;
149     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, nullptr, &descsLen));
150 }
151 
152 /**
153  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_0200
154  * @tc.name  testEffectGetAllEffectDescriptors002
155  * @tc.desc  Get descriptors of all supported audio effects.
156  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors002, TestSize.Level2)157 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors002, TestSize.Level2)
158 {
159     uint32_t descsLen = MAX_DESCRIPTOR_NUM;
160     for (int i = 0; i < 50; i++) {
161         EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, nullptr, &descsLen));
162     }
163 }
164 
165 /**
166  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_0300
167  * @tc.name  testEffectGetAllEffectDescriptors003
168  * @tc.desc  Get descriptors of all supported audio effects.
169  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors003, TestSize.Level2)170 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors003, TestSize.Level2)
171 {
172     struct EffectControllerDescriptor descs[MAX_DESCRIPTOR_NUM];
173     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, descs, nullptr));
174 }
175 
176 /**
177  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_0400
178  * @tc.name  testEffectGetAllEffectDescriptors004
179  * @tc.desc  Get descriptors of all supported audio effects.
180  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors004, TestSize.Level2)181 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors004, TestSize.Level2)
182 {
183     struct EffectControllerDescriptor descs[MAX_DESCRIPTOR_NUM];
184     for (int i = 0; i < 50; i++) {
185         EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, descs, nullptr));
186     }
187 }
188 
189 /**
190  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_0500
191  * @tc.name  testEffectGetAllEffectDescriptors005
192  * @tc.desc  Get descriptors of all supported audio effects.
193  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors005, TestSize.Level2)194 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors005, TestSize.Level2)
195 {
196     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, nullptr, nullptr));
197 }
198 
199 /**
200  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_0600
201  * @tc.name  testEffectGetAllEffectDescriptors006
202  * @tc.desc  Get descriptors of all supported audio effects.
203  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors006, TestSize.Level2)204 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors006, TestSize.Level2)
205 {
206     for (int i = 0; i < 50; i++) {
207         EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, nullptr, nullptr));
208     }
209 }
210 
211 /**
212  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_0700
213  * @tc.name  testEffectGetAllEffectDescriptors007
214  * @tc.desc  Get descriptors of all supported audio effects.
215  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors007, TestSize.Level2)216 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors007, TestSize.Level2)
217 {
218     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetAllEffectDescriptors(model_, nullptr, nullptr));
219 }
220 
221 /**
222  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_0800
223  * @tc.name  testEffectGetAllEffectDescriptors008
224  * @tc.desc  Get descriptors of all supported audio effects.
225  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors008, TestSize.Level2)226 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors008, TestSize.Level2)
227 {
228     for (int i = 0; i < 50; i++) {
229         EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetAllEffectDescriptors(model_, nullptr, nullptr));
230     }
231 }
232 
233 /**
234  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_0900
235  * @tc.name  testEffectGetAllEffectDescriptors009
236  * @tc.desc  Get descriptors of all supported audio effects.
237  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors009, TestSize.Level1)238 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors009, TestSize.Level1)
239 {
240     uint32_t descsLen = 0;
241     struct EffectControllerDescriptor descs[1];
242     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetAllEffectDescriptors(model_, descs, &descsLen));
243 }
244 
245 /**
246  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_1000
247  * @tc.name  testEffectGetAllEffectDescriptors010
248  * @tc.desc  Get descriptors of all supported audio effects.
249  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors010, TestSize.Level2)250 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors010, TestSize.Level2)
251 {
252     struct EffectControllerDescriptor descs[0];
253     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, descs, nullptr));
254 }
255 
256 /**
257  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_1100
258  * @tc.name  testEffectGetAllEffectDescriptors011
259  * @tc.desc  Get descriptors of all supported audio effects.
260  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors011, TestSize.Level2)261 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors011, TestSize.Level2)
262 {
263     struct EffectControllerDescriptor descs[0];
264     for (int i = 0; i < 50; i++) {
265         EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, descs, nullptr));
266     }
267 }
268 
269 /**
270  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_1200
271  * @tc.name  testEffectGetAllEffectDescriptors012
272  * @tc.desc  Get descriptors of all supported audio effects.
273  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors012, TestSize.Level2)274 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors012, TestSize.Level2)
275 {
276     struct EffectControllerDescriptor descs[100];
277     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, descs, nullptr));
278 }
279 
280 /**
281  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_1300
282  * @tc.name  testEffectGetAllEffectDescriptors013
283  * @tc.desc  Get descriptors of all supported audio effects.
284  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors013, TestSize.Level2)285 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors013, TestSize.Level2)
286 {
287     struct EffectControllerDescriptor descs[100];
288     for (int i = 0; i < 50; i++) {
289         EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, descs, nullptr));
290     }
291 }
292 
293 /**
294  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_1400
295  * @tc.name  testEffectGetAllEffectDescriptors014
296  * @tc.desc  Get descriptors of all supported audio effects.
297  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors014, TestSize.Level2)298 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors014, TestSize.Level2)
299 {
300     uint32_t descsLen = 0;
301     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, nullptr, &descsLen));
302 }
303 
304 /**
305  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_1500
306  * @tc.name  testEffectGetAllEffectDescriptors015
307  * @tc.desc  Get descriptors of all supported audio effects.
308  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors015, TestSize.Level2)309 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors015, TestSize.Level2)
310 {
311     uint32_t descsLen = 0;
312     for (int i = 0; i < 50; i++) {
313         EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, nullptr, &descsLen));
314     }
315 }
316 
317 /**
318  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_1600
319  * @tc.name  testEffectGetAllEffectDescriptors016
320  * @tc.desc  Get descriptors of all supported audio effects.
321  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors016, TestSize.Level2)322 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors016, TestSize.Level2)
323 {
324     uint32_t descsLen = 4294967295;
325     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, nullptr, &descsLen));
326 }
327 
328 /**
329  * @tc.number  SUB_Driver_Audio_GetAllEffectDescriptors_1700
330  * @tc.name  testEffectGetAllEffectDescriptors017
331  * @tc.desc  Get descriptors of all supported audio effects.
332  */
HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors017, TestSize.Level2)333 HWTEST_F(EffectModelTestAdditional, testEffectGetAllEffectDescriptors017, TestSize.Level2)
334 {
335     uint32_t descsLen = 4294967295;
336     for (int i = 0; i < 50; i++) {
337         EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetAllEffectDescriptors(nullptr, nullptr, &descsLen));
338     }
339 }
340 
341 /**
342  * @tc.number  SUB_Driver_Audio_CreateEffectController_0100
343  * @tc.name  testEffectCreateEffectController001
344  * @tc.desc  Create an effect controller which is used to operate the effect instance.
345  */
HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController001, TestSize.Level2)346 HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController001, TestSize.Level2)
347 {
348     struct IEffectControl *controller = NULL;
349     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->CreateEffectController(nullptr, nullptr, &controller, &controllerId_));
350 }
351 
352 /**
353  * @tc.number  SUB_Driver_Audio_CreateEffectController_0200
354  * @tc.name  testEffectCreateEffectController002
355  * @tc.desc  Create an effect controller which is used to operate the effect instance.
356  */
HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController002, TestSize.Level2)357 HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController002, TestSize.Level2)
358 {
359     struct IEffectControl *controller = NULL;
360     for (int i = 0; i < 50; i++) {
361         EXPECT_EQ(HDF_ERR_INVALID_OBJECT,
362                   model_->CreateEffectController(nullptr, nullptr, &controller, &controllerId_));
363     }
364 }
365 
366 /**
367  * @tc.number  SUB_Driver_Audio_CreateEffectController_0300
368  * @tc.name  testEffectCreateEffectController003
369  * @tc.desc  Create an effect controller which is used to operate the effect instance.
370  */
HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController003, TestSize.Level2)371 HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController003, TestSize.Level2)
372 {
373     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->CreateEffectController(model_, nullptr, nullptr, &controllerId_));
374 }
375 
376 /**
377  * @tc.number  SUB_Driver_Audio_CreateEffectController_0400
378  * @tc.name  testEffectCreateEffectController004
379  * @tc.desc  Create an effect controller which is used to operate the effect instance.
380  */
HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController004, TestSize.Level2)381 HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController004, TestSize.Level2)
382 {
383     for (int i = 0; i < 50; i++) {
384         EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->CreateEffectController(model_, nullptr, nullptr, &controllerId_));
385     }
386 }
387 
388 /**
389  * @tc.number  SUB_Driver_Audio_CreateEffectController_0500
390  * @tc.name  testEffectCreateEffectController005
391  * @tc.desc  Create an effect controller which is used to operate the effect instance.
392  */
HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController005, TestSize.Level2)393 HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController005, TestSize.Level2)
394 {
395     struct IEffectControl *controller = NULL;
396     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->CreateEffectController(model_, nullptr, &controller, nullptr));
397 }
398 /**
399  * @tc.number  SUB_Driver_Audio_CreateEffectController_0600
400  * @tc.name  testEffectCreateEffectController006
401  * @tc.desc  Create an effect controller which is used to operate the effect instance.
402  */
HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController006, TestSize.Level2)403 HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController006, TestSize.Level2)
404 {
405     struct IEffectControl *controller = NULL;
406     for (int i = 0; i < 50; i++) {
407         EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->CreateEffectController(model_, nullptr, &controller, nullptr));
408     }
409 }
410 
411 /**
412  * @tc.number  SUB_Driver_Audio_CreateEffectController_0700
413  * @tc.name  testEffectCreateEffectController007
414  * @tc.desc  Create an effect controller which is used to operate the effect instance.
415  */
HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController007, TestSize.Level1)416 HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController007, TestSize.Level1)
417 {
418     struct EffectInfo info = {
419         .libName = strdup("libmock_effect_lib"),
420         .effectId = strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"),
421         .ioDirection = 1,
422     };
423     struct IEffectControl *controller = NULL;
424     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->CreateEffectController(model_, nullptr, nullptr, &controllerId_));
425     EXPECT_EQ(HDF_SUCCESS, model_->CreateEffectController(model_, &info, &controller, &controllerId_));
426     EXPECT_EQ(HDF_SUCCESS, model_->DestroyEffectController(model_, &controllerId_));
427 }
428 
429 /**
430  * @tc.number  SUB_Driver_Audio_CreateEffectController_0800
431  * @tc.name  testEffectCreateEffectController008
432  * @tc.desc  Create an effect controller which is used to operate the effect instance.
433  */
HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController008, TestSize.Level1)434 HWTEST_F(EffectModelTestAdditional, testEffectCreateEffectController008, TestSize.Level1)
435 {
436     struct EffectInfo info = {
437         .libName = strdup("libmock_effect_lib"),
438         .effectId = strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"),
439         .ioDirection = 1,
440     };
441     struct IEffectControl *controller = NULL;
442     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->CreateEffectController(nullptr, nullptr, &controller, &controllerId_));
443     EXPECT_EQ(HDF_SUCCESS, model_->CreateEffectController(model_, &info, &controller, &controllerId_));
444     EXPECT_EQ(HDF_SUCCESS, model_->DestroyEffectController(model_, &controllerId_));
445 }
446 
447 /**
448  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_0100
449  * @tc.name   : testGetEffectDescriptor001
450  * @tc.desc   : Reliability of function(GetEffectDescriptor)
451  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor001, TestSize.Level1)452 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor001, TestSize.Level1)
453 {
454     struct EffectControllerDescriptor desc;
455 
456     EXPECT_EQ(HDF_SUCCESS,
457               model_->GetEffectDescriptor(model_, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), &desc));
458 }
459 /**
460  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_0200
461  * @tc.name   : testGetEffectDescriptor002
462  * @tc.desc   : Reliability of function(GetEffectDescriptor)
463  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor002, TestSize.Level2)464 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor002, TestSize.Level2)
465 {
466     struct EffectControllerDescriptor desc;
467 
468     EXPECT_EQ(HDF_ERR_INVALID_OBJECT,
469               model_->GetEffectDescriptor(nullptr, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), &desc));
470 }
471 /**
472  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_0300
473  * @tc.name   : testGetEffectDescriptor003
474  * @tc.desc   : Reliability of function(GetEffectDescriptor)
475  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor003, TestSize.Level2)476 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor003, TestSize.Level2)
477 {
478     struct EffectControllerDescriptor desc;
479 
480     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, &desc));
481 }
482 /**
483  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_0400
484  * @tc.name   : testGetEffectDescriptor004
485  * @tc.desc   : Reliability of function(GetEffectDescriptor)
486  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor004, TestSize.Level2)487 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor004, TestSize.Level2)
488 {
489     EXPECT_EQ(HDF_ERR_INVALID_PARAM,
490               model_->GetEffectDescriptor(model_, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), nullptr));
491 }
492 /**
493  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_0500
494  * @tc.name   : testGetEffectDescriptor005
495  * @tc.desc   : Reliability of function(GetEffectDescriptor)
496  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor005, TestSize.Level1)497 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor005, TestSize.Level1)
498 {
499     struct EffectControllerDescriptor desc;
500     int32_t i;
501     for (i = 0; i < 50; i++) {
502         EXPECT_EQ(HDF_SUCCESS,
503                   model_->GetEffectDescriptor(model_, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), &desc));
504     }
505 }
506 /**
507  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_0600
508  * @tc.name   : testGetEffectDescriptor006
509  * @tc.desc   : Reliability of function(GetEffectDescriptor)
510  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor006, TestSize.Level2)511 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor006, TestSize.Level2)
512 {
513     struct EffectControllerDescriptor desc;
514     int32_t i;
515     for (i = 0; i < 50; i++) {
516         EXPECT_EQ(HDF_ERR_INVALID_OBJECT,
517                   model_->GetEffectDescriptor(nullptr, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), &desc));
518     }
519 }
520 /**
521  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_0700
522  * @tc.name   : testGetEffectDescriptor007
523  * @tc.desc   : Reliability of function(GetEffectDescriptor)
524  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor007, TestSize.Level2)525 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor007, TestSize.Level2)
526 {
527     struct EffectControllerDescriptor desc;
528     int32_t i;
529     for (i = 0; i < 50; i++) {
530         EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, &desc));
531     }
532 }
533 /**
534  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_0800
535  * @tc.name   : testGetEffectDescriptor008
536  * @tc.desc   : Reliability of function(GetEffectDescriptor)
537  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor008, TestSize.Level2)538 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor008, TestSize.Level2)
539 {
540     int32_t i;
541     for (i = 0; i < 50; i++) {
542         EXPECT_EQ(HDF_ERR_INVALID_PARAM,
543                   model_->GetEffectDescriptor(model_, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), nullptr));
544     }
545 }
546 
547 /**
548  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_0900
549  * @tc.name   : testGetEffectDescriptor009
550  * @tc.desc   : Reliability of function(GetEffectDescriptor)
551  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor009, TestSize.Level2)552 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor009, TestSize.Level2)
553 {
554     struct EffectControllerDescriptor desc;
555 
556     EXPECT_EQ(HDF_ERR_INVALID_OBJECT,
557               model_->GetEffectDescriptor(nullptr, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), &desc));
558     EXPECT_EQ(HDF_SUCCESS,
559               model_->GetEffectDescriptor(model_, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), &desc));
560 }
561 /**
562  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_1000
563  * @tc.name   : testGetEffectDescriptor010
564  * @tc.desc   : Reliability of function(GetEffectDescriptor)
565  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor010, TestSize.Level2)566 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor010, TestSize.Level2)
567 {
568     struct EffectControllerDescriptor desc;
569 
570     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, &desc));
571     EXPECT_EQ(HDF_SUCCESS,
572               model_->GetEffectDescriptor(model_, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), &desc));
573 }
574 /**
575  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_1100
576  * @tc.name   : testGetEffectDescriptor011
577  * @tc.desc   : Reliability of function(GetEffectDescriptor)
578  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor011, TestSize.Level2)579 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor011, TestSize.Level2)
580 {
581     struct EffectControllerDescriptor desc;
582 
583     EXPECT_EQ(HDF_ERR_INVALID_PARAM,
584               model_->GetEffectDescriptor(model_, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), nullptr));
585     EXPECT_EQ(HDF_SUCCESS,
586               model_->GetEffectDescriptor(model_, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), &desc));
587 }
588 /**
589  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_1200
590  * @tc.name   : testGetEffectDescriptor012
591  * @tc.desc   : Reliability of function(GetEffectDescriptor)
592  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor012, TestSize.Level2)593 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor012, TestSize.Level2)
594 {
595     struct EffectControllerDescriptor desc;
596 
597     EXPECT_EQ(HDF_ERR_INVALID_OBJECT,
598               model_->GetEffectDescriptor(nullptr, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), &desc));
599     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, &desc));
600 }
601 /**
602  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_1300
603  * @tc.name   : testGetEffectDescriptor013
604  * @tc.desc   : Reliability of function(GetEffectDescriptor)
605  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor013, TestSize.Level2)606 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor013, TestSize.Level2)
607 {
608     struct EffectControllerDescriptor desc;
609 
610     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetEffectDescriptor(nullptr, nullptr, &desc));
611     EXPECT_EQ(HDF_ERR_INVALID_PARAM,
612               model_->GetEffectDescriptor(model_, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), nullptr));
613 }
614 /**
615  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_1400
616  * @tc.name   : testGetEffectDescriptor014
617  * @tc.desc   : Reliability of function(GetEffectDescriptor)
618  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor014, TestSize.Level2)619 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor014, TestSize.Level2)
620 {
621     struct EffectControllerDescriptor desc;
622 
623     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetEffectDescriptor(nullptr, nullptr, nullptr));
624     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, &desc));
625 }
626 /**
627  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_1500
628  * @tc.name   : testGetEffectDescriptor015
629  * @tc.desc   : Reliability of function(GetEffectDescriptor)
630  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor015, TestSize.Level2)631 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor015, TestSize.Level2)
632 {
633     struct EffectControllerDescriptor desc;
634 
635     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
636     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, &desc));
637 }
638 /**
639  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_1600
640  * @tc.name   : testGetEffectDescriptor016
641  * @tc.desc   : Reliability of function(GetEffectDescriptor)
642  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor016, TestSize.Level2)643 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor016, TestSize.Level2)
644 {
645     struct EffectControllerDescriptor desc;
646 
647     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
648     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetEffectDescriptor(nullptr, nullptr, &desc));
649 }
650 /**
651  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_1700
652  * @tc.name   : testGetEffectDescriptor017
653  * @tc.desc   : Reliability of function(GetEffectDescriptor)
654  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor017, TestSize.Level2)655 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor017, TestSize.Level2)
656 {
657     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
658     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
659 }
660 /**
661  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_1800
662  * @tc.name   : testGetEffectDescriptor018
663  * @tc.desc   : Reliability of function(GetEffectDescriptor)
664  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor018, TestSize.Level2)665 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor018, TestSize.Level2)
666 {
667     struct EffectControllerDescriptor desc;
668 
669     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
670     int32_t i;
671     for (i = 0; i < 50; i++) {
672         EXPECT_EQ(HDF_SUCCESS,
673                   model_->GetEffectDescriptor(model_, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), &desc));
674     }
675 }
676 /**
677  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_1900
678  * @tc.name   : testGetEffectDescriptor019
679  * @tc.desc   : Reliability of function(GetEffectDescriptor)
680  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor019, TestSize.Level2)681 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor019, TestSize.Level2)
682 {
683     struct EffectControllerDescriptor desc;
684 
685     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
686     int32_t i;
687     for (i = 0; i < 50; i++) {
688         EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, &desc));
689     }
690 }
691 
692 /**
693  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_2000
694  * @tc.name   : testGetEffectDescriptor020
695  * @tc.desc   : Reliability of function(GetEffectDescriptor)
696  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor020, TestSize.Level2)697 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor020, TestSize.Level2)
698 {
699     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
700     int32_t i;
701     for (i = 0; i < 50; i++) {
702         EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
703     }
704 }
705 
706 /**
707  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_2100
708  * @tc.name   : testGetEffectDescriptor021
709  * @tc.desc   : Reliability of function(GetEffectDescriptor)
710  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor021, TestSize.Level2)711 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor021, TestSize.Level2)
712 {
713     struct EffectControllerDescriptor desc;
714 
715     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
716     int32_t i;
717     for (i = 0; i < 50; i++) {
718         EXPECT_EQ(HDF_ERR_INVALID_OBJECT,
719                   model_->GetEffectDescriptor(nullptr, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), &desc));
720     }
721 }
722 
723 /**
724  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_2200
725  * @tc.name   : testGetEffectDescriptor022
726  * @tc.desc   : Reliability of function(GetEffectDescriptor)
727  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor022, TestSize.Level2)728 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor022, TestSize.Level2)
729 {
730     struct EffectControllerDescriptor desc;
731 
732     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
733     int32_t i;
734     for (i = 0; i < 50; i++) {
735         EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetEffectDescriptor(nullptr, nullptr, &desc));
736     }
737 }
738 /**
739  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_2300
740  * @tc.name   : testGetEffectDescriptor023
741  * @tc.desc   : Reliability of function(GetEffectDescriptor)
742  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor023, TestSize.Level2)743 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor023, TestSize.Level2)
744 {
745     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
746     int32_t i;
747     for (i = 0; i < 50; i++) {
748         EXPECT_EQ(HDF_ERR_INVALID_OBJECT,
749                   model_->GetEffectDescriptor(nullptr, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), nullptr));
750     }
751 }
752 /**
753  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_2400
754  * @tc.name   : testGetEffectDescriptor024
755  * @tc.desc   : Reliability of function(GetEffectDescriptor)
756  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor024, TestSize.Level2)757 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor024, TestSize.Level2)
758 {
759     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
760     int32_t i;
761     for (i = 0; i < 50; i++) {
762         EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetEffectDescriptor(nullptr, nullptr, nullptr));
763     }
764 }
765 /**
766  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_2500
767  * @tc.name   : testGetEffectDescriptor025
768  * @tc.desc   : Reliability of function(GetEffectDescriptor)
769  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor025, TestSize.Level2)770 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor025, TestSize.Level2)
771 {
772     struct EffectControllerDescriptor desc;
773 
774     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetEffectDescriptor(nullptr, nullptr, &desc));
775     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, &desc));
776     EXPECT_EQ(HDF_ERR_INVALID_OBJECT,
777               model_->GetEffectDescriptor(nullptr, strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"), nullptr));
778 }
779 /**
780  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_2600
781  * @tc.name   : testGetEffectDescriptor026
782  * @tc.desc   : Reliability of function(GetEffectDescriptor)
783  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor026, TestSize.Level2)784 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor026, TestSize.Level2)
785 {
786     struct EffectControllerDescriptor desc;
787 
788     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetEffectDescriptor(nullptr, nullptr, &desc));
789     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, &desc));
790     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
791 }
792 /**
793  * @tc.number : SUB_Driver_Audio_GetEffectDescriptor_2700
794  * @tc.name   : testGetEffectDescriptor027
795  * @tc.desc   : Reliability of function(GetEffectDescriptor)
796  */
HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor027, TestSize.Level2)797 HWTEST_F(EffectModelTestAdditional, testGetEffectDescriptor027, TestSize.Level2)
798 {
799     struct EffectControllerDescriptor desc;
800 
801     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetEffectDescriptor(nullptr, nullptr, &desc));
802     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->GetEffectDescriptor(nullptr, nullptr, nullptr));
803     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->GetEffectDescriptor(model_, nullptr, nullptr));
804 }
805 /**
806  * @tc.number : SUB_Driver_Audio_DestroyEffectController_0100
807  * @tc.name   : testAudioDestroyEffectController001
808  * @tc.desc   : Reliability of function(DestroyEffectController)
809  */
HWTEST_F(EffectModelTestAdditional, testAudioDestroyEffectController001, TestSize.Level2)810 HWTEST_F(EffectModelTestAdditional, testAudioDestroyEffectController001, TestSize.Level2)
811 {
812     struct EffectInfo info = {
813         .libName = strdup("libmock_effect_lib"),
814         .effectId = strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"),
815         .ioDirection = 1,
816     };
817 
818     struct IEffectControl *controller = NULL;
819     ASSERT_EQ(HDF_SUCCESS, model_->CreateEffectController(model_, &info, &controller, &controllerId_));
820     ASSERT_NE(controller, nullptr);
821     int32_t i;
822     for (i = 0; i < 50; i++) {
823         EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->DestroyEffectController(nullptr, &controllerId_));
824         EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->DestroyEffectController(model_, nullptr));
825     }
826     EXPECT_EQ(HDF_SUCCESS, model_->DestroyEffectController(model_, &controllerId_));
827 }
828 /**
829  * @tc.number : SUB_Driver_Audio_DestroyEffectController_0200
830  * @tc.name   : testAudioDestroyEffectController002
831  * @tc.desc   : Reliability of function(DestroyEffectController)
832  */
HWTEST_F(EffectModelTestAdditional, testAudioDestroyEffectController002, TestSize.Level1)833 HWTEST_F(EffectModelTestAdditional, testAudioDestroyEffectController002, TestSize.Level1)
834 {
835     struct EffectInfo info = {
836         .libName = strdup("libmock_effect_lib"),
837         .effectId = strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"),
838         .ioDirection = 1,
839     };
840 
841     struct IEffectControl *controller = NULL;
842     ASSERT_EQ(HDF_SUCCESS, model_->CreateEffectController(model_, &info, &controller, &controllerId_));
843     ASSERT_NE(controller, nullptr);
844     EXPECT_EQ(HDF_SUCCESS, model_->DestroyEffectController(model_, &controllerId_));
845 }
846 /**
847  * @tc.number : SUB_Driver_Audio_DestroyEffectController_0300
848  * @tc.name   : testAudioDestroyEffectController003
849  * @tc.desc   : Reliability of function(DestroyEffectController)
850  */
HWTEST_F(EffectModelTestAdditional, testAudioDestroyEffectController003, TestSize.Level1)851 HWTEST_F(EffectModelTestAdditional, testAudioDestroyEffectController003, TestSize.Level1)
852 {
853     struct EffectInfo info = {
854         .libName = strdup("libmock_effect_lib"),
855         .effectId = strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"),
856         .ioDirection = 1,
857     };
858 
859     struct IEffectControl *controller = NULL;
860     int32_t i;
861     for (i = 0; i < 50; i++) {
862         ASSERT_EQ(HDF_SUCCESS, model_->CreateEffectController(model_, &info, &controller, &controllerId_));
863         ASSERT_NE(controller, nullptr);
864         EXPECT_EQ(HDF_SUCCESS, model_->DestroyEffectController(model_, &controllerId_));
865     }
866 }
867 /**
868  * @tc.number : SUB_Driver_Audio_DestroyEffectController_0400
869  * @tc.name   : testAudioDestroyEffectController004
870  * @tc.desc   : Reliability of function(DestroyEffectController)
871  */
HWTEST_F(EffectModelTestAdditional, testAudioDestroyEffectController004, TestSize.Level2)872 HWTEST_F(EffectModelTestAdditional, testAudioDestroyEffectController004, TestSize.Level2)
873 {
874     struct EffectInfo info = {
875         .libName = strdup("libmock_effect_lib"),
876         .effectId = strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"),
877         .ioDirection = 1,
878     };
879 
880     struct IEffectControl *controller = NULL;
881     ASSERT_EQ(HDF_SUCCESS, model_->CreateEffectController(model_, &info, &controller, &controllerId_));
882     ASSERT_NE(controller, nullptr);
883 
884     EXPECT_EQ(HDF_ERR_INVALID_OBJECT, model_->DestroyEffectController(nullptr, &controllerId_));
885     EXPECT_EQ(HDF_SUCCESS, model_->DestroyEffectController(model_, &controllerId_));
886 }
887 /**
888  * @tc.number : SUB_Driver_Audio_DestroyEffectController_0500
889  * @tc.name   : testAudioDestroyEffectController005
890  * @tc.desc   : Reliability of function(DestroyEffectController)
891  */
HWTEST_F(EffectModelTestAdditional, testAudioDestroyEffectController005, TestSize.Level2)892 HWTEST_F(EffectModelTestAdditional, testAudioDestroyEffectController005, TestSize.Level2)
893 {
894     struct EffectInfo info = {
895         .libName = strdup("libmock_effect_lib"),
896         .effectId = strdup("aaaabbbb-8888-9999-6666-aabbccdd9966ff"),
897         .ioDirection = 1,
898     };
899 
900     struct IEffectControl *controller = NULL;
901     ASSERT_EQ(HDF_SUCCESS, model_->CreateEffectController(model_, &info, &controller, &controllerId_));
902     ASSERT_NE(controller, nullptr);
903 
904     EXPECT_EQ(HDF_ERR_INVALID_PARAM, model_->DestroyEffectController(model_, nullptr));
905     EXPECT_EQ(HDF_SUCCESS, model_->DestroyEffectController(model_, &controllerId_));
906 }
907 } // end of namespace
908