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 #include "codec_omx_ext.h"
16 #include "v3_0/codec_callback_service.h"
17 #include "v1_0/display_buffer_type.h"
18 #include "v1_0/display_composer_type.h"
19 #include "v3_0/icodec_callback.h"
20 #include "v3_0/icodec_component.h"
21 #include "v3_0/icodec_component_manager.h"
22 #include "v1_0/include/idisplay_buffer.h"
23 #include <OMX_Component.h>
24 #include <OMX_Core.h>
25 #include <OMX_Video.h>
26 #include <OMX_VideoExt.h>
27 #include <benchmark/benchmark.h>
28 #include <gtest/gtest.h>
29 #include <hdf_log.h>
30 #include <securec.h>
31 #include <servmgr_hdi.h>
32 #include <vector>
33 
34 using namespace std;
35 using namespace testing::ext;
36 using OHOS::sptr;
37 using namespace OHOS::HDI::Codec::V3_0;
38 namespace {
39 constexpr CodecType TYPE = CodecType::VIDEO_ENCODER;
40 constexpr AvCodecRole ROLE = MEDIA_ROLETYPE_VIDEO_AVC;
41 static sptr<ICodecComponent> g_component = nullptr;
42 static sptr<ICodecCallback> g_callback = nullptr;
43 static sptr<ICodecComponentManager> g_manager = nullptr;
44 static CodecVersionType g_version;
45 static std::string g_compName = "";
46 uint32_t g_componentId = 0;
47 enum class PortIndex { PORT_INDEX_INPUT = 0, PORT_INDEX_OUTPUT = 1 };
48 const static uint32_t INPUT_INDEX = static_cast<uint32_t>(PortIndex::PORT_INDEX_INPUT);
49 const static uint32_t OUTPUT_INDEX = static_cast<uint32_t>(PortIndex::PORT_INDEX_OUTPUT);
50 constexpr int32_t WIDTH = 640;
51 constexpr int32_t HEIGHT = 480;
52 constexpr int32_t BUFFER_SIZE = WIDTH * HEIGHT * 3;
53 constexpr int FD_DEFAULT = -1;
54 constexpr uint32_t BUFFER_ID_ERROR = 65000;
55 
56 template <typename T>
InitParam(T &param)57 void InitParam(T &param)
58 {
59     memset_s(&param, sizeof(param), 0x0, sizeof(param));
60     param.size = sizeof(param);
61     param.version.nVersion = 1;
62 }
63 
64 template <typename T>
ObjectToVector(T &param, std::vector<int8_t> &vec)65 void ObjectToVector(T &param, std::vector<int8_t> &vec)
66 {
67     int8_t *paramPointer = reinterpret_cast<int8_t *>(&param);
68     vec.insert(vec.end(), paramPointer, paramPointer + sizeof(param));
69 }
70 
71 class CodecComponentTestAdditional : public testing::Test {
72 public:
InitOmxCodecBuffer(OmxCodecBuffer &buffer, CodecBufferType type)73     void InitOmxCodecBuffer(OmxCodecBuffer &buffer, CodecBufferType type)
74     {
75         buffer.bufferType = type;
76         buffer.fenceFd = -1;
77         buffer.version = g_version;
78         buffer.allocLen = BUFFER_SIZE;
79         buffer.fd = FD_DEFAULT;
80         buffer.bufferhandle = nullptr;
81         buffer.pts = 0;
82         buffer.flag = 0;
83         buffer.size = sizeof(OmxCodecBuffer);
84         buffer.type = READ_ONLY_TYPE;
85     }
SetUpTestCase()86     static void SetUpTestCase()
87     {
88         g_manager = ICodecComponentManager::Get();
89         int32_t count = 0;
90         auto ret = g_manager->GetComponentNum(count);
91         ASSERT_EQ(ret, HDF_SUCCESS);
92         if (count <= 0) {
93             return;
94         }
95 
96         std::vector<CodecCompCapability> capList;
97         auto err = g_manager->GetComponentCapabilityList(capList, count);
98         ASSERT_TRUE(err == HDF_SUCCESS);
99         for (auto cap : capList) {
100             if (cap.type == TYPE && cap.role == ROLE) {
101                 g_compName = cap.compName;
102                 break;
103             }
104         }
105     }
TearDownTestCase()106     static void TearDownTestCase() { g_manager = nullptr; }
SetUp()107     void SetUp()
108     {
109         if (g_manager == nullptr) {
110             return;
111         }
112         g_callback = new CodecCallbackService();
113         if (g_callback == nullptr) {
114             return;
115         }
116         if (g_compName.empty()) {
117             return;
118         }
119 
120         auto ret = g_manager->CreateComponent(g_component, g_componentId, g_compName.data(),
121                                               reinterpret_cast<int64_t>(this), g_callback);
122         if (ret != HDF_SUCCESS) {
123             return;
124         }
125         struct CompVerInfo verInfo;
126         ret = g_component->GetComponentVersion(verInfo);
127         if (ret != HDF_SUCCESS) {
128             return;
129         }
130         g_version = verInfo.compVersion;
131     }
TearDown()132     void TearDown()
133     {
134         std::vector<int8_t> cmdData;
135         if (g_component != nullptr) {
136             g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_LOADED, cmdData);
137         }
138         if (g_manager != nullptr && g_component != nullptr) {
139             g_manager->DestroyComponent(g_componentId);
140         }
141         g_callback = nullptr;
142         g_component = nullptr;
143     }
144 };
145 
146 /**
147 * @tc.number : SUB_Driver_Codec_GetParameter_0200
148 * @tc.name   : testGetParameter001
149 * @tc.desc   : when the index = OMX_IndexCodecVideoPortFormat, structure inParamStruct> portIndex = INPUT_INDEX,
150                 If inParamStruct->codecColorIndex = 0, the command is successfully sent.
151 */
HWTEST_F(CodecComponentTestAdditional, testGetParameter001, Function | MediumTest | Level1)152 HWTEST_F(CodecComponentTestAdditional, testGetParameter001, Function | MediumTest | Level1)
153 {
154     ASSERT_TRUE(g_component != nullptr);
155     CodecVideoPortFormatParam param;
156     InitParam(param);
157     param.portIndex = INPUT_INDEX;
158     param.codecColorIndex = 0;
159     std::vector<int8_t> inParam;
160     ObjectToVector(param, inParam);
161     std::vector<int8_t> outParam;
162     auto ret = g_component->GetParameter(OMX_IndexParamVideoPortFormat, inParam, outParam);
163     ASSERT_EQ(ret, HDF_SUCCESS);
164 }
165 /**
166 * @tc.number : SUB_Driver_Codec_GetParameter_0300
167 * @tc.name   : testGetParameter002
168 * @tc.desc   : When the index = OMX_IndexParamVideoQuantization, structure inParamStruct->portIndex = INPUT_INDEX,
169                 inParamStruct->codecColorIndex = 0, Failed to send the command.
170 */
HWTEST_F(CodecComponentTestAdditional, testGetParameter002, Function | MediumTest | Level2)171 HWTEST_F(CodecComponentTestAdditional, testGetParameter002, Function | MediumTest | Level2)
172 {
173     ASSERT_TRUE(g_component != nullptr);
174     CodecVideoPortFormatParam param;
175     InitParam(param);
176     param.portIndex = INPUT_INDEX;
177     param.codecColorIndex = 0;
178     std::vector<int8_t> inParam;
179     ObjectToVector(param, inParam);
180     std::vector<int8_t> outParam;
181     auto ret = g_component->GetParameter(OMX_IndexParamVideoQuantization, inParam, outParam);
182     ASSERT_NE(ret, HDF_SUCCESS);
183 }
184 /**
185 * @tc.number : SUB_Driver_Codec_GetParameter_0400
186 * @tc.name   : testGetParameter003
187 * @tc.desc   : When index=OMX_IndexParamVideoFastUpdate, Structure inParamStruct->portIndex=INPUT_INDEX,
188                 inParamStruct->codecColorIndex=0, sending command failed.
189 */
HWTEST_F(CodecComponentTestAdditional, testGetParameter003, Function | MediumTest | Level2)190 HWTEST_F(CodecComponentTestAdditional, testGetParameter003, Function | MediumTest | Level2)
191 {
192     ASSERT_TRUE(g_component != nullptr);
193     CodecVideoPortFormatParam param;
194     InitParam(param);
195     param.portIndex = INPUT_INDEX;
196     param.codecColorIndex = 0;
197     std::vector<int8_t> inParam;
198     ObjectToVector(param, inParam);
199     std::vector<int8_t> outParam;
200     auto ret = g_component->GetParameter(OMX_IndexParamVideoFastUpdate, inParam, outParam);
201     ASSERT_NE(ret, HDF_SUCCESS);
202 }
203 /**
204 * @tc.number : SUB_Driver_Codec_GetParameter_0500
205 * @tc.name   : testGetParameter004
206 * @tc.desc   : When index = OMX_IndexParamVideoBitrate, structure inParamStruct->portIndex = INPUT_INDEX,
207                 inParamStruct->codecColorIndex = 0,Failed to send command.
208 */
HWTEST_F(CodecComponentTestAdditional, testGetParameter004, Function | MediumTest | Level2)209 HWTEST_F(CodecComponentTestAdditional, testGetParameter004, Function | MediumTest | Level2)
210 {
211     ASSERT_TRUE(g_component != nullptr);
212     CodecVideoPortFormatParam param;
213     InitParam(param);
214     param.portIndex = INPUT_INDEX;
215     param.codecColorIndex = 0;
216     std::vector<int8_t> inParam;
217     ObjectToVector(param, inParam);
218     std::vector<int8_t> outParam;
219     auto ret = g_component->GetParameter(OMX_IndexParamVideoBitrate, inParam, outParam);
220     ASSERT_NE(ret, HDF_SUCCESS);
221 }
222 /**
223 * @tc.number : SUB_Driver_Codec_GetParameter_0600
224 * @tc.name   : testGetParameter005
225 * @tc.desc   : When the index = OMX_IndexCodecVideoPortFormat, structure inParamStruct->portIndex = INPUT_INDEX,
226                 inParamStruct->codecColorIndex = 0,Send command successful.
227 */
HWTEST_F(CodecComponentTestAdditional, testGetParameter005, Function | MediumTest | Level1)228 HWTEST_F(CodecComponentTestAdditional, testGetParameter005, Function | MediumTest | Level1)
229 {
230     ASSERT_TRUE(g_component != nullptr);
231     CodecVideoPortFormatParam param;
232     InitParam(param);
233     std::vector<int8_t> inParam;
234     ObjectToVector(param, inParam);
235     std::vector<int8_t> outParam;
236     auto ret = g_component->GetParameter(OMX_IndexParamVideoPortFormat, inParam, outParam);
237     ASSERT_EQ(ret, HDF_SUCCESS);
238 }
239 /**
240 * @tc.number : SUB_Driver_Codec_GetParameter_0700
241 * @tc.name   : testGetParameter006
242 * @tc.desc   : When the index = OMX_IndexCodecVideoPortFormat, structure inParamStruct->portIndex = OUTPUT_INDEX,
243                 not initialize,  send the command failed
244 */
HWTEST_F(CodecComponentTestAdditional, testGetParameter006, Function | MediumTest | Level2)245 HWTEST_F(CodecComponentTestAdditional, testGetParameter006, Function | MediumTest | Level2)
246 {
247     ASSERT_TRUE(g_component != nullptr);
248     CodecVideoPortFormatParam param;
249     param.portIndex = OUTPUT_INDEX;
250     std::vector<int8_t> inParam;
251     ObjectToVector(param, inParam);
252     std::vector<int8_t> outParam;
253     auto ret = g_component->GetParameter(OMX_IndexParamVideoPortFormat, inParam, outParam);
254     ASSERT_NE(ret, HDF_SUCCESS);
255 }
256 /**
257 * @tc.number : SUB_Driver_Codec_GetParameter_0800
258 * @tc.name   : testGetParameter007
259 * @tc.desc   : When the index = OMX_IndexParamVideoIntraRefresh,structure inParamStruct not initialize,
260                 send the command failed
261 */
HWTEST_F(CodecComponentTestAdditional, testGetParameter007, Function | MediumTest | Level2)262 HWTEST_F(CodecComponentTestAdditional, testGetParameter007, Function | MediumTest | Level2)
263 {
264     int32_t ret;
265     std::vector<int8_t> inParam;
266     std::vector<int8_t> outParam;
267     ret = g_component->GetParameter(OMX_IndexParamVideoIntraRefresh, inParam, outParam);
268     ASSERT_NE(ret, HDF_SUCCESS);
269 }
270 /**
271 * @tc.number : SUB_Driver_Codec_GetParameter_0900
272 * @tc.name   : testGetParameter008
273 * @tc.desc   : When the index = OMX_IndexCodecVideoPortFormat, structure inParamStruct->portIndex = OUTPUT_INDEX,
274                 send the command succeeds
275 */
HWTEST_F(CodecComponentTestAdditional, testGetParameter008, Function | MediumTest | Level1)276 HWTEST_F(CodecComponentTestAdditional, testGetParameter008, Function | MediumTest | Level1)
277 {
278     ASSERT_TRUE(g_component != nullptr);
279     CodecVideoPortFormatParam param;
280     InitParam(param);
281     param.portIndex = OUTPUT_INDEX;
282     std::vector<int8_t> inParam;
283     ObjectToVector(param, inParam);
284     std::vector<int8_t> outParam;
285     auto ret = g_component->GetParameter(OMX_IndexParamVideoPortFormat, inParam, outParam);
286     ASSERT_EQ(ret, HDF_SUCCESS);
287 }
288 /**
289 * @tc.number : SUB_Driver_Codec_SetParameter_0200
290 * @tc.name   : testSetParameter001
291 * @tc.desc   : When the index = OMX_IndexParamVideoPortFormat paramStruct. PortIndex = INPUT_INDEX,
292                 send the command succeeds
293 */
HWTEST_F(CodecComponentTestAdditional, testSetParameter001, Function | MediumTest | Level1)294 HWTEST_F(CodecComponentTestAdditional, testSetParameter001, Function | MediumTest | Level1)
295 {
296     ASSERT_TRUE(g_component != nullptr);
297     int32_t ret;
298     CodecVideoPortFormatParam param;
299     InitParam(param);
300     param.portIndex = INPUT_INDEX;
301     std::vector<int8_t> paramVec;
302     ObjectToVector(param, paramVec);
303     ret = g_component->SetParameter(OMX_IndexParamVideoPortFormat, paramVec);
304     ASSERT_EQ(ret, HDF_SUCCESS);
305 }
306 /**
307 * @tc.number : SUB_Driver_Codec_SetParameter_0300
308 * @tc.name   : testSetParameter002
309 * @tc.desc   : When the index = OMX_IndexParamVideoPortFormat paramStruct. Size = 0,
310                 send the command failure.
311 */
HWTEST_F(CodecComponentTestAdditional, testSetParameter002, Function | MediumTest | Level2)312 HWTEST_F(CodecComponentTestAdditional, testSetParameter002, Function | MediumTest | Level2)
313 {
314     ASSERT_TRUE(g_component != nullptr);
315     int32_t ret;
316     CodecVideoPortFormatParam param;
317     InitParam(param);
318     param.portIndex = INPUT_INDEX;
319     param.size = 0;
320     std::vector<int8_t> paramVec;
321     ObjectToVector(param, paramVec);
322     ret = g_component->SetParameter(OMX_IndexParamVideoPortFormat, paramVec);
323     ASSERT_NE(ret, HDF_SUCCESS);
324 }
325 /**
326  * @tc.number : SUB_Driver_Codec_SetParameter_0400
327  * @tc.name   : testSetParameter003
328  * @tc.desc   : When paramStruct. CodecColorIndex = 0, send the command succeeds.
329  */
HWTEST_F(CodecComponentTestAdditional, testSetParameter003, Function | MediumTest | Level1)330 HWTEST_F(CodecComponentTestAdditional, testSetParameter003, Function | MediumTest | Level1)
331 {
332     ASSERT_TRUE(g_component != nullptr);
333     int32_t ret;
334     CodecVideoPortFormatParam param;
335     InitParam(param);
336     param.portIndex = INPUT_INDEX;
337     param.codecColorIndex = 0;
338     std::vector<int8_t> paramVec;
339     ObjectToVector(param, paramVec);
340     ret = g_component->SetParameter(OMX_IndexParamVideoPortFormat, paramVec);
341     ASSERT_EQ(ret, HDF_SUCCESS);
342 }
343 /**
344  * @tc.number : SUB_Driver_Codec_SetParameter_0500
345  * @tc.name   : testSetParameter004
346  * @tc.desc   : When paramStruct->CodecColorFormat = 20, send the command succeeds.
347  */
HWTEST_F(CodecComponentTestAdditional, testSetParameter004, Function | MediumTest | Level1)348 HWTEST_F(CodecComponentTestAdditional, testSetParameter004, Function | MediumTest | Level1)
349 {
350     ASSERT_TRUE(g_component != nullptr);
351     int32_t ret;
352     CodecVideoPortFormatParam param;
353     InitParam(param);
354     param.portIndex = INPUT_INDEX;
355     param.codecColorFormat = 20;
356     std::vector<int8_t> paramVec;
357     ObjectToVector(param, paramVec);
358     ret = g_component->SetParameter(OMX_IndexParamVideoPortFormat, paramVec);
359     ASSERT_EQ(ret, HDF_SUCCESS);
360 }
361 /**
362 * @tc.number : SUB_Driver_Codec_SetParameter_0600
363 * @tc.name   : testSetParameter005
364 * @tc.desc   : When the index = OMX_IndexParamVideoPortFormat, paramStruct->CodecColorFormat = 0,
365                 send the command succeeds.
366 */
HWTEST_F(CodecComponentTestAdditional, testSetParameter005, Function | MediumTest | Level1)367 HWTEST_F(CodecComponentTestAdditional, testSetParameter005, Function | MediumTest | Level1)
368 {
369     ASSERT_TRUE(g_component != nullptr);
370     int32_t ret;
371     CodecVideoPortFormatParam param;
372     InitParam(param);
373     param.portIndex = INPUT_INDEX;
374     param.codecColorFormat = 0;
375     std::vector<int8_t> paramVec;
376     ObjectToVector(param, paramVec);
377     ret = g_component->SetParameter(OMX_IndexParamVideoPortFormat, paramVec);
378     ASSERT_EQ(ret, HDF_SUCCESS);
379 }
380 /**
381  * @tc.number : SUB_Driver_Codec_SetParameter_0700
382  * @tc.name   : testSetParameter006
383  * @tc.desc   : When the index = OMX_IndexParamVideoQuantization, send the command failed.
384  */
HWTEST_F(CodecComponentTestAdditional, testSetParameter006, Function | MediumTest | Level2)385 HWTEST_F(CodecComponentTestAdditional, testSetParameter006, Function | MediumTest | Level2)
386 {
387     ASSERT_TRUE(g_component != nullptr);
388     int32_t ret;
389     CodecVideoPortFormatParam param;
390     InitParam(param);
391     param.portIndex = INPUT_INDEX;
392     std::vector<int8_t> paramVec;
393     ObjectToVector(param, paramVec);
394     ret = g_component->SetParameter(OMX_IndexParamVideoQuantization, paramVec);
395     ASSERT_NE(ret, HDF_SUCCESS);
396 }
397 /**
398 * @tc.number : SUB_Driver_Codec_GetConfig_0200
399 * @tc.name   : testGetConfig001
400 * @tc.desc   : If index = OMX_IndexConfigVideoBitrate and structure inParamStruct->portIndex = OUTPUT_INDEX,
401                 the command is failed sent
402 */
HWTEST_F(CodecComponentTestAdditional, testGetConfig001, Function | MediumTest | Level1)403 HWTEST_F(CodecComponentTestAdditional, testGetConfig001, Function | MediumTest | Level1)
404 {
405     ASSERT_TRUE(g_component != nullptr);
406     CodecVideoPortFormatParam param;
407     InitParam(param);
408     param.portIndex = OUTPUT_INDEX;
409 
410     std::vector<int8_t> inParam;
411     ObjectToVector(param, inParam);
412     std::vector<int8_t> outParam;
413     auto ret = g_component->GetConfig(OMX_IndexConfigVideoBitrate, inParam, outParam);
414     ASSERT_NE(ret, HDF_SUCCESS);
415 }
416 /**
417 * @tc.number : SUB_Driver_Codec_GetConfig_0300
418 * @tc.name   : testGetConfig002
419 * @tc.desc   : When the index = OMX_IndexParamVideoPortFormat, structure inParamStruct->portIndex = OUTPUT_INDEX,
420                 send the command failed,not initialized.
421 */
HWTEST_F(CodecComponentTestAdditional, testGetConfig002, Function | MediumTest | Level2)422 HWTEST_F(CodecComponentTestAdditional, testGetConfig002, Function | MediumTest | Level2)
423 {
424     ASSERT_TRUE(g_component != nullptr);
425     CodecVideoPortFormatParam param;
426     param.portIndex = OUTPUT_INDEX;
427 
428     std::vector<int8_t> inParam;
429     ObjectToVector(param, inParam);
430     std::vector<int8_t> outParam;
431     auto ret = g_component->GetConfig(OMX_IndexParamVideoPortFormat, inParam, outParam);
432     ASSERT_NE(ret, HDF_SUCCESS);
433 }
434 /**
435 * @tc.number : SUB_Driver_Codec_GetConfig_0400
436 * @tc.name   : testGetConfig003
437 * @tc.desc   : When index=OMX_IndexParamVideoBitrate, structure inParamStruct->portIndex=OUTPUT_INDEX,
438                 sending command failed
439 */
HWTEST_F(CodecComponentTestAdditional, testGetConfig003, Function | MediumTest | Level2)440 HWTEST_F(CodecComponentTestAdditional, testGetConfig003, Function | MediumTest | Level2)
441 {
442     ASSERT_TRUE(g_component != nullptr);
443     CodecVideoPortFormatParam param;
444     InitParam(param);
445     param.portIndex = OUTPUT_INDEX;
446 
447     std::vector<int8_t> inParam;
448     ObjectToVector(param, inParam);
449     std::vector<int8_t> outParam;
450     auto ret = g_component->GetConfig(OMX_IndexParamVideoBitrate, inParam, outParam);
451     ASSERT_NE(ret, HDF_SUCCESS);
452 }
453 /**
454 * @tc.number : SUB_Driver_Codec_GetConfig_0500
455 * @tc.name   : testGetConfig004
456 * @tc.desc   : When index=OMX_IndexParamVideoFastUpdate, Structure inParamStruct->portIndex=OUTPUT_INDEX,
457                 sending command failed
458 */
HWTEST_F(CodecComponentTestAdditional, testGetConfig004, Function | MediumTest | Level2)459 HWTEST_F(CodecComponentTestAdditional, testGetConfig004, Function | MediumTest | Level2)
460 {
461     ASSERT_TRUE(g_component != nullptr);
462     CodecVideoPortFormatParam param;
463     InitParam(param);
464     param.portIndex = OUTPUT_INDEX;
465 
466     std::vector<int8_t> inParam;
467     ObjectToVector(param, inParam);
468     std::vector<int8_t> outParam;
469     auto ret = g_component->GetConfig(OMX_IndexParamVideoFastUpdate, inParam, outParam);
470     ASSERT_NE(ret, HDF_SUCCESS);
471 }
472 /**
473 * @tc.number : SUB_Driver_Codec_GetConfig_0600
474 * @tc.name   : testGetConfig005
475 * @tc.desc   : When index=OMX_IndexParamVideoQuantization, structure inParamStruct->portIndex=OUTPUT_INDEX,
476                 sending command failed
477 */
HWTEST_F(CodecComponentTestAdditional, testGetConfig005, Function | MediumTest | Level2)478 HWTEST_F(CodecComponentTestAdditional, testGetConfig005, Function | MediumTest | Level2)
479 {
480     ASSERT_TRUE(g_component != nullptr);
481     CodecVideoPortFormatParam param;
482     InitParam(param);
483     param.portIndex = OUTPUT_INDEX;
484 
485     std::vector<int8_t> inParam;
486     ObjectToVector(param, inParam);
487     std::vector<int8_t> outParam;
488     auto ret = g_component->GetConfig(OMX_IndexParamVideoQuantization, inParam, outParam);
489     ASSERT_NE(ret, HDF_SUCCESS);
490 }
491 /**
492 * @tc.number : SUB_Driver_Codec_SetConfig_0300
493 * @tc.name   : testSetConfig002
494 * @tc.desc   : When index=OMX_IndexConfigVideoBitrate, structure inParamStruct->portIndex=INPUT_INDEX,
495                 sending command failed
496 */
HWTEST_F(CodecComponentTestAdditional, testSetConfig002, Function | MediumTest | Level2)497 HWTEST_F(CodecComponentTestAdditional, testSetConfig002, Function | MediumTest | Level2)
498 {
499     ASSERT_TRUE(g_component != nullptr);
500     CodecVideoPortFormatParam param;
501     InitParam(param);
502     param.portIndex = INPUT_INDEX;
503 
504     std::vector<int8_t> inParam;
505     ObjectToVector(param, inParam);
506     auto ret = g_component->SetConfig(OMX_IndexConfigVideoBitrate, inParam);
507     ASSERT_NE(ret, HDF_SUCCESS);
508 }
509 /**
510 * @tc.number : SUB_Driver_Codec_SetConfig_0400
511 * @tc.name   : testSetConfig003
512 * @tc.desc   : When index=OMX_IndexParamVideoQuantization, structure inParamStruct->portIndex=OUTPUT_INDEX,
513                 sending command failed
514 */
HWTEST_F(CodecComponentTestAdditional, testSetConfig003, Function | MediumTest | Level2)515 HWTEST_F(CodecComponentTestAdditional, testSetConfig003, Function | MediumTest | Level2)
516 {
517     ASSERT_TRUE(g_component != nullptr);
518     CodecVideoPortFormatParam param;
519     InitParam(param);
520     param.portIndex = OUTPUT_INDEX;
521 
522     std::vector<int8_t> inParam;
523     ObjectToVector(param, inParam);
524     auto ret = g_component->SetConfig(OMX_IndexParamVideoQuantization, inParam);
525     ASSERT_NE(ret, HDF_SUCCESS);
526 }
527 /**
528 * @tc.number : SUB_Driver_Codec_SetConfig_0500
529 * @tc.name   : testSetConfig004
530 * @tc.desc   : When index=OMX_IndexVideoStartUnused, Structure inParamStruct->portIndex=OUTPUT_INDEX,
531                 sending command failed
532 */
HWTEST_F(CodecComponentTestAdditional, testSetConfig004, Function | MediumTest | Level2)533 HWTEST_F(CodecComponentTestAdditional, testSetConfig004, Function | MediumTest | Level2)
534 {
535     ASSERT_TRUE(g_component != nullptr);
536     CodecVideoPortFormatParam param;
537     InitParam(param);
538     param.portIndex = OUTPUT_INDEX;
539 
540     std::vector<int8_t> inParam;
541     ObjectToVector(param, inParam);
542     auto ret = g_component->SetConfig(OMX_IndexVideoStartUnused, inParam);
543     ASSERT_NE(ret, HDF_SUCCESS);
544 }
545 /**
546 * @tc.number : SUB_Driver_Codec_SetConfig_0600
547 * @tc.name   : testSetConfig005
548 * @tc.desc   : When index=OMX_IndexCodecVideoPortFormat, Structure inParamStruct->portIndex=OUTPUT_INDEX,
549                not initialized,sending command failed.
550 */
HWTEST_F(CodecComponentTestAdditional, testSetConfig005, Function | MediumTest | Level2)551 HWTEST_F(CodecComponentTestAdditional, testSetConfig005, Function | MediumTest | Level2)
552 {
553     ASSERT_TRUE(g_component != nullptr);
554     CodecVideoPortFormatParam param;
555     param.portIndex = OUTPUT_INDEX;
556 
557     std::vector<int8_t> inParam;
558     ObjectToVector(param, inParam);
559     auto ret = g_component->SetConfig(OMX_IndexParamVideoPortFormat, inParam);
560     ASSERT_NE(ret, HDF_SUCCESS);
561 }
562 /**
563 * @tc.number : SUB_Driver_Codec_SetConfig_0700
564 * @tc.name   : testSetConfig006
565 * @tc.desc   : When index=OMX_IndexParamVideoFastUpdate, Structure inParamStruct->portIndex=OUTPUT_INDEX,
566                 sending command failed
567 */
HWTEST_F(CodecComponentTestAdditional, testSetConfig006, Function | MediumTest | Level2)568 HWTEST_F(CodecComponentTestAdditional, testSetConfig006, Function | MediumTest | Level2)
569 {
570     ASSERT_TRUE(g_component != nullptr);
571     CodecVideoPortFormatParam param;
572     InitParam(param);
573     param.portIndex = OUTPUT_INDEX;
574 
575     std::vector<int8_t> inParam;
576     ObjectToVector(param, inParam);
577     auto ret = g_component->SetConfig(OMX_IndexParamVideoFastUpdate, inParam);
578     ASSERT_NE(ret, HDF_SUCCESS);
579 }
580 /**
581 * @tc.number : SUB_Driver_Codec_SetConfig_0800
582 * @tc.name   : testSetConfig007
583 * @tc.desc   : When index=OMX_IndexConfigVideoBitrate, structure inParamStruct->codecColorIndex=0,
584                 command sent failed.
585 */
HWTEST_F(CodecComponentTestAdditional, testSetConfig007, Function | MediumTest | Level1)586 HWTEST_F(CodecComponentTestAdditional, testSetConfig007, Function | MediumTest | Level1)
587 {
588     ASSERT_TRUE(g_component != nullptr);
589     CodecVideoPortFormatParam param;
590     InitParam(param);
591     param.portIndex = OUTPUT_INDEX;
592     param.codecColorIndex = 0;
593 
594     std::vector<int8_t> inParam;
595     ObjectToVector(param, inParam);
596     auto ret = g_component->SetConfig(OMX_IndexConfigVideoBitrate, inParam);
597     ASSERT_NE(ret, HDF_SUCCESS);
598 }
599 /**
600  * @tc.number : SUB_Driver_Codec_SetConfig_0900
601  * @tc.name   : testSetConfig008
602  * @tc.desc   : When index=OMX_IndexConfigVideoBitrate, structure inParamStruct->size=0, command sent failed.
603  */
HWTEST_F(CodecComponentTestAdditional, testSetConfig008, Function | MediumTest | Level1)604 HWTEST_F(CodecComponentTestAdditional, testSetConfig008, Function | MediumTest | Level1)
605 {
606     ASSERT_TRUE(g_component != nullptr);
607     CodecVideoPortFormatParam param;
608     InitParam(param);
609     param.portIndex = OUTPUT_INDEX;
610     param.size = 0;
611 
612     std::vector<int8_t> inParam;
613     ObjectToVector(param, inParam);
614     auto ret = g_component->SetConfig(OMX_IndexConfigVideoBitrate, inParam);
615     ASSERT_NE(ret, HDF_SUCCESS);
616 }
617 /**
618  * @tc.number : SUB_Driver_Codec_SetConfig_1000
619  * @tc.name   : testSetConfig009
620  * @tc.desc   : When index=OMX_IndexConfigVideoBitrate, structure inParamStruct->codecColorFormat=0,
621  *              command sent failed.
622  */
HWTEST_F(CodecComponentTestAdditional, testSetConfig009, Function | MediumTest | Level1)623 HWTEST_F(CodecComponentTestAdditional, testSetConfig009, Function | MediumTest | Level1)
624 {
625     ASSERT_TRUE(g_component != nullptr);
626     CodecVideoPortFormatParam param;
627     InitParam(param);
628     param.portIndex = OUTPUT_INDEX;
629     param.codecColorFormat = 0;
630 
631     std::vector<int8_t> inParam;
632     ObjectToVector(param, inParam);
633     auto ret = g_component->SetConfig(OMX_IndexConfigVideoBitrate, inParam);
634     ASSERT_NE(ret, HDF_SUCCESS);
635 }
636 
637 #ifdef SUPPORT_OMX
638 /**
639  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_0200
640  * @tc.name   : testGetExtensionIndex001
641  * @tc.desc   : When the paramName is "OMX.Topaz.index.param.extended_video" and the indexType = 0,
642  *              sending the command is successful.
643  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex001, Function | MediumTest | Level1)644 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex001, Function | MediumTest | Level1)
645 {
646     ASSERT_TRUE(g_component != nullptr);
647     uint32_t indexType = 0;
648     auto ret = g_component->GetExtensionIndex("OMX.Topaz.index.param.extended_video", indexType);
649     ASSERT_EQ(ret, HDF_SUCCESS);
650 }
651 /**
652  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_0300
653  * @tc.name   : testGetExtensionIndex002
654  * @tc.desc   : Sending command failed when paramName is "" and indexType = 0.
655  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex002, Function | MediumTest | Level2)656 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex002, Function | MediumTest | Level2)
657 {
658     ASSERT_TRUE(g_component != nullptr);
659     uint32_t indexType = 0;
660     auto ret = g_component->GetExtensionIndex("", indexType);
661     ASSERT_NE(ret, HDF_SUCCESS);
662 }
663 /**
664  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_0400
665  * @tc.name   : testGetExtensionIndex003
666  * @tc.desc   : When the paramName is "OMX.Topaz.index.param.extended_video" and the
667  * indexType = 0 Verify full width letters and symbols
668  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex003, Function | MediumTest | Level2)669 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex003, Function | MediumTest | Level2)
670 {
671     ASSERT_TRUE(g_component != nullptr);
672     uint32_t indexType = 0;
673     auto ret = g_component->GetExtensionIndex(
674         "OMX.Topaz.index.param.extended_video", indexType);
675     ASSERT_NE(ret, HDF_SUCCESS);
676 }
677 /**
678  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_0500
679  * @tc.name   : testGetExtensionIndex004
680  * @tc.desc   : When the paramName is "!@#$%^&**" and the indexType = 0 Verify half width symbols
681  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex004, Function | MediumTest | Level2)682 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex004, Function | MediumTest | Level2)
683 {
684     ASSERT_TRUE(g_component != nullptr);
685     uint32_t indexType = 0;
686     auto ret = g_component->GetExtensionIndex("!@#$%^&**", indexType);
687     ASSERT_NE(ret, HDF_SUCCESS);
688 }
689 /**
690  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_0600
691  * @tc.name   : testGetExtensionIndex005
692  * @tc.desc   : When the paramName is "!@#$%^&**" and the indexType = 0 Verify full width symbols
693  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex005, Function | MediumTest | Level2)694 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex005, Function | MediumTest | Level2)
695 {
696     ASSERT_TRUE(g_component != nullptr);
697     uint32_t indexType = 0;
698     auto ret = g_component->GetExtensionIndex("!@#$%^&**", indexType);
699     ASSERT_NE(ret, HDF_SUCCESS);
700 }
701 /**
702  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_0700
703  * @tc.name   : testGetExtensionIndex006
704  * @tc.desc   : When the paramName is "12345" and the indexType = 0 Verify Half width Numbers
705  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex006, Function | MediumTest | Level2)706 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex006, Function | MediumTest | Level2)
707 {
708     ASSERT_TRUE(g_component != nullptr);
709     uint32_t indexType = 0;
710     auto ret = g_component->GetExtensionIndex("12345", indexType);
711     ASSERT_NE(ret, HDF_SUCCESS);
712 }
713 /**
714  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_0800
715  * @tc.name   : testGetExtensionIndex007
716  * @tc.desc   : When the paramName is "12345MX.Topaz" and the indexType = 0 Verify half width numbers,
717  * half width letters, and half width symbols
718  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex007, Function | MediumTest | Level2)719 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex007, Function | MediumTest | Level2)
720 {
721     ASSERT_TRUE(g_component != nullptr);
722     uint32_t indexType = 0;
723     auto ret = g_component->GetExtensionIndex("12345MX.Topaz", indexType);
724     ASSERT_NE(ret, HDF_SUCCESS);
725 }
726 /**
727  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_0900
728  * @tc.name   : testGetExtensionIndex008
729  * @tc.desc   : When the paramName is "!@#$%^&**OMX.Topaz" and the indexType = 0 Verify half width symbols and
730  * half width letters
731  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex008, Function | MediumTest | Level2)732 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex008, Function | MediumTest | Level2)
733 {
734     ASSERT_TRUE(g_component != nullptr);
735     uint32_t indexType = 0;
736     auto ret = g_component->GetExtensionIndex("!@#$%^&**OMX.Topaz", indexType);
737     ASSERT_NE(ret, HDF_SUCCESS);
738 }
739 /**
740  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_1000
741  * @tc.name   : testGetExtensionIndex009
742  * @tc.desc   : When the paramName is "12345" and the indexType = 0 Verify full angle digits
743  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex009, Function | MediumTest | Level2)744 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex009, Function | MediumTest | Level2)
745 {
746     ASSERT_TRUE(g_component != nullptr);
747     uint32_t indexType = 0;
748     auto ret = g_component->GetExtensionIndex("12345", indexType);
749     ASSERT_NE(ret, HDF_SUCCESS);
750 }
751 /**
752  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_1100
753  * @tc.name   : testGetExtensionIndex010
754  * @tc.desc   : When the paramName is "12345OMX.Topaz" and the indexType = 0 Verify full width digits,
755  * full width letters, and full width symbols
756  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex010, Function | MediumTest | Level2)757 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex010, Function | MediumTest | Level2)
758 {
759     ASSERT_TRUE(g_component != nullptr);
760     uint32_t indexType = 0;
761     auto ret = g_component->GetExtensionIndex("12345OMX.Topaz", indexType);
762     ASSERT_NE(ret, HDF_SUCCESS);
763 }
764 /**
765  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_1200
766  * @tc.name   : testGetExtensionIndex011
767  * @tc.desc   : When the paramName is "12345!@#$%" and the indexType = 0 Verify full width digits and
768  * half width symbols
769  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex011, Function | MediumTest | Level2)770 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex011, Function | MediumTest | Level2)
771 {
772     ASSERT_TRUE(g_component != nullptr);
773     uint32_t indexType = 0;
774     auto ret = g_component->GetExtensionIndex("12345O!@#$%", indexType);
775     ASSERT_NE(ret, HDF_SUCCESS);
776 }
777 /**
778  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_1300
779  * @tc.name   : testGetExtensionIndex012
780  * @tc.desc   : When the paramName is "12345!@#$" and the indexType = 0 Verify full width digits, full width
781  * symbols
782  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex012, Function | MediumTest | Level2)783 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex012, Function | MediumTest | Level2)
784 {
785     ASSERT_TRUE(g_component != nullptr);
786     uint32_t indexType = 0;
787     auto ret = g_component->GetExtensionIndex("12345!@#$", indexType);
788     ASSERT_NE(ret, HDF_SUCCESS);
789 }
790 /**
791  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_1400
792  * @tc.name   : testGetExtensionIndex013
793  * @tc.desc   : When the paramName is "12345OMX.Topaz" and the indexType = 0 Verify full width numbers,
794  * half width letters, and half width symbols
795  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex013, Function | MediumTest | Level2)796 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex013, Function | MediumTest | Level2)
797 {
798     ASSERT_TRUE(g_component != nullptr);
799     uint32_t indexType = 0;
800     auto ret = g_component->GetExtensionIndex("12345OMX.Topaz", indexType);
801     ASSERT_NE(ret, HDF_SUCCESS);
802 }
803 /**
804  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_1500
805  * @tc.name   : testGetExtensionIndex014
806  * @tc.desc   : When the paramName is "!@#$%OMX.Topaz" and the indexType = 0 Verify full width symbols,
807  * half width letters, and half width symbols
808  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex014, Function | MediumTest | Level2)809 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex014, Function | MediumTest | Level2)
810 {
811     ASSERT_TRUE(g_component != nullptr);
812     uint32_t indexType = 0;
813     auto ret = g_component->GetExtensionIndex("!@#$%OMX.Topaz", indexType);
814     ASSERT_NE(ret, HDF_SUCCESS);
815 }
816 /**
817  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_1600
818  * @tc.name   : testGetExtensionIndex015
819  * @tc.desc   : When the paramName is "!@#$%OMX.Topaz" and the indexType = 0 Verify full width symbols and
820  * letters
821  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex015, Function | MediumTest | Level2)822 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex015, Function | MediumTest | Level2)
823 {
824     ASSERT_TRUE(g_component != nullptr);
825     uint32_t indexType = 0;
826     auto ret = g_component->GetExtensionIndex("!@#$%OMX.Topaz", indexType);
827     ASSERT_NE(ret, HDF_SUCCESS);
828 }
829 /**
830  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_1700
831  * @tc.name   : testGetExtensionIndex016
832  * @tc.desc   : When the paramName is "12345OMX.Topaz" and the indexType = 0 Verify half width numbers,
833  * full width letters, and full width symbols
834  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex016, Function | MediumTest | Level2)835 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex016, Function | MediumTest | Level2)
836 {
837     ASSERT_TRUE(g_component != nullptr);
838     uint32_t indexType = 0;
839     auto ret = g_component->GetExtensionIndex("12345OMX.Topaz", indexType);
840     ASSERT_NE(ret, HDF_SUCCESS);
841 }
842 /**
843  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_1800
844  * @tc.name   : testGetExtensionIndex017
845  * @tc.desc   : When the paramName is "12345!@#$%" and the indexType = 0 Verify half width numbers
846  * and half width symbols
847  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex017, Function | MediumTest | Level2)848 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex017, Function | MediumTest | Level2)
849 {
850     ASSERT_TRUE(g_component != nullptr);
851     uint32_t indexType = 0;
852     auto ret = g_component->GetExtensionIndex("12345!@#$%", indexType);
853     ASSERT_NE(ret, HDF_SUCCESS);
854 }
855 /**
856  * @tc.number : SUB_Driver_Codec_GetExtensionIndex_1900
857  * @tc.name   : testGetExtensionIndex018
858  * @tc.desc   : When the paramName is "12345!@#$%" and the indexType = 0 Verify half width numbers
859  * and full width symbols
860  */
HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex018, Function | MediumTest | Level2)861 HWTEST_F(CodecComponentTestAdditional, testGetExtensionIndex018, Function | MediumTest | Level2)
862 {
863     ASSERT_TRUE(g_component != nullptr);
864     uint32_t indexType = 0;
865     auto ret = g_component->GetExtensionIndex("12345!@#$%", indexType);
866     ASSERT_NE(ret, HDF_SUCCESS);
867 }
868 #endif
869 /**
870  * @tc.number : SUB_Driver_Codec_GetState_0200
871  * @tc.name   : testGetState001
872  * @tc.desc   : When the initial value of CodecStateType is CODEC_STATE_INVALID, does the function modify it.
873  */
HWTEST_F(CodecComponentTestAdditional, testGetState001, Function | MediumTest | Level1)874 HWTEST_F(CodecComponentTestAdditional, testGetState001, Function | MediumTest | Level1)
875 {
876     ASSERT_TRUE(g_component != nullptr);
877     CodecStateType state = CODEC_STATE_INVALID;
878     int32_t ret = g_component->GetState(state);
879     ASSERT_EQ(state, CODEC_STATE_LOADED);
880     ASSERT_EQ(ret, HDF_SUCCESS);
881 }
882 #ifdef SUPPORT_OMX
883 /**
884  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_0200
885  * @tc.name   : testComponentTunnelRequest001
886  * @tc.desc   : When setting the component status to OMX_StateInvalid, input port=OUTPUT_INDEX, tunneledComp=1,
887  *              tunneledPort=1,inTunnelSetup=CODEC_BUFFER_SUPPLY_INPUT, sending command failed.
888  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest001, Function | MediumTest | Level2)889 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest001, Function | MediumTest | Level2)
890 {
891     ASSERT_TRUE(g_component != nullptr);
892     std::vector<int8_t> cmdData;
893     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateInvalid, cmdData);
894     ASSERT_EQ(ret, HDF_SUCCESS);
895     const int32_t tunneledComp = 1;
896     const uint32_t tunneledPort = 1;
897     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
898     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_INPUT;
899 
900     ret = g_component->ComponentTunnelRequest(OUTPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
901     ASSERT_NE(ret, HDF_SUCCESS);
902 }
903 /**
904  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_0300
905  * @tc.name   : testComponentTunnelRequest002
906  * @tc.desc   : When setting the component status to OMX_StateIdle, input port=INPUT_INDEX, tunneledComp=1002,
907  *              tunneledPort=101,inTunnelSetup=CODEC_BUFFER_SUPPLY_INPUT,Sending command failed.
908  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest002, Function | MediumTest | Level2)909 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest002, Function | MediumTest | Level2)
910 {
911     ASSERT_TRUE(g_component != nullptr);
912     std::vector<int8_t> cmdData;
913     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateIdle, cmdData);
914     ASSERT_EQ(ret, HDF_SUCCESS);
915     const int32_t tunneledComp = 1002;
916     const uint32_t tunneledPort = 101;
917     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
918     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_INPUT;
919 
920     ret = g_component->ComponentTunnelRequest(INPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
921     ASSERT_NE(ret, HDF_SUCCESS);
922 }
923 /**
924  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_0400
925  * @tc.name   : testComponentTunnelRequest003
926  * @tc.desc   : When setting the component status to OMX_ tatePause, input port=INPUT_INDEX, tunneledComp=1002,
927  *              tunneledPort=101,inTunnelSetup=CODEC_BUFFER_SUPPLY_OUTPUT, sending command failed.
928  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest003, Function | MediumTest | Level2)929 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest003, Function | MediumTest | Level2)
930 {
931     ASSERT_TRUE(g_component != nullptr);
932     std::vector<int8_t> cmdData;
933     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StatePause, cmdData);
934     ASSERT_EQ(ret, HDF_SUCCESS);
935     const int32_t tunneledComp = 1002;
936     const uint32_t tunneledPort = 101;
937     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
938     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_OUTPUT;
939 
940     ret = g_component->ComponentTunnelRequest(INPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
941     ASSERT_NE(ret, HDF_SUCCESS);
942 }
943 /**
944  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_0500
945  * @tc.name   : testComponentTunnelRequest004
946  * @tc.desc   : When setting the component status to OMX_StateWaitForResources, input port=OUTPUT_INDEX,
947  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_OUTPUT, sending command failed.
948  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest004, Function | MediumTest | Level2)949 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest004, Function | MediumTest | Level2)
950 {
951     ASSERT_TRUE(g_component != nullptr);
952     std::vector<int8_t> cmdData;
953     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateWaitForResources, cmdData);
954     ASSERT_EQ(ret, HDF_SUCCESS);
955     const int32_t tunneledComp = 1002;
956     const uint32_t tunneledPort = 101;
957     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
958     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_OUTPUT;
959 
960     ret = g_component->ComponentTunnelRequest(OUTPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
961     ASSERT_NE(ret, HDF_SUCCESS);
962 }
963 /**
964  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_0600
965  * @tc.name   : testComponentTunnelRequest005
966  * @tc.desc   : When setting the component status to OMX_StateLoaded, input port=OUTPUT_INDEX,
967  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_OUTPUT, sending command failed.
968  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest005, Function | MediumTest | Level2)969 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest005, Function | MediumTest | Level2)
970 {
971     ASSERT_TRUE(g_component != nullptr);
972     std::vector<int8_t> cmdData;
973     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateLoaded, cmdData);
974     ASSERT_EQ(ret, HDF_SUCCESS);
975     const int32_t tunneledComp = 1002;
976     const uint32_t tunneledPort = 101;
977     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
978     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_OUTPUT;
979 
980     ret = g_component->ComponentTunnelRequest(OUTPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
981     ASSERT_NE(ret, HDF_SUCCESS);
982 }
983 /**
984  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_0700
985  * @tc.name   : testComponentTunnelRequest006
986  * @tc.desc   : When setting the component status to OMX_StateExecuting, input port=OUTPUT_INDEX,
987  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_OUTPUT, sending command failed.
988  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest006, Function | MediumTest | Level2)989 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest006, Function | MediumTest | Level2)
990 {
991     ASSERT_TRUE(g_component != nullptr);
992     std::vector<int8_t> cmdData;
993     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateExecuting, cmdData);
994     ASSERT_EQ(ret, HDF_SUCCESS);
995     const int32_t tunneledComp = 1002;
996     const uint32_t tunneledPort = 101;
997     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
998     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_OUTPUT;
999 
1000     ret = g_component->ComponentTunnelRequest(OUTPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1001     ASSERT_NE(ret, HDF_SUCCESS);
1002 }
1003 /**
1004  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_0800
1005  * @tc.name   : testComponentTunnelRequest007
1006  * @tc.desc   : When setting the component status to OMX_StateKhronosExtensions, input port=OUTPUT_INDEX,
1007  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_OUTPUT, sending command failed.
1008  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest007, Function | MediumTest | Level2)1009 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest007, Function | MediumTest | Level2)
1010 {
1011     ASSERT_TRUE(g_component != nullptr);
1012     std::vector<int8_t> cmdData;
1013     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateKhronosExtensions, cmdData);
1014     ASSERT_EQ(ret, HDF_SUCCESS);
1015     const int32_t tunneledComp = 1002;
1016     const uint32_t tunneledPort = 101;
1017     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
1018     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_OUTPUT;
1019 
1020     ret = g_component->ComponentTunnelRequest(OUTPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1021     ASSERT_NE(ret, HDF_SUCCESS);
1022 }
1023 /**
1024  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_0900
1025  * @tc.name   : testComponentTunnelRequest008
1026  * @tc.desc   : When setting the component status to OMX_StateVendorStartUnused, input port=OUTPUT_INDEX,
1027  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_OUTPUT, sending command failed.
1028  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest008, Function | MediumTest | Level2)1029 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest008, Function | MediumTest | Level2)
1030 {
1031     ASSERT_TRUE(g_component != nullptr);
1032     std::vector<int8_t> cmdData;
1033     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateVendorStartUnused, cmdData);
1034     ASSERT_EQ(ret, HDF_SUCCESS);
1035     const int32_t tunneledComp = 1002;
1036     const uint32_t tunneledPort = 101;
1037     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
1038     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_OUTPUT;
1039 
1040     ret = g_component->ComponentTunnelRequest(OUTPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1041     ASSERT_NE(ret, HDF_SUCCESS);
1042 }
1043 /**
1044  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_1000
1045  * @tc.name   : testComponentTunnelRequest009
1046  * @tc.desc   : When setting the component status to OMX_StateMax, input port=OUTPUT_INDEX,
1047  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_OUTPUT, sending command failed.
1048  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest009, Function | MediumTest | Level2)1049 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest009, Function | MediumTest | Level2)
1050 {
1051     ASSERT_TRUE(g_component != nullptr);
1052     std::vector<int8_t> cmdData;
1053     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateMax, cmdData);
1054     ASSERT_EQ(ret, HDF_SUCCESS);
1055     const int32_t tunneledComp = 1002;
1056     const uint32_t tunneledPort = 101;
1057     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
1058     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_OUTPUT;
1059 
1060     ret = g_component->ComponentTunnelRequest(OUTPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1061     ASSERT_NE(ret, HDF_SUCCESS);
1062 }
1063 /**
1064  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_1100
1065  * @tc.name   : testComponentTunnelRequest010
1066  * @tc.desc   : When setting the component status to OMX_StateMax, input port=INPUT_INDEX,
1067  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_UNSPECIFIED, sending command
1068  * failed.
1069  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest010, Function | MediumTest | Level2)1070 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest010, Function | MediumTest | Level2)
1071 {
1072     ASSERT_TRUE(g_component != nullptr);
1073     std::vector<int8_t> cmdData;
1074     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateMax, cmdData);
1075     ASSERT_EQ(ret, HDF_SUCCESS);
1076     const int32_t tunneledComp = 1002;
1077     const uint32_t tunneledPort = 101;
1078     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
1079     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_UNSPECIFIED;
1080 
1081     ret = g_component->ComponentTunnelRequest(INPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1082     ASSERT_NE(ret, HDF_SUCCESS);
1083 }
1084 /**
1085  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_1200
1086  * @tc.name   : testComponentTunnelRequest011
1087  * @tc.desc   : When setting the component status to OMX_StateMax, input port=INPUT_INDEX,
1088  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_KHRONOS_EXTENSIONS, sending
1089  * command failed.
1090  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest011, Function | MediumTest | Level2)1091 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest011, Function | MediumTest | Level2)
1092 {
1093     ASSERT_TRUE(g_component != nullptr);
1094     std::vector<int8_t> cmdData;
1095     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateMax, cmdData);
1096     ASSERT_EQ(ret, HDF_SUCCESS);
1097     const int32_t tunneledComp = 1002;
1098     const uint32_t tunneledPort = 101;
1099     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
1100     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_KHRONOS_EXTENSIONS;
1101 
1102     ret = g_component->ComponentTunnelRequest(INPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1103     ASSERT_NE(ret, HDF_SUCCESS);
1104 }
1105 /**
1106  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_1300
1107  * @tc.name   : testComponentTunnelRequest012
1108  * @tc.desc   : When setting the component status to OMX_StateMax, input port=INPUT_INDEX,
1109  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_VENDOR_START_UNUSED, sending
1110  * command failed.
1111  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest012, Function | MediumTest | Level2)1112 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest012, Function | MediumTest | Level2)
1113 {
1114     ASSERT_TRUE(g_component != nullptr);
1115     std::vector<int8_t> cmdData;
1116     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateMax, cmdData);
1117     ASSERT_EQ(ret, HDF_SUCCESS);
1118     const int32_t tunneledComp = 1002;
1119     const uint32_t tunneledPort = 101;
1120     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
1121     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_VENDOR_START_UNUSED;
1122 
1123     ret = g_component->ComponentTunnelRequest(INPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1124     ASSERT_NE(ret, HDF_SUCCESS);
1125 }
1126 /**
1127  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_1400
1128  * @tc.name   : testComponentTunnelRequest013
1129  * @tc.desc   : When setting the component status to OMX_StateMax, input port=INPUT_INDEX,
1130  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_MAX, sending command failed.
1131  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest013, Function | MediumTest | Level2)1132 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest013, Function | MediumTest | Level2)
1133 {
1134     ASSERT_TRUE(g_component != nullptr);
1135     std::vector<int8_t> cmdData;
1136     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateMax, cmdData);
1137     ASSERT_EQ(ret, HDF_SUCCESS);
1138     const int32_t tunneledComp = 1002;
1139     const uint32_t tunneledPort = 101;
1140     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
1141     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_MAX;
1142 
1143     ret = g_component->ComponentTunnelRequest(INPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1144     ASSERT_NE(ret, HDF_SUCCESS);
1145 }
1146 /**
1147  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_1500
1148  * @tc.name   : testComponentTunnelRequest014
1149  * @tc.desc   : When setting the component status to OMX_StateMax, input port=OUTPUT_INDEX,
1150  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_UNSPECIFIED, sending command
1151  * failed.
1152  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest014, Function | MediumTest | Level2)1153 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest014, Function | MediumTest | Level2)
1154 {
1155     ASSERT_TRUE(g_component != nullptr);
1156     std::vector<int8_t> cmdData;
1157     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateMax, cmdData);
1158     ASSERT_EQ(ret, HDF_SUCCESS);
1159     const int32_t tunneledComp = 1002;
1160     const uint32_t tunneledPort = 101;
1161     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
1162     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_UNSPECIFIED;
1163 
1164     ret = g_component->ComponentTunnelRequest(OUTPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1165     ASSERT_NE(ret, HDF_SUCCESS);
1166 }
1167 /**
1168  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_1600
1169  * @tc.name   : testComponentTunnelRequest015
1170  * @tc.desc   : When setting the component status to OMX_StateMax, input port=OUTPUT_INDEX,
1171  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_KHRONOS_EXTENSIONS, sending
1172  * command failed.
1173  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest015, Function | MediumTest | Level2)1174 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest015, Function | MediumTest | Level2)
1175 {
1176     ASSERT_TRUE(g_component != nullptr);
1177     std::vector<int8_t> cmdData;
1178     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateMax, cmdData);
1179     ASSERT_EQ(ret, HDF_SUCCESS);
1180     const int32_t tunneledComp = 1002;
1181     const uint32_t tunneledPort = 101;
1182     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
1183     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_KHRONOS_EXTENSIONS;
1184 
1185     ret = g_component->ComponentTunnelRequest(OUTPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1186     ASSERT_NE(ret, HDF_SUCCESS);
1187 }
1188 /**
1189  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_1700
1190  * @tc.name   : testComponentTunnelRequest016
1191  * @tc.desc   : When setting the component status to OMX_StateMax, input port=OUTPUT_INDEX,
1192  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_VENDOR_START_UNUSED, sending
1193  * command failed.
1194  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest016, Function | MediumTest | Level2)1195 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest016, Function | MediumTest | Level2)
1196 {
1197     ASSERT_TRUE(g_component != nullptr);
1198     std::vector<int8_t> cmdData;
1199     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateMax, cmdData);
1200     ASSERT_EQ(ret, HDF_SUCCESS);
1201     const int32_t tunneledComp = 1002;
1202     const uint32_t tunneledPort = 101;
1203     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
1204     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_VENDOR_START_UNUSED;
1205 
1206     ret = g_component->ComponentTunnelRequest(OUTPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1207     ASSERT_NE(ret, HDF_SUCCESS);
1208 }
1209 /**
1210  * @tc.number : SUB_Driver_Codec_ComponentTunnelRequest_1800
1211  * @tc.name   : testComponentTunnelRequest017
1212  * @tc.desc   : When setting the component status to OMX_StateMax, input port=OUTPUT_INDEX,
1213  *              tunneledComp=1002,tunneledPort=101, inTunnelSetup=CODEC_BUFFER_SUPPLY_MAX, sending command failed.
1214  */
HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest017, Function | MediumTest | Level2)1215 HWTEST_F(CodecComponentTestAdditional, testComponentTunnelRequest017, Function | MediumTest | Level2)
1216 {
1217     ASSERT_TRUE(g_component != nullptr);
1218     std::vector<int8_t> cmdData;
1219     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateMax, cmdData);
1220     ASSERT_EQ(ret, HDF_SUCCESS);
1221     const int32_t tunneledComp = 1002;
1222     const uint32_t tunneledPort = 101;
1223     OHOS::HDI::Codec::V3_0::CodecTunnelSetupType tunnelSetup;
1224     tunnelSetup.supplier = OHOS::HDI::Codec::V3_0::CODEC_BUFFER_SUPPLY_MAX;
1225 
1226     ret = g_component->ComponentTunnelRequest(OUTPUT_INDEX, tunneledComp, tunneledPort, tunnelSetup, tunnelSetup);
1227     ASSERT_NE(ret, HDF_SUCCESS);
1228 }
1229 #endif
1230 
1231 /**
1232  * @tc.number : SUB_Driver_Codec_UseBuffer_0200
1233  * @tc.name   : testUseBuffer001
1234  * @tc.desc   : When setting the component status to CODEC_State_IDLE, portIndex=INPUT_INDEX,command sent successfully
1235  */
HWTEST_F(CodecComponentTestAdditional, testUseBuffer001, Function | MediumTest | Level1)1236 HWTEST_F(CodecComponentTestAdditional, testUseBuffer001, Function | MediumTest | Level1)
1237 {
1238     ASSERT_TRUE(g_component != nullptr);
1239     std::vector<int8_t> cmdData;
1240     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1241     ASSERT_EQ(ret, HDF_SUCCESS);
1242 
1243     std::shared_ptr<OmxCodecBuffer> omxBuffer = std::make_shared<OmxCodecBuffer>();
1244     InitOmxCodecBuffer(*omxBuffer.get(), CODEC_BUFFER_TYPE_DYNAMIC_HANDLE);
1245 
1246     OmxCodecBuffer outBuffer;
1247     ret = g_component->UseBuffer(INPUT_INDEX, *omxBuffer.get(), outBuffer);
1248     ASSERT_EQ(ret, HDF_SUCCESS);
1249 }
1250 /**
1251  * @tc.number : SUB_Driver_Codec_UseBuffer_0300
1252  * @tc.name   : testUseBuffer002
1253  * @tc.desc   : When setting the component status to CODEC_State_MAX, portIndex=INPUT_INDEX, sending command failed.
1254  */
HWTEST_F(CodecComponentTestAdditional, testUseBuffer002, Function | MediumTest | Level2)1255 HWTEST_F(CodecComponentTestAdditional, testUseBuffer002, Function | MediumTest | Level2)
1256 {
1257     ASSERT_TRUE(g_component != nullptr);
1258     std::vector<int8_t> cmdData;
1259     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_MAX, cmdData);
1260 #ifdef DISPLAY_COMMUNITY
1261     ASSERT_EQ(ret, HDF_SUCCESS);
1262 #else
1263     ASSERT_NE(ret, HDF_SUCCESS);
1264 #endif
1265 
1266     std::shared_ptr<OmxCodecBuffer> omxBuffer = std::make_shared<OmxCodecBuffer>();
1267     InitOmxCodecBuffer(*omxBuffer.get(), CODEC_BUFFER_TYPE_HANDLE);
1268 
1269     OmxCodecBuffer outBuffer;
1270     ret = g_component->UseBuffer(INPUT_INDEX, *omxBuffer.get(), outBuffer);
1271     ASSERT_NE(ret, HDF_SUCCESS);
1272 }
1273 /**
1274  * @tc.number : SUB_Driver_Codec_UseBuffer_0400
1275  * @tc.name   : testUseBuffer003
1276  * @tc.desc   : When setting the component status to CODEC_STATE_INVALID, portIndex=INPUT_INDEX,sending command failed.
1277  */
HWTEST_F(CodecComponentTestAdditional, testUseBuffer003, Function | MediumTest | Level2)1278 HWTEST_F(CodecComponentTestAdditional, testUseBuffer003, Function | MediumTest | Level2)
1279 {
1280     ASSERT_TRUE(g_component != nullptr);
1281     std::vector<int8_t> cmdData;
1282     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_INVALID, cmdData);
1283     ASSERT_EQ(ret, HDF_SUCCESS);
1284 
1285     std::shared_ptr<OmxCodecBuffer> omxBuffer = std::make_shared<OmxCodecBuffer>();
1286     InitOmxCodecBuffer(*omxBuffer.get(), CODEC_BUFFER_TYPE_HANDLE);
1287 
1288     OmxCodecBuffer outBuffer;
1289     ret = g_component->UseBuffer(INPUT_INDEX, *omxBuffer.get(), outBuffer);
1290     ASSERT_NE(ret, HDF_SUCCESS);
1291 }
1292 /**
1293  * @tc.number : SUB_Driver_Codec_UseBuffer_0500
1294  * @tc.name   : testUseBuffer004
1295  * @tc.desc   : setting the component status to CODEC_STATE_LOADED, portIndex=INPUT_INDEX,sending command failed.
1296  */
HWTEST_F(CodecComponentTestAdditional, testUseBuffer004, Function | MediumTest | Level2)1297 HWTEST_F(CodecComponentTestAdditional, testUseBuffer004, Function | MediumTest | Level2)
1298 {
1299     ASSERT_TRUE(g_component != nullptr);
1300     std::vector<int8_t> cmdData;
1301     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_LOADED, cmdData);
1302     ASSERT_EQ(ret, HDF_SUCCESS);
1303 
1304     std::shared_ptr<OmxCodecBuffer> omxBuffer = std::make_shared<OmxCodecBuffer>();
1305     InitOmxCodecBuffer(*omxBuffer.get(), CODEC_BUFFER_TYPE_HANDLE);
1306 
1307     OmxCodecBuffer outBuffer;
1308     ret = g_component->UseBuffer(INPUT_INDEX, *omxBuffer.get(), outBuffer);
1309     ASSERT_NE(ret, HDF_SUCCESS);
1310 }
1311 /**
1312  * @tc.number : SUB_Driver_Codec_UseBuffer_0600
1313  * @tc.name   : testUseBuffer005
1314  * @tc.desc   : setting the component status to CODEC_STATE_EXECUTING, portIndex=INPUT_INDEX,sending command failed.
1315  */
HWTEST_F(CodecComponentTestAdditional, testUseBuffer005, Function | MediumTest | Level2)1316 HWTEST_F(CodecComponentTestAdditional, testUseBuffer005, Function | MediumTest | Level2)
1317 {
1318     ASSERT_TRUE(g_component != nullptr);
1319     std::vector<int8_t> cmdData;
1320     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_EXECUTING, cmdData);
1321     ASSERT_EQ(ret, HDF_SUCCESS);
1322 
1323     std::shared_ptr<OmxCodecBuffer> omxBuffer = std::make_shared<OmxCodecBuffer>();
1324     InitOmxCodecBuffer(*omxBuffer.get(), CODEC_BUFFER_TYPE_HANDLE);
1325 
1326     OmxCodecBuffer outBuffer;
1327     ret = g_component->UseBuffer(INPUT_INDEX, *omxBuffer.get(), outBuffer);
1328     ASSERT_NE(ret, HDF_SUCCESS);
1329 }
1330 /**
1331  * @tc.number : SUB_Driver_Codec_UseBuffer_0700
1332  * @tc.name   : testUseBuffer006
1333  * @tc.desc   : setting the component status to CODEC_STATE_PAUSE, portIndex=INPUT_INDEX,sending command failed.
1334  */
HWTEST_F(CodecComponentTestAdditional, testUseBuffer006, Function | MediumTest | Level2)1335 HWTEST_F(CodecComponentTestAdditional, testUseBuffer006, Function | MediumTest | Level2)
1336 {
1337     ASSERT_TRUE(g_component != nullptr);
1338     std::vector<int8_t> cmdData;
1339     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_PAUSE, cmdData);
1340     ASSERT_EQ(ret, HDF_SUCCESS);
1341 
1342     std::shared_ptr<OmxCodecBuffer> omxBuffer = std::make_shared<OmxCodecBuffer>();
1343     InitOmxCodecBuffer(*omxBuffer.get(), CODEC_BUFFER_TYPE_HANDLE);
1344 
1345     OmxCodecBuffer outBuffer;
1346     ret = g_component->UseBuffer(INPUT_INDEX, *omxBuffer.get(), outBuffer);
1347     ASSERT_NE(ret, HDF_SUCCESS);
1348 }
1349 /**
1350  * @tc.number : SUB_Driver_Codec_UseBuffer_0800
1351  * @tc.name   : testUseBuffer007
1352  * @tc.desc   : setting the component status to CODEC_STATE_VENDOR_START_UNUSED, portIndex=INPUT_INDEX,
1353  *              sending command failed.
1354  */
HWTEST_F(CodecComponentTestAdditional, testUseBuffer007, Function | MediumTest | Level2)1355 HWTEST_F(CodecComponentTestAdditional, testUseBuffer007, Function | MediumTest | Level2)
1356 {
1357     ASSERT_TRUE(g_component != nullptr);
1358     std::vector<int8_t> cmdData;
1359     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_VENDOR_START_UNUSED, cmdData);
1360 #ifdef DISPLAY_COMMUNITY
1361     ASSERT_EQ(ret, HDF_SUCCESS);
1362 #else
1363     ASSERT_NE(ret, HDF_SUCCESS);
1364 #endif
1365 
1366     std::shared_ptr<OmxCodecBuffer> omxBuffer = std::make_shared<OmxCodecBuffer>();
1367     InitOmxCodecBuffer(*omxBuffer.get(), CODEC_BUFFER_TYPE_HANDLE);
1368 
1369     OmxCodecBuffer outBuffer;
1370     ret = g_component->UseBuffer(INPUT_INDEX, *omxBuffer.get(), outBuffer);
1371     ASSERT_NE(ret, HDF_SUCCESS);
1372 }
1373 /**
1374  * @tc.number : SUB_Driver_Codec_UseBuffer_0900
1375  * @tc.name   : testUseBuffer008
1376  * @tc.desc   : setting the component status to CODEC_STATE_WAIT_FOR_RESOURCES, portIndex=INPUT_INDEX,
1377  *              sending command failed.
1378  */
HWTEST_F(CodecComponentTestAdditional, testUseBuffer008, Function | MediumTest | Level2)1379 HWTEST_F(CodecComponentTestAdditional, testUseBuffer008, Function | MediumTest | Level2)
1380 {
1381     ASSERT_TRUE(g_component != nullptr);
1382     std::vector<int8_t> cmdData;
1383     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_WAIT_FOR_RESOURCES, cmdData);
1384     ASSERT_EQ(ret, HDF_SUCCESS);
1385 
1386     std::shared_ptr<OmxCodecBuffer> omxBuffer = std::make_shared<OmxCodecBuffer>();
1387     InitOmxCodecBuffer(*omxBuffer.get(), CODEC_BUFFER_TYPE_HANDLE);
1388 
1389     OmxCodecBuffer outBuffer;
1390     ret = g_component->UseBuffer(INPUT_INDEX, *omxBuffer.get(), outBuffer);
1391     ASSERT_NE(ret, HDF_SUCCESS);
1392 }
1393 /**
1394  * @tc.number : SUB_Driver_Codec_UseBuffer_1000
1395  * @tc.name   : testUseBuffer009
1396  * @tc.desc   : setting the component status to CODEC_STATE_IDLE, portIndex=OUTPUT_INDEX,sending command Success.
1397  */
HWTEST_F(CodecComponentTestAdditional, testUseBuffer009, Function | MediumTest | Level1)1398 HWTEST_F(CodecComponentTestAdditional, testUseBuffer009, Function | MediumTest | Level1)
1399 {
1400     ASSERT_TRUE(g_component != nullptr);
1401     std::vector<int8_t> cmdData;
1402     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1403     ASSERT_EQ(ret, HDF_SUCCESS);
1404 
1405     std::shared_ptr<OmxCodecBuffer> omxBuffer = std::make_shared<OmxCodecBuffer>();
1406     InitOmxCodecBuffer(*omxBuffer.get(), CODEC_BUFFER_TYPE_DYNAMIC_HANDLE);
1407 
1408     OmxCodecBuffer outBuffer;
1409     ret = g_component->UseBuffer(OUTPUT_INDEX, *omxBuffer.get(), outBuffer);
1410     ASSERT_EQ(ret, HDF_SUCCESS);
1411 }
1412 /**
1413  * @tc.number : SUB_Driver_Codec_AllocateBuffer_0200
1414  * @tc.name   : testAllocateBuffer001
1415  * @tc.desc   : Set component status to CODEC_State_IDLE, portIndex=INPUT_INDEX,command was successfully sent.
1416  */
HWTEST_F(CodecComponentTestAdditional, testAllocateBuffer001, Function | MediumTest | Level1)1417 HWTEST_F(CodecComponentTestAdditional, testAllocateBuffer001, Function | MediumTest | Level1)
1418 {
1419     ASSERT_TRUE(g_component != nullptr);
1420     std::vector<int8_t> cmdData;
1421     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1422     ASSERT_EQ(err, HDF_SUCCESS);
1423 
1424     struct OmxCodecBuffer allocBuffer;
1425     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1426     struct OmxCodecBuffer outBuffer;
1427     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1428     ASSERT_EQ(err, HDF_SUCCESS);
1429     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1430     ASSERT_EQ(err, HDF_SUCCESS);
1431 }
1432 /**
1433  * @tc.number : SUB_Driver_Codec_AllocateBuffer_0300
1434  * @tc.name   : testAllocateBuffer002
1435  * @tc.desc   : Set component status to CODEC_State_IDLE, portIndex=INPUT_INDEX,
1436  *              The structure OmxCodecBuffer->bufferId=0,command was successfully sent.
1437  */
HWTEST_F(CodecComponentTestAdditional, testAllocateBuffer002, Function | MediumTest | Level1)1438 HWTEST_F(CodecComponentTestAdditional, testAllocateBuffer002, Function | MediumTest | Level1)
1439 {
1440     ASSERT_TRUE(g_component != nullptr);
1441     std::vector<int8_t> cmdData;
1442     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1443     ASSERT_EQ(err, HDF_SUCCESS);
1444 
1445     struct OmxCodecBuffer allocBuffer;
1446     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1447     allocBuffer.bufferId = 0;
1448     struct OmxCodecBuffer outBuffer;
1449     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1450     ASSERT_EQ(err, HDF_SUCCESS);
1451     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1452     ASSERT_EQ(err, HDF_SUCCESS);
1453 }
1454 /**
1455  * @tc.number : SUB_Driver_Codec_AllocateBuffer_0400
1456  * @tc.name   : testAllocateBuffer003
1457  * @tc.desc   : Set component status to CODEC_STATE_LOADED, portIndex=INPUT_INDEX,command was successfully sent.
1458  */
HWTEST_F(CodecComponentTestAdditional, testAllocateBuffer003, Function | MediumTest | Level1)1459 HWTEST_F(CodecComponentTestAdditional, testAllocateBuffer003, Function | MediumTest | Level1)
1460 {
1461     ASSERT_TRUE(g_component != nullptr);
1462     std::vector<int8_t> cmdData;
1463     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_LOADED, cmdData);
1464     ASSERT_EQ(err, HDF_SUCCESS);
1465 
1466     struct OmxCodecBuffer allocBuffer;
1467     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1468     struct OmxCodecBuffer outBuffer;
1469     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1470 #ifdef DISPLAY_COMMUNITY
1471     ASSERT_EQ(err, HDF_SUCCESS);
1472 #else
1473     ASSERT_NE(err, HDF_SUCCESS);
1474 #endif
1475     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1476 #ifdef DISPLAY_COMMUNITY
1477     ASSERT_EQ(err, HDF_SUCCESS);
1478 #else
1479     ASSERT_NE(err, HDF_SUCCESS);
1480 #endif
1481 }
1482 /**
1483  * @tc.number : SUB_Driver_Codec_AllocateBuffer_0500
1484  * @tc.name   : testAllocateBuffer004
1485  * @tc.desc   : Set component status to CODEC_STATE_IDLE, portIndex=OUTPUT_INDEX,command was successfully sent.
1486  */
HWTEST_F(CodecComponentTestAdditional, testAllocateBuffer004, Function | MediumTest | Level1)1487 HWTEST_F(CodecComponentTestAdditional, testAllocateBuffer004, Function | MediumTest | Level1)
1488 {
1489     ASSERT_TRUE(g_component != nullptr);
1490     std::vector<int8_t> cmdData;
1491     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1492     ASSERT_EQ(err, HDF_SUCCESS);
1493 
1494     struct OmxCodecBuffer allocBuffer;
1495     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1496     struct OmxCodecBuffer outBuffer;
1497     err = g_component->AllocateBuffer(OUTPUT_INDEX, allocBuffer, outBuffer);
1498     ASSERT_EQ(err, HDF_SUCCESS);
1499     err = g_component->FreeBuffer(OUTPUT_INDEX, outBuffer);
1500     ASSERT_EQ(err, HDF_SUCCESS);
1501 }
1502 /**
1503  * @tc.number : SUB_Driver_Codec_FreeBuffer_0200
1504  * @tc.name   : testFreeBuffer001
1505  * @tc.desc   : When the function is called directly for release, sending the command fails.
1506  */
HWTEST_F(CodecComponentTestAdditional, testFreeBuffer001, Function | MediumTest | Level2)1507 HWTEST_F(CodecComponentTestAdditional, testFreeBuffer001, Function | MediumTest | Level2)
1508 {
1509     ASSERT_TRUE(g_component != nullptr);
1510     struct OmxCodecBuffer omxBuffer;
1511     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1512     auto ret = g_component->FreeBuffer(OUTPUT_INDEX, omxBuffer);
1513     ASSERT_NE(ret, HDF_SUCCESS);
1514 }
1515 /**
1516  * @tc.number : SUB_Driver_Codec_FreeBuffer_0300
1517  * @tc.name   : testFreeBuffer002
1518  * @tc.desc   : Set the component status to OMX first_ StateLoaded, call the AllocateBuffer function to apply for space,
1519  *              then call the FreeBuffer function,send the command successfully.
1520  */
HWTEST_F(CodecComponentTestAdditional, testFreeBuffer002, Function | MediumTest | Level1)1521 HWTEST_F(CodecComponentTestAdditional, testFreeBuffer002, Function | MediumTest | Level1)
1522 {
1523     ASSERT_TRUE(g_component != nullptr);
1524     std::vector<int8_t> cmdData;
1525     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1526     ASSERT_EQ(err, HDF_SUCCESS);
1527 
1528     struct OmxCodecBuffer allocBuffer;
1529     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1530     struct OmxCodecBuffer outBuffer;
1531     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1532     ASSERT_EQ(err, HDF_SUCCESS);
1533     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1534     ASSERT_EQ(err, HDF_SUCCESS);
1535 }
1536 /**
1537  * @tc.number : SUB_Driver_Codec_FreeBuffer_0400
1538  * @tc.name   : testFreeBuffer003
1539  * @tc.desc   : Structure OmxCodecBuffer->bufferId = BUFFER_ID_ERROR, sending command failed
1540  */
HWTEST_F(CodecComponentTestAdditional, testFreeBuffer003, Function | MediumTest | Level2)1541 HWTEST_F(CodecComponentTestAdditional, testFreeBuffer003, Function | MediumTest | Level2)
1542 {
1543     ASSERT_TRUE(g_component != nullptr);
1544     std::vector<int8_t> cmdData;
1545     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1546     ASSERT_EQ(err, HDF_SUCCESS);
1547 
1548     struct OmxCodecBuffer allocBuffer;
1549     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1550     struct OmxCodecBuffer outBuffer;
1551     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1552     ASSERT_EQ(err, HDF_SUCCESS);
1553     outBuffer.bufferId = BUFFER_ID_ERROR;
1554     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1555     ASSERT_NE(err, HDF_SUCCESS);
1556 }
1557 /**
1558  * @tc.number : SUB_Driver_Codec_FreeBuffer_0500
1559  * @tc.name   : testFreeBuffer004
1560  * @tc.desc   : Structure OmxCodecBuffer->size = 0, sending command success
1561  */
HWTEST_F(CodecComponentTestAdditional, testFreeBuffer004, Function | MediumTest | Level1)1562 HWTEST_F(CodecComponentTestAdditional, testFreeBuffer004, Function | MediumTest | Level1)
1563 {
1564     ASSERT_TRUE(g_component != nullptr);
1565     std::vector<int8_t> cmdData;
1566     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1567     ASSERT_EQ(err, HDF_SUCCESS);
1568 
1569     struct OmxCodecBuffer allocBuffer;
1570     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1571     struct OmxCodecBuffer outBuffer;
1572     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1573     ASSERT_EQ(err, HDF_SUCCESS);
1574     outBuffer.size = 0;
1575     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1576     ASSERT_EQ(err, HDF_SUCCESS);
1577 }
1578 /**
1579  * @tc.number : SUB_Driver_Codec_FreeBuffer_0600
1580  * @tc.name   : testFreeBuffer005
1581  * @tc.desc   : Structure OmxCodecBuffer->bufferType=CODEC_BUFFER_TYPE_AVSHARE_MEM_FD,command sent successfully.
1582  */
HWTEST_F(CodecComponentTestAdditional, testFreeBuffer005, Function | MediumTest | Level1)1583 HWTEST_F(CodecComponentTestAdditional, testFreeBuffer005, Function | MediumTest | Level1)
1584 {
1585     ASSERT_TRUE(g_component != nullptr);
1586     std::vector<int8_t> cmdData;
1587     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1588     ASSERT_EQ(err, HDF_SUCCESS);
1589 
1590     struct OmxCodecBuffer allocBuffer;
1591     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1592     struct OmxCodecBuffer outBuffer;
1593     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1594     ASSERT_EQ(err, HDF_SUCCESS);
1595     outBuffer.bufferType = CODEC_BUFFER_TYPE_AVSHARE_MEM_FD;
1596     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1597     ASSERT_EQ(err, HDF_SUCCESS);
1598 }
1599 /**
1600  * @tc.number : SUB_Driver_Codec_FreeBuffer_0700
1601  * @tc.name   : testFreeBuffer006
1602  * @tc.desc   : The structure OmxCodecBuffer->allocLen = 0,the command was successfully sent.
1603  */
HWTEST_F(CodecComponentTestAdditional, testFreeBuffer006, Function | MediumTest | Level1)1604 HWTEST_F(CodecComponentTestAdditional, testFreeBuffer006, Function | MediumTest | Level1)
1605 {
1606     ASSERT_TRUE(g_component != nullptr);
1607     std::vector<int8_t> cmdData;
1608     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1609     ASSERT_EQ(err, HDF_SUCCESS);
1610 
1611     struct OmxCodecBuffer allocBuffer;
1612     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1613     struct OmxCodecBuffer outBuffer;
1614     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1615     ASSERT_EQ(err, HDF_SUCCESS);
1616     outBuffer.allocLen = 0;
1617     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1618     ASSERT_EQ(err, HDF_SUCCESS);
1619 }
1620 /**
1621  * @tc.number : SUB_Driver_Codec_FreeBuffer_0800
1622  * @tc.name   : testFreeBuffer007
1623  * @tc.desc   : The structure OmxCodecBuffer->filledLen = 0,the command was successfully sent.
1624  */
HWTEST_F(CodecComponentTestAdditional, testFreeBuffer007, Function | MediumTest | Level1)1625 HWTEST_F(CodecComponentTestAdditional, testFreeBuffer007, Function | MediumTest | Level1)
1626 {
1627     ASSERT_TRUE(g_component != nullptr);
1628     std::vector<int8_t> cmdData;
1629     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1630     ASSERT_EQ(err, HDF_SUCCESS);
1631 
1632     struct OmxCodecBuffer allocBuffer;
1633     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1634     struct OmxCodecBuffer outBuffer;
1635     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1636     ASSERT_EQ(err, HDF_SUCCESS);
1637     outBuffer.filledLen = 0;
1638     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1639     ASSERT_EQ(err, HDF_SUCCESS);
1640 }
1641 /**
1642  * @tc.number : SUB_Driver_Codec_FreeBuffer_0900
1643  * @tc.name   : testFreeBuffer008
1644  * @tc.desc   : The structure OmxCodecBuffer->type = READ_WRITE_TYPE,the command was successfully sent.
1645  */
HWTEST_F(CodecComponentTestAdditional, testFreeBuffer008, Function | MediumTest | Level1)1646 HWTEST_F(CodecComponentTestAdditional, testFreeBuffer008, Function | MediumTest | Level1)
1647 {
1648     ASSERT_TRUE(g_component != nullptr);
1649     std::vector<int8_t> cmdData;
1650     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1651     ASSERT_EQ(err, HDF_SUCCESS);
1652 
1653     struct OmxCodecBuffer allocBuffer;
1654     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1655     struct OmxCodecBuffer outBuffer;
1656     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1657     ASSERT_EQ(err, HDF_SUCCESS);
1658     outBuffer.type = READ_WRITE_TYPE;
1659     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1660     ASSERT_EQ(err, HDF_SUCCESS);
1661 }
1662 /**
1663  * @tc.number : SUB_Driver_Codec_FreeBuffer_1000
1664  * @tc.name   : testFreeBuffer009
1665  * @tc.desc   : The structure OmxCodecBuffer->type = READ_ONLY_TYPE,the command was successfully sent.
1666  */
HWTEST_F(CodecComponentTestAdditional, testFreeBuffer009, Function | MediumTest | Level1)1667 HWTEST_F(CodecComponentTestAdditional, testFreeBuffer009, Function | MediumTest | Level1)
1668 {
1669     ASSERT_TRUE(g_component != nullptr);
1670     std::vector<int8_t> cmdData;
1671     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
1672     ASSERT_EQ(err, HDF_SUCCESS);
1673 
1674     struct OmxCodecBuffer allocBuffer;
1675     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1676     struct OmxCodecBuffer outBuffer;
1677     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1678     ASSERT_EQ(err, HDF_SUCCESS);
1679     outBuffer.type = READ_ONLY_TYPE;
1680     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1681     ASSERT_EQ(err, HDF_SUCCESS);
1682 }
1683 /**
1684  * @tc.number : SUB_Driver_Codec_FreeBuffer_1100
1685  * @tc.name   : testFreeBuffer010
1686  * @tc.desc   : Set the component status to OMX_StateExecuting
1687  */
HWTEST_F(CodecComponentTestAdditional, testFreeBuffer010, Function | MediumTest | Level1)1688 HWTEST_F(CodecComponentTestAdditional, testFreeBuffer010, Function | MediumTest | Level1)
1689 {
1690     ASSERT_TRUE(g_component != nullptr);
1691     std::vector<int8_t> cmdData;
1692     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateExecuting, cmdData);
1693     ASSERT_EQ(err, HDF_SUCCESS);
1694 
1695     struct OmxCodecBuffer allocBuffer;
1696     InitOmxCodecBuffer(allocBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1697     struct OmxCodecBuffer outBuffer;
1698     err = g_component->AllocateBuffer(INPUT_INDEX, allocBuffer, outBuffer);
1699 #ifdef DISPLAY_COMMUNITY
1700     ASSERT_EQ(err, HDF_SUCCESS);
1701 #else
1702     ASSERT_NE(err, HDF_SUCCESS);
1703 #endif
1704     err = g_component->FreeBuffer(INPUT_INDEX, outBuffer);
1705 #ifdef DISPLAY_COMMUNITY
1706     ASSERT_EQ(err, HDF_SUCCESS);
1707 #else
1708     ASSERT_NE(err, HDF_SUCCESS);
1709 #endif
1710 }
1711 /**
1712  * @tc.number : SUB_Driver_Codec_EmptyThisBuffer_0200
1713  * @tc.name   : testEmptyThisBuffer001
1714  * @tc.desc   : Set the component status to OMX_StateLoaded
1715  */
HWTEST_F(CodecComponentTestAdditional, testEmptyThisBuffer001, Function | MediumTest | Level2)1716 HWTEST_F(CodecComponentTestAdditional, testEmptyThisBuffer001, Function | MediumTest | Level2)
1717 {
1718     ASSERT_TRUE(g_component != nullptr);
1719     std::vector<int8_t> cmdData;
1720     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateLoaded, cmdData);
1721     ASSERT_EQ(err, HDF_SUCCESS);
1722     struct OmxCodecBuffer omxBuffer;
1723     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1724     auto ret = g_component->EmptyThisBuffer(omxBuffer);
1725     ASSERT_NE(ret, HDF_SUCCESS);
1726 }
1727 /**
1728  * @tc.number : SUB_Driver_Codec_EmptyThisBuffer_0300
1729  * @tc.name   : testEmptyThisBuffer002
1730  * @tc.desc   : Set component status to OMX_StateExecuting, structure OmxCodecBuffer->bufferId=BUFFER_ID_ERROR
1731  */
HWTEST_F(CodecComponentTestAdditional, testEmptyThisBuffer002, Function | MediumTest | Level2)1732 HWTEST_F(CodecComponentTestAdditional, testEmptyThisBuffer002, Function | MediumTest | Level2)
1733 {
1734     ASSERT_TRUE(g_component != nullptr);
1735     std::vector<int8_t> cmdData;
1736     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateExecuting, cmdData);
1737     ASSERT_EQ(err, HDF_SUCCESS);
1738     struct OmxCodecBuffer omxBuffer;
1739     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1740     omxBuffer.bufferId = BUFFER_ID_ERROR;
1741     auto ret = g_component->EmptyThisBuffer(omxBuffer);
1742     ASSERT_NE(ret, HDF_SUCCESS);
1743 }
1744 /**
1745  * @tc.number : SUB_Driver_Codec_EmptyThisBuffer_0400
1746  * @tc.name   : testEmptyThisBuffer003
1747  * @tc.desc   : Set component status to OMX_StateIdle
1748  */
HWTEST_F(CodecComponentTestAdditional, testEmptyThisBuffer003, Function | MediumTest | Level2)1749 HWTEST_F(CodecComponentTestAdditional, testEmptyThisBuffer003, Function | MediumTest | Level2)
1750 {
1751     ASSERT_TRUE(g_component != nullptr);
1752     std::vector<int8_t> cmdData;
1753     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateIdle, cmdData);
1754     ASSERT_EQ(err, HDF_SUCCESS);
1755     struct OmxCodecBuffer omxBuffer;
1756     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1757     auto ret = g_component->EmptyThisBuffer(omxBuffer);
1758     ASSERT_NE(ret, HDF_SUCCESS);
1759 }
1760 /**
1761  * @tc.number : SUB_Driver_Codec_EmptyThisBuffer_0500
1762  * @tc.name   : testEmptyThisBuffer004
1763  * @tc.desc   : Set component status to OMX_StateInvalid
1764  */
HWTEST_F(CodecComponentTestAdditional, testEmptyThisBuffer004, Function | MediumTest | Level2)1765 HWTEST_F(CodecComponentTestAdditional, testEmptyThisBuffer004, Function | MediumTest | Level2)
1766 {
1767     ASSERT_TRUE(g_component != nullptr);
1768     std::vector<int8_t> cmdData;
1769     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateInvalid, cmdData);
1770     ASSERT_EQ(err, HDF_SUCCESS);
1771     struct OmxCodecBuffer omxBuffer;
1772     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1773     auto ret = g_component->EmptyThisBuffer(omxBuffer);
1774     ASSERT_NE(ret, HDF_SUCCESS);
1775 }
1776 /**
1777  * @tc.number : SUB_Driver_Codec_EmptyThisBuffer_0600
1778  * @tc.name   : testEmptyThisBuffer005
1779  * @tc.desc   : Set component status to OMX_StateWaitForResources
1780  */
HWTEST_F(CodecComponentTestAdditional, testEmptyThisBuffer005, Function | MediumTest | Level2)1781 HWTEST_F(CodecComponentTestAdditional, testEmptyThisBuffer005, Function | MediumTest | Level2)
1782 {
1783     ASSERT_TRUE(g_component != nullptr);
1784     std::vector<int8_t> cmdData;
1785     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateWaitForResources, cmdData);
1786     ASSERT_EQ(err, HDF_SUCCESS);
1787     struct OmxCodecBuffer omxBuffer;
1788     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1789     auto ret = g_component->EmptyThisBuffer(omxBuffer);
1790     ASSERT_NE(ret, HDF_SUCCESS);
1791 }
1792 /**
1793  * @tc.number : SUB_Driver_Codec_FillThisBuffer_0200
1794  * @tc.name   : testFillThisBuffer001
1795  * @tc.desc   : Set component status to OMX_StatePause,structure OmxCodecBuffer->bufferType=CODEC_BUFFER_TYPE_INVALID
1796  */
HWTEST_F(CodecComponentTestAdditional, testFillThisBuffer001, Function | MediumTest | Level2)1797 HWTEST_F(CodecComponentTestAdditional, testFillThisBuffer001, Function | MediumTest | Level2)
1798 {
1799     ASSERT_TRUE(g_component != nullptr);
1800     std::vector<int8_t> cmdData;
1801     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StatePause, cmdData);
1802     ASSERT_EQ(err, HDF_SUCCESS);
1803     struct OmxCodecBuffer omxBuffer;
1804     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1805     omxBuffer.bufferType = CODEC_BUFFER_TYPE_INVALID;
1806     auto ret = g_component->FillThisBuffer(omxBuffer);
1807     ASSERT_NE(ret, HDF_SUCCESS);
1808 }
1809 /**
1810  * @tc.number : SUB_Driver_Codec_FillThisBuffer_0300
1811  * @tc.name   : testFillThisBuffer002
1812  * @tc.desc   : Set component status to OMX_StateExecuting,
1813  *              structure OmxCodecBuffer->bufferType=CODEC_BUFFER_TYPE_INVALID
1814  */
HWTEST_F(CodecComponentTestAdditional, testFillThisBuffer002, Function | MediumTest | Level2)1815 HWTEST_F(CodecComponentTestAdditional, testFillThisBuffer002, Function | MediumTest | Level2)
1816 {
1817     ASSERT_TRUE(g_component != nullptr);
1818     std::vector<int8_t> cmdData;
1819     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateExecuting, cmdData);
1820     ASSERT_EQ(err, HDF_SUCCESS);
1821     struct OmxCodecBuffer omxBuffer;
1822     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1823     omxBuffer.bufferType = CODEC_BUFFER_TYPE_INVALID;
1824     auto ret = g_component->FillThisBuffer(omxBuffer);
1825     ASSERT_NE(ret, HDF_SUCCESS);
1826 }
1827 /**
1828  * @tc.number : SUB_Driver_Codec_FillThisBuffer_0400
1829  * @tc.name   : testFillThisBuffer003
1830  * @tc.desc   : Set component status to OMX_StateExecution, structure OmxCodecBuffer->size=0
1831  */
HWTEST_F(CodecComponentTestAdditional, testFillThisBuffer003, Function | MediumTest | Level2)1832 HWTEST_F(CodecComponentTestAdditional, testFillThisBuffer003, Function | MediumTest | Level2)
1833 {
1834     ASSERT_TRUE(g_component != nullptr);
1835     std::vector<int8_t> cmdData;
1836     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateExecuting, cmdData);
1837     ASSERT_EQ(err, HDF_SUCCESS);
1838     struct OmxCodecBuffer omxBuffer;
1839     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1840     omxBuffer.size = 0;
1841     auto ret = g_component->FillThisBuffer(omxBuffer);
1842     ASSERT_NE(ret, HDF_SUCCESS);
1843 }
1844 /**
1845  * @tc.number : SUB_Driver_Codec_FillThisBuffer_0500
1846  * @tc.name   : testFillThisBuffer004
1847  * @tc.desc   : Set component status to OMX_StateExecution, structure OmxCodecBuffer->bufferId = BUFFER_ID_ERROR
1848  */
HWTEST_F(CodecComponentTestAdditional, testFillThisBuffer004, Function | MediumTest | Level2)1849 HWTEST_F(CodecComponentTestAdditional, testFillThisBuffer004, Function | MediumTest | Level2)
1850 {
1851     ASSERT_TRUE(g_component != nullptr);
1852     std::vector<int8_t> cmdData;
1853     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateExecuting, cmdData);
1854     ASSERT_EQ(err, HDF_SUCCESS);
1855     struct OmxCodecBuffer omxBuffer;
1856     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1857     omxBuffer.bufferId = BUFFER_ID_ERROR;
1858     auto ret = g_component->FillThisBuffer(omxBuffer);
1859     ASSERT_NE(ret, HDF_SUCCESS);
1860 }
1861 /**
1862  * @tc.number : SUB_Driver_Codec_FillThisBuffer_0600
1863  * @tc.name   : testFillThisBuffer005
1864  * @tc.desc   : Set component status to OMX_StateIdle
1865  */
HWTEST_F(CodecComponentTestAdditional, testFillThisBuffer005, Function | MediumTest | Level2)1866 HWTEST_F(CodecComponentTestAdditional, testFillThisBuffer005, Function | MediumTest | Level2)
1867 {
1868     ASSERT_TRUE(g_component != nullptr);
1869     std::vector<int8_t> cmdData;
1870     auto err = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateIdle, cmdData);
1871     ASSERT_EQ(err, HDF_SUCCESS);
1872     struct OmxCodecBuffer omxBuffer;
1873     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1874     auto ret = g_component->FillThisBuffer(omxBuffer);
1875     ASSERT_NE(ret, HDF_SUCCESS);
1876 }
1877 /**
1878  * @tc.number : SUB_Driver_Codec_ComponentDeInit_0200
1879  * @tc.name   : testComponentDeInit001
1880  * @tc.desc   : When directly calling the ComponentDeInit function, the command was successfully sent.
1881  */
HWTEST_F(CodecComponentTestAdditional, testComponentDeInit001, Function | MediumTest | Level1)1882 HWTEST_F(CodecComponentTestAdditional, testComponentDeInit001, Function | MediumTest | Level1)
1883 {
1884     ASSERT_TRUE(g_component != nullptr);
1885     auto ret = g_component->ComponentDeInit();
1886     ASSERT_EQ(ret, HDF_SUCCESS);
1887 }
1888 /**
1889  * @tc.number : SUB_Driver_Codec_ComponentDeInit_0300
1890  * @tc.name   : testComponentDeInit002
1891  * @tc.desc   : Set the condition to OMX_StateLoaded, the command was successfully sent.
1892  */
HWTEST_F(CodecComponentTestAdditional, testComponentDeInit002, Function | MediumTest | Level1)1893 HWTEST_F(CodecComponentTestAdditional, testComponentDeInit002, Function | MediumTest | Level1)
1894 {
1895     ASSERT_TRUE(g_component != nullptr);
1896     OMX_STATETYPE status = OMX_StateLoaded;
1897     std::cout << "status = " << status << std::endl;
1898     auto ret = g_component->ComponentDeInit();
1899     ASSERT_EQ(ret, HDF_SUCCESS);
1900 }
1901 #ifdef SUPPORT_OMX
1902 /**
1903  * @tc.number : SUB_Driver_Codec_ComponentRoleEnum_0200
1904  * @tc.name   : testComponentRoleEnum001
1905  * @tc.desc   : When index=0, the command was successfully sent.
1906  */
HWTEST_F(CodecComponentTestAdditional, testComponentRoleEnum001, Function | MediumTest | Level1)1907 HWTEST_F(CodecComponentTestAdditional, testComponentRoleEnum001, Function | MediumTest | Level1)
1908 {
1909     ASSERT_TRUE(g_component != nullptr);
1910     std::vector<uint8_t> role;
1911     auto ret = g_component->ComponentRoleEnum(role, 0);
1912     ASSERT_EQ(ret, HDF_SUCCESS);
1913 }
1914 /**
1915  * @tc.number : SUB_Driver_Codec_ComponentRoleEnum_0300
1916  * @tc.name   : testComponentRoleEnum002
1917  * @tc.desc   : When index=65000, sending command failed
1918  */
HWTEST_F(CodecComponentTestAdditional, testComponentRoleEnum002, Function | MediumTest | Level2)1919 HWTEST_F(CodecComponentTestAdditional, testComponentRoleEnum002, Function | MediumTest | Level2)
1920 {
1921     ASSERT_TRUE(g_component != nullptr);
1922     std::vector<uint8_t> role;
1923     auto ret = g_component->ComponentRoleEnum(role, 65000);
1924     ASSERT_NE(ret, HDF_SUCCESS);
1925 }
1926 /**
1927  * @tc.number : SUB_Driver_Codec_UseEglImage_0200
1928  * @tc.name   : testUseEglImage001
1929  * @tc.desc   : Initialize the structure OmxCodecBuffer with portIndex=INPUT_INDEX, sending command failed.
1930  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage001, Function | MediumTest | Level2)1931 HWTEST_F(CodecComponentTestAdditional, testUseEglImage001, Function | MediumTest | Level2)
1932 {
1933     ASSERT_TRUE(g_component != nullptr);
1934     struct OmxCodecBuffer omxBuffer;
1935     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1936     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
1937     ASSERT_TRUE(eglImage != nullptr);
1938     std::vector<int8_t> eglImageVec;
1939     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
1940     struct OmxCodecBuffer outbuffer;
1941     int32_t ret = g_component->UseEglImage(INPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
1942     ASSERT_NE(ret, HDF_SUCCESS);
1943 }
1944 /**
1945  * @tc.number : SUB_Driver_Codec_UseEglImage_0300
1946  * @tc.name   : testUseEglImage002
1947  * @tc.desc   : Set component status to OMX_StatePause, portIndex=INPUT_INDEX, sending command failed.
1948  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage002, Function | MediumTest | Level2)1949 HWTEST_F(CodecComponentTestAdditional, testUseEglImage002, Function | MediumTest | Level2)
1950 {
1951     ASSERT_TRUE(g_component != nullptr);
1952     struct OmxCodecBuffer omxBuffer;
1953     OMX_STATETYPE status = OMX_StatePause;
1954     std::cout << "status = " << status << std::endl;
1955     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1956     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
1957     ASSERT_TRUE(eglImage != nullptr);
1958     std::vector<int8_t> eglImageVec;
1959     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
1960     struct OmxCodecBuffer outbuffer;
1961     int32_t ret = g_component->UseEglImage(INPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
1962     ASSERT_NE(ret, HDF_SUCCESS);
1963 }
1964 /**
1965  * @tc.number : SUB_Driver_Codec_UseEglImage_0400
1966  * @tc.name   : testUseEglImage003
1967  * @tc.desc   : Set component status to OMX_StateLoaded, portIndex=INPUT_INDEX, sending command failed.
1968  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage003, Function | MediumTest | Level2)1969 HWTEST_F(CodecComponentTestAdditional, testUseEglImage003, Function | MediumTest | Level2)
1970 {
1971     ASSERT_TRUE(g_component != nullptr);
1972     struct OmxCodecBuffer omxBuffer;
1973     OMX_STATETYPE status = OMX_StateLoaded;
1974     std::cout << "status = " << status << std::endl;
1975     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1976     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
1977     ASSERT_TRUE(eglImage != nullptr);
1978     std::vector<int8_t> eglImageVec;
1979     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
1980     struct OmxCodecBuffer outbuffer;
1981     int32_t ret = g_component->UseEglImage(INPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
1982     ASSERT_NE(ret, HDF_SUCCESS);
1983 }
1984 /**
1985  * @tc.number : SUB_Driver_Codec_UseEglImage_0500
1986  * @tc.name   : testUseEglImage004
1987  * @tc.desc   : Set component status to OMX_StateWaitForResources, portIndex=INPUT_INDEX, sending command failed.
1988  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage004, Function | MediumTest | Level2)1989 HWTEST_F(CodecComponentTestAdditional, testUseEglImage004, Function | MediumTest | Level2)
1990 {
1991     ASSERT_TRUE(g_component != nullptr);
1992     std::vector<int8_t> cmdData;
1993     struct OmxCodecBuffer omxBuffer;
1994     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateWaitForResources, cmdData);
1995     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
1996     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
1997     ASSERT_TRUE(eglImage != nullptr);
1998     std::vector<int8_t> eglImageVec;
1999     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
2000     struct OmxCodecBuffer outbuffer;
2001     ret = g_component->UseEglImage(INPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
2002     ASSERT_NE(ret, HDF_SUCCESS);
2003 }
2004 /**
2005  * @tc.number : SUB_Driver_Codec_UseEglImage_0600
2006  * @tc.name   : testUseEglImage005
2007  * @tc.desc   : Set component status to OMX_StateExecuting, portIndex=INPUT_INDEX, sending command failed.
2008  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage005, Function | MediumTest | Level2)2009 HWTEST_F(CodecComponentTestAdditional, testUseEglImage005, Function | MediumTest | Level2)
2010 {
2011     ASSERT_TRUE(g_component != nullptr);
2012     std::vector<int8_t> cmdData;
2013     struct OmxCodecBuffer omxBuffer;
2014     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateExecuting, cmdData);
2015     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
2016     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
2017     ASSERT_TRUE(eglImage != nullptr);
2018     std::vector<int8_t> eglImageVec;
2019     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
2020     struct OmxCodecBuffer outbuffer;
2021     ret = g_component->UseEglImage(INPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
2022     ASSERT_NE(ret, HDF_SUCCESS);
2023 }
2024 /**
2025  * @tc.number : SUB_Driver_Codec_UseEglImage_0700
2026  * @tc.name   : testUseEglImage006
2027  * @tc.desc   : Set component status to OMX_StateLoaded, with CODEC_BUFFER_TYPE_VIRTUAL_ADDR.
2028  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage006, Function | MediumTest | Level2)2029 HWTEST_F(CodecComponentTestAdditional, testUseEglImage006, Function | MediumTest | Level2)
2030 {
2031     ASSERT_TRUE(g_component != nullptr);
2032     std::vector<int8_t> cmdData;
2033     struct OmxCodecBuffer omxBuffer;
2034     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateLoaded, cmdData);
2035     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_VIRTUAL_ADDR);
2036     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
2037     ASSERT_TRUE(eglImage != nullptr);
2038     std::vector<int8_t> eglImageVec;
2039     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
2040     struct OmxCodecBuffer outbuffer;
2041     ret = g_component->UseEglImage(INPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
2042     ASSERT_NE(ret, HDF_SUCCESS);
2043 }
2044 /**
2045  * @tc.number : SUB_Driver_Codec_UseEglImage_0800
2046  * @tc.name   : testUseEglImage007
2047  * @tc.desc   : Set component status to OMX_StateExecuting, with CODEC_BUFFER_TYPE_VIRTUAL_ADDR
2048  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage007, Function | MediumTest | Level2)2049 HWTEST_F(CodecComponentTestAdditional, testUseEglImage007, Function | MediumTest | Level2)
2050 {
2051     ASSERT_TRUE(g_component != nullptr);
2052     std::vector<int8_t> cmdData;
2053     struct OmxCodecBuffer omxBuffer;
2054     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateExecuting, cmdData);
2055     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_VIRTUAL_ADDR);
2056     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
2057     ASSERT_TRUE(eglImage != nullptr);
2058     std::vector<int8_t> eglImageVec;
2059     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
2060     struct OmxCodecBuffer outbuffer;
2061     ret = g_component->UseEglImage(INPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
2062     ASSERT_NE(ret, HDF_SUCCESS);
2063 }
2064 /**
2065  * @tc.number : SUB_Driver_Codec_UseEglImage_0900
2066  * @tc.name   : testUseEglImage008
2067  * @tc.desc   : Set component status to OMX_StateWaitForResources, with CODEC_BUFFER_TYPE_HANDLE
2068  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage008, Function | MediumTest | Level2)2069 HWTEST_F(CodecComponentTestAdditional, testUseEglImage008, Function | MediumTest | Level2)
2070 {
2071     ASSERT_TRUE(g_component != nullptr);
2072     std::vector<int8_t> cmdData;
2073     struct OmxCodecBuffer omxBuffer;
2074     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateWaitForResources, cmdData);
2075     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_HANDLE);
2076     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
2077     ASSERT_TRUE(eglImage != nullptr);
2078     std::vector<int8_t> eglImageVec;
2079     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
2080     struct OmxCodecBuffer outbuffer;
2081     ret = g_component->UseEglImage(INPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
2082     ASSERT_NE(ret, HDF_SUCCESS);
2083 }
2084 /**
2085  * @tc.number : SUB_Driver_Codec_UseEglImage_1000
2086  * @tc.name   : testUseEglImage009
2087  * @tc.desc   : Set component status to OMX_StateLoaded, with CODEC_BUFFER_TYPE_DYNAMIC_HANDLE
2088  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage009, Function | MediumTest | Level2)2089 HWTEST_F(CodecComponentTestAdditional, testUseEglImage009, Function | MediumTest | Level2)
2090 {
2091     ASSERT_TRUE(g_component != nullptr);
2092     std::vector<int8_t> cmdData;
2093     struct OmxCodecBuffer omxBuffer;
2094     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateLoaded, cmdData);
2095     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_DYNAMIC_HANDLE);
2096     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
2097     ASSERT_TRUE(eglImage != nullptr);
2098     std::vector<int8_t> eglImageVec;
2099     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
2100     struct OmxCodecBuffer outbuffer;
2101     ret = g_component->UseEglImage(INPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
2102     ASSERT_NE(ret, HDF_SUCCESS);
2103 }
2104 /**
2105  * @tc.number : SUB_Driver_Codec_UseEglImage_1100
2106  * @tc.name   : testUseEglImage010
2107  * @tc.desc   : Initialize the structure OmxCodecBuffer with portIndex=OUTPUT_INDEX, sending command failed.
2108  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage010, Function | MediumTest | Level2)2109 HWTEST_F(CodecComponentTestAdditional, testUseEglImage010, Function | MediumTest | Level2)
2110 {
2111     ASSERT_TRUE(g_component != nullptr);
2112     struct OmxCodecBuffer omxBuffer;
2113     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
2114     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
2115     ASSERT_TRUE(eglImage != nullptr);
2116     std::vector<int8_t> eglImageVec;
2117     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
2118     struct OmxCodecBuffer outbuffer;
2119     int32_t ret = g_component->UseEglImage(OUTPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
2120     ASSERT_NE(ret, HDF_SUCCESS);
2121 }
2122 /**
2123  * @tc.number : SUB_Driver_Codec_UseEglImage_1200
2124  * @tc.name   : testUseEglImage011
2125  * @tc.desc   : Set component status to OMX_StatePause, portIndex=OUTPUT_INDEX, sending command failed.
2126  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage011, Function | MediumTest | Level2)2127 HWTEST_F(CodecComponentTestAdditional, testUseEglImage011, Function | MediumTest | Level2)
2128 {
2129     ASSERT_TRUE(g_component != nullptr);
2130     struct OmxCodecBuffer omxBuffer;
2131     OMX_STATETYPE status = OMX_StatePause;
2132     std::cout << "status = " << status << std::endl;
2133     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
2134     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
2135     ASSERT_TRUE(eglImage != nullptr);
2136     std::vector<int8_t> eglImageVec;
2137     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
2138     struct OmxCodecBuffer outbuffer;
2139     int32_t ret = g_component->UseEglImage(OUTPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
2140     ASSERT_NE(ret, HDF_SUCCESS);
2141 }
2142 /**
2143  * @tc.number : SUB_Driver_Codec_UseEglImage_1300
2144  * @tc.name   : testUseEglImage012
2145  * @tc.desc   : Set component status to OMX_StateLoaded, portIndex=OUTPUT_INDEX, sending command failed.
2146  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage012, Function | MediumTest | Level2)2147 HWTEST_F(CodecComponentTestAdditional, testUseEglImage012, Function | MediumTest | Level2)
2148 {
2149     ASSERT_TRUE(g_component != nullptr);
2150     struct OmxCodecBuffer omxBuffer;
2151     OMX_STATETYPE status = OMX_StateLoaded;
2152     std::cout << "status = " << status << std::endl;
2153     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
2154     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
2155     ASSERT_TRUE(eglImage != nullptr);
2156     std::vector<int8_t> eglImageVec;
2157     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
2158     struct OmxCodecBuffer outbuffer;
2159     int32_t ret = g_component->UseEglImage(OUTPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
2160     ASSERT_NE(ret, HDF_SUCCESS);
2161 }
2162 /**
2163  * @tc.number : SUB_Driver_Codec_UseEglImage_1400
2164  * @tc.name   : testUseEglImage013
2165  * @tc.desc   : Set component status to OMX_StateWaitForResources, portIndex=OUTPUT_INDEX, sending command failed.
2166  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage013, Function | MediumTest | Level2)2167 HWTEST_F(CodecComponentTestAdditional, testUseEglImage013, Function | MediumTest | Level2)
2168 {
2169     ASSERT_TRUE(g_component != nullptr);
2170     std::vector<int8_t> cmdData;
2171     struct OmxCodecBuffer omxBuffer;
2172     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateWaitForResources, cmdData);
2173     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
2174     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
2175     ASSERT_TRUE(eglImage != nullptr);
2176     std::vector<int8_t> eglImageVec;
2177     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
2178     struct OmxCodecBuffer outbuffer;
2179     ret = g_component->UseEglImage(OUTPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
2180     ASSERT_NE(ret, HDF_SUCCESS);
2181 }
2182 /**
2183  * @tc.number : SUB_Driver_Codec_UseEglImage_1500
2184  * @tc.name   : testUseEglImage014
2185  * @tc.desc   : Set component status to OMX_StateExecuting, portIndex=OUTPUT_INDEX, sending command failed.
2186  */
HWTEST_F(CodecComponentTestAdditional, testUseEglImage014, Function | MediumTest | Level2)2187 HWTEST_F(CodecComponentTestAdditional, testUseEglImage014, Function | MediumTest | Level2)
2188 {
2189     ASSERT_TRUE(g_component != nullptr);
2190     std::vector<int8_t> cmdData;
2191     struct OmxCodecBuffer omxBuffer;
2192     auto ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, OMX_StateExecuting, cmdData);
2193     InitOmxCodecBuffer(omxBuffer, CODEC_BUFFER_TYPE_AVSHARE_MEM_FD);
2194     auto eglImage = std::make_unique<int8_t[]>(BUFFER_SIZE);
2195     ASSERT_TRUE(eglImage != nullptr);
2196     std::vector<int8_t> eglImageVec;
2197     eglImageVec.assign(eglImage.get(), eglImage.get() + BUFFER_SIZE);
2198     struct OmxCodecBuffer outbuffer;
2199     ret = g_component->UseEglImage(OUTPUT_INDEX, omxBuffer, outbuffer, eglImageVec);
2200     ASSERT_NE(ret, HDF_SUCCESS);
2201 }
2202 #endif
2203 /**
2204  * @tc.number : SUB_Driver_Codec_SetCallbacks_0200
2205  * @tc.name   : testSetCallbacks001
2206  * @tc.desc   : Set the function entry to appData = -1
2207  */
HWTEST_F(CodecComponentTestAdditional, testSetCallbacks001, Function | MediumTest | Level1)2208 HWTEST_F(CodecComponentTestAdditional, testSetCallbacks001, Function | MediumTest | Level1)
2209 {
2210     ASSERT_TRUE(g_component != nullptr);
2211     g_callback = new CodecCallbackService();
2212     ASSERT_TRUE(g_callback != nullptr);
2213     auto ret = g_component->SetCallbacks(g_callback, -1);
2214     ASSERT_EQ(ret, HDF_SUCCESS);
2215 }
2216 /**
2217  * @tc.number : SUB_Driver_Codec_SetCallbacks_0300
2218  * @tc.name   : testSetCallbacks002
2219  * @tc.desc   : Set the function entry to appData = 0
2220  */
HWTEST_F(CodecComponentTestAdditional, testSetCallbacks002, Function | MediumTest | Level1)2221 HWTEST_F(CodecComponentTestAdditional, testSetCallbacks002, Function | MediumTest | Level1)
2222 {
2223     ASSERT_TRUE(g_component != nullptr);
2224     g_callback = new CodecCallbackService();
2225     ASSERT_TRUE(g_callback != nullptr);
2226     auto ret = g_component->SetCallbacks(g_callback, 0);
2227     ASSERT_EQ(ret, HDF_SUCCESS);
2228 }
2229 /**
2230  * @tc.number : SUB_Driver_Codec_SetCallbacks_0400
2231  * @tc.name   : testSetCallbacks003
2232  * @tc.desc   : Set the function entry to appData = 1000
2233  */
HWTEST_F(CodecComponentTestAdditional, testSetCallbacks003, Function | MediumTest | Level1)2234 HWTEST_F(CodecComponentTestAdditional, testSetCallbacks003, Function | MediumTest | Level1)
2235 {
2236     ASSERT_TRUE(g_component != nullptr);
2237     g_callback = new CodecCallbackService();
2238     ASSERT_TRUE(g_callback != nullptr);
2239     auto ret = g_component->SetCallbacks(g_callback, 1000);
2240     ASSERT_EQ(ret, HDF_SUCCESS);
2241 }
2242 /**
2243  * @tc.number : SUB_Driver_Codec_SetCallbacks_0500
2244  * @tc.name   : testSetCallbacks004
2245  * @tc.desc   : Set the function entry to appData = 1 and cycle 100 times
2246  */
HWTEST_F(CodecComponentTestAdditional, testSetCallbacks004, Function | MediumTest | Level1)2247 HWTEST_F(CodecComponentTestAdditional, testSetCallbacks004, Function | MediumTest | Level1)
2248 {
2249     int32_t i = 0;
2250     int32_t ret;
2251     ASSERT_TRUE(g_component != nullptr);
2252     g_callback = new CodecCallbackService();
2253     ASSERT_TRUE(g_callback != nullptr);
2254     for (i = 0; i < 100; i++) {
2255         ret = g_component->SetCallbacks(g_callback, 1);
2256         ASSERT_EQ(ret, HDF_SUCCESS);
2257     }
2258 }
2259 /**
2260  * @tc.number  SUB_Driver_Codec_GetComponentVersion_0100
2261  * @tc.name  testGetComponentVersion001
2262  * @tc.desc  The input parameter is empty.
2263  */
HWTEST_F(CodecComponentTestAdditional, testGetComponentVersion001, Function | MediumTest | Level1)2264 HWTEST_F(CodecComponentTestAdditional, testGetComponentVersion001, Function | MediumTest | Level1)
2265 {
2266     ASSERT_TRUE(g_component != nullptr);
2267     struct CompVerInfo verInfo;
2268     auto ret = g_component->GetComponentVersion(verInfo);
2269     ASSERT_EQ(ret, HDF_SUCCESS);
2270 }
2271 /**
2272  * @tc.number  SUB_Driver_Codec_SendCommand_0100
2273  * @tc.name  testSendCommand001
2274  * @tc.desc  The first and second parameters are CODEC_COMMAND_STATE_SET and CODEC_STATE_INVALID. SendCommand is
2275  * successful.
2276  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand001, Function | MediumTest | Level1)2277 HWTEST_F(CodecComponentTestAdditional, testSendCommand001, Function | MediumTest | Level1)
2278 {
2279     ASSERT_TRUE(g_component != nullptr);
2280     std::vector<int8_t> cmdData;
2281     int32_t ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_INVALID, cmdData);
2282     ASSERT_EQ(ret, HDF_SUCCESS);
2283 }
2284 /**
2285  * @tc.number  SUB_Driver_Codec_SendCommand_0200
2286  * @tc.name  testSendCommand002
2287  * @tc.desc  The first and second parameters are CODEC_COMMAND_STATE_SET and CODEC_STATE_LOADED. SendCommand is
2288  * successful.
2289  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand002, Function | MediumTest | Level1)2290 HWTEST_F(CodecComponentTestAdditional, testSendCommand002, Function | MediumTest | Level1)
2291 {
2292     ASSERT_TRUE(g_component != nullptr);
2293     std::vector<int8_t> cmdData;
2294     int32_t ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_LOADED, cmdData);
2295     ASSERT_EQ(ret, HDF_SUCCESS);
2296 }
2297 /**
2298  * @tc.number  SUB_Driver_Codec_SendCommand_0300
2299  * @tc.name  testSendCommand003
2300  * @tc.desc  The first and second parameters are CODEC_COMMAND_STATE_SET and CODEC_STATE_IDLE. SendCommand is
2301  * successful.
2302  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand003, Function | MediumTest | Level1)2303 HWTEST_F(CodecComponentTestAdditional, testSendCommand003, Function | MediumTest | Level1)
2304 {
2305     ASSERT_TRUE(g_component != nullptr);
2306     std::vector<int8_t> cmdData;
2307     int32_t ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_IDLE, cmdData);
2308     ASSERT_EQ(ret, HDF_SUCCESS);
2309 }
2310 /**
2311  * @tc.number  SUB_Driver_Codec_SendCommand_0400
2312  * @tc.name  testSendCommand004
2313  * @tc.desc  The first and second parameters are CODEC_COMMAND_STATE_SET and CODEC_STATE_EXECUTING. SendCommand is
2314  * successful.
2315  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand004, Function | MediumTest | Level1)2316 HWTEST_F(CodecComponentTestAdditional, testSendCommand004, Function | MediumTest | Level1)
2317 {
2318     ASSERT_TRUE(g_component != nullptr);
2319     std::vector<int8_t> cmdData;
2320     int32_t ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_EXECUTING, cmdData);
2321     ASSERT_EQ(ret, HDF_SUCCESS);
2322 }
2323 /**
2324  * @tc.number  SUB_Driver_Codec_SendCommand_0500
2325  * @tc.name  testSendCommand005
2326  * @tc.desc  The first and second parameters are CODEC_COMMAND_STATE_SET and CODEC_STATE_PAUSE. SendCommand is
2327  * successful.
2328  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand005, Function | MediumTest | Level1)2329 HWTEST_F(CodecComponentTestAdditional, testSendCommand005, Function | MediumTest | Level1)
2330 {
2331     ASSERT_TRUE(g_component != nullptr);
2332     std::vector<int8_t> cmdData;
2333     int32_t ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_PAUSE, cmdData);
2334     ASSERT_EQ(ret, HDF_SUCCESS);
2335 }
2336 /**
2337  * @tc.number  SUB_Driver_Codec_SendCommand_0600
2338  * @tc.name  testSendCommand006
2339  * @tc.desc  The first and second parameters are CODEC_COMMAND_STATE_SET and CODEC_STATE_WAIT_FOR_RESOURCES. SendCommand
2340  * is successful.
2341  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand006, Function | MediumTest | Level1)2342 HWTEST_F(CodecComponentTestAdditional, testSendCommand006, Function | MediumTest | Level1)
2343 {
2344     ASSERT_TRUE(g_component != nullptr);
2345     std::vector<int8_t> cmdData;
2346     int32_t ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_WAIT_FOR_RESOURCES, cmdData);
2347     ASSERT_EQ(ret, HDF_SUCCESS);
2348 }
2349 #ifdef SUPPORT_OMX
2350 /**
2351  * @tc.number  SUB_Driver_Codec_SendCommand_0700
2352  * @tc.name  testSendCommand007
2353  * @tc.desc  The first and second parameters are CODEC_COMMAND_STATE_SET and CODEC_STATE_KHRONOS_EXTENSIONS. SendCommand
2354  * is successful.
2355  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand007, Function | MediumTest | Level1)2356 HWTEST_F(CodecComponentTestAdditional, testSendCommand007, Function | MediumTest | Level1)
2357 {
2358     ASSERT_TRUE(g_component != nullptr);
2359     std::vector<int8_t> cmdData;
2360     int32_t ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_KHRONOS_EXTENSIONS, cmdData);
2361     ASSERT_EQ(ret, HDF_SUCCESS);
2362 }
2363 /**
2364  * @tc.number  SUB_Driver_Codec_SendCommand_0800
2365  * @tc.name  testSendCommand008
2366  * @tc.desc  The first and second parameters are CODEC_COMMAND_STATE_SET and CODEC_STATE_VENDOR_START_UNUSED.
2367  * SendCommand is successful.
2368  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand008, Function | MediumTest | Level1)2369 HWTEST_F(CodecComponentTestAdditional, testSendCommand008, Function | MediumTest | Level1)
2370 {
2371     ASSERT_TRUE(g_component != nullptr);
2372     std::vector<int8_t> cmdData;
2373     int32_t ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_VENDOR_START_UNUSED, cmdData);
2374     ASSERT_EQ(ret, HDF_SUCCESS);
2375 }
2376 /**
2377  * @tc.number  SUB_Driver_Codec_SendCommand_0900
2378  * @tc.name  testSendCommand009
2379  * @tc.desc  The first and second parameters are CODEC_COMMAND_STATE_SET and CODEC_STATE_MAX. SendCommand is successful.
2380  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand009, Function | MediumTest | Level1)2381 HWTEST_F(CodecComponentTestAdditional, testSendCommand009, Function | MediumTest | Level1)
2382 {
2383     ASSERT_TRUE(g_component != nullptr);
2384     std::vector<int8_t> cmdData;
2385     int32_t ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, CODEC_STATE_MAX, cmdData);
2386     ASSERT_EQ(ret, HDF_SUCCESS);
2387 }
2388 /**
2389  * @tc.number  SUB_Driver_Codec_SendCommand_1000
2390  * @tc.name  testSendCommand010
2391  * @tc.desc  The first and second parameters are CODEC_COMMAND_STATE_SET and -1. SendCommand is successful.
2392  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand010, Function | MediumTest | Level1)2393 HWTEST_F(CodecComponentTestAdditional, testSendCommand010, Function | MediumTest | Level1)
2394 {
2395     ASSERT_TRUE(g_component != nullptr);
2396     std::vector<int8_t> cmdData;
2397     int32_t ret = g_component->SendCommand(CODEC_COMMAND_STATE_SET, -1, cmdData);
2398     ASSERT_EQ(ret, HDF_SUCCESS);
2399 }
2400 /**
2401  * @tc.number  SUB_Driver_Codec_SendCommand_1100
2402  * @tc.name  testSendCommand011
2403  * @tc.desc  The first and second parameters are CODEC_COMMAND_FLUSH and -1. SendCommand is error.
2404  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand011, Function | MediumTest | Level2)2405 HWTEST_F(CodecComponentTestAdditional, testSendCommand011, Function | MediumTest | Level2)
2406 {
2407     ASSERT_TRUE(g_component != nullptr);
2408     std::vector<int8_t> cmdData;
2409     int32_t ret = g_component->SendCommand(CODEC_COMMAND_FLUSH, -1, cmdData);
2410     ASSERT_NE(ret, HDF_SUCCESS);
2411 }
2412 /**
2413  * @tc.number  SUB_Driver_Codec_SendCommand_1200
2414  * @tc.name  testSendCommand012
2415  * @tc.desc  The first and second parameters are CODEC_COMMAND_FLUSH and 0. SendCommand is error.
2416  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand012, Function | MediumTest | Level2)2417 HWTEST_F(CodecComponentTestAdditional, testSendCommand012, Function | MediumTest | Level2)
2418 {
2419     ASSERT_TRUE(g_component != nullptr);
2420     std::vector<int8_t> cmdData;
2421     int32_t ret = g_component->SendCommand(CODEC_COMMAND_FLUSH, 0, cmdData);
2422     ASSERT_NE(ret, HDF_SUCCESS);
2423 }
2424 /**
2425  * @tc.number  SUB_Driver_Codec_SendCommand_1300
2426  * @tc.name  testSendCommand013
2427  * @tc.desc  The first and second parameters are CODEC_COMMAND_FLUSH and 1. SendCommand is error.
2428  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand013, Function | MediumTest | Level2)2429 HWTEST_F(CodecComponentTestAdditional, testSendCommand013, Function | MediumTest | Level2)
2430 {
2431     ASSERT_TRUE(g_component != nullptr);
2432     std::vector<int8_t> cmdData;
2433     int32_t ret = g_component->SendCommand(CODEC_COMMAND_FLUSH, 1, cmdData);
2434     ASSERT_NE(ret, HDF_SUCCESS);
2435 }
2436 #endif
2437 /**
2438  * @tc.number  SUB_Driver_Codec_SendCommand_1400
2439  * @tc.name  testSendCommand014
2440  * @tc.desc  The first and second parameters are CODEC_COMMAND_FLUSH and CODEC_STATE_PAUSE. SendCommand is error.
2441  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand014, Function | MediumTest | Level2)2442 HWTEST_F(CodecComponentTestAdditional, testSendCommand014, Function | MediumTest | Level2)
2443 {
2444     ASSERT_TRUE(g_component != nullptr);
2445     std::vector<int8_t> cmdData;
2446     int32_t ret = g_component->SendCommand(CODEC_COMMAND_FLUSH, CODEC_STATE_PAUSE, cmdData);
2447     ASSERT_NE(ret, HDF_SUCCESS);
2448 }
2449 /**
2450  * @tc.number  SUB_Driver_Codec_SendCommand_1500
2451  * @tc.name  testSendCommand015
2452  * @tc.desc  The first and second parameters are CODEC_COMMAND_PORT_DISABLE and -1. SendCommand is successful.
2453  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand015, Function | MediumTest | Level1)2454 HWTEST_F(CodecComponentTestAdditional, testSendCommand015, Function | MediumTest | Level1)
2455 {
2456     ASSERT_TRUE(g_component != nullptr);
2457     std::vector<int8_t> cmdData;
2458     int32_t ret = g_component->SendCommand(CODEC_COMMAND_PORT_DISABLE, -1, cmdData);
2459     ASSERT_EQ(ret, HDF_SUCCESS);
2460 }
2461 /**
2462  * @tc.number  SUB_Driver_Codec_SendCommand_1600
2463  * @tc.name  testSendCommand016
2464  * @tc.desc  The first and second parameters are CODEC_COMMAND_PORT_DISABLE and 0. SendCommand is successful.
2465  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand016, Function | MediumTest | Level1)2466 HWTEST_F(CodecComponentTestAdditional, testSendCommand016, Function | MediumTest | Level1)
2467 {
2468     ASSERT_TRUE(g_component != nullptr);
2469     std::vector<int8_t> cmdData;
2470     int32_t ret = g_component->SendCommand(CODEC_COMMAND_PORT_DISABLE, 0, cmdData);
2471     ASSERT_EQ(ret, HDF_SUCCESS);
2472 }
2473 /**
2474  * @tc.number  SUB_Driver_Codec_SendCommand_1700
2475  * @tc.name  testSendCommand017
2476  * @tc.desc  The first and second parameters are CODEC_COMMAND_PORT_DISABLE and 1. SendCommand is successful.
2477  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand017, Function | MediumTest | Level1)2478 HWTEST_F(CodecComponentTestAdditional, testSendCommand017, Function | MediumTest | Level1)
2479 {
2480     ASSERT_TRUE(g_component != nullptr);
2481     std::vector<int8_t> cmdData;
2482     int32_t ret = g_component->SendCommand(CODEC_COMMAND_PORT_DISABLE, 1, cmdData);
2483     ASSERT_EQ(ret, HDF_SUCCESS);
2484 }
2485 #ifdef SUPPORT_OMX
2486 /**
2487  * @tc.number  SUB_Driver_Codec_SendCommand_1800
2488  * @tc.name  testSendCommand018
2489  * @tc.desc  The first and second parameters are CODEC_COMMAND_PORT_DISABLE and CODEC_STATE_PAUSE. SendCommand is error.
2490  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand018, Function | MediumTest | Level2)2491 HWTEST_F(CodecComponentTestAdditional, testSendCommand018, Function | MediumTest | Level2)
2492 {
2493     ASSERT_TRUE(g_component != nullptr);
2494     std::vector<int8_t> cmdData;
2495     int32_t ret = g_component->SendCommand(CODEC_COMMAND_PORT_DISABLE, CODEC_STATE_PAUSE, cmdData);
2496     ASSERT_NE(ret, HDF_SUCCESS);
2497 }
2498 /**
2499  * @tc.number  SUB_Driver_Codec_SendCommand_1900
2500  * @tc.name  testSendCommand019
2501  * @tc.desc  The first and second parameters are CODEC_COMMAND_PORT_ENABLE and -1. SendCommand is error.
2502  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand019, Function | MediumTest | Level2)2503 HWTEST_F(CodecComponentTestAdditional, testSendCommand019, Function | MediumTest | Level2)
2504 {
2505     ASSERT_TRUE(g_component != nullptr);
2506     std::vector<int8_t> cmdData;
2507     int32_t ret = g_component->SendCommand(CODEC_COMMAND_PORT_ENABLE, -1, cmdData);
2508     ASSERT_NE(ret, HDF_SUCCESS);
2509 }
2510 /**
2511  * @tc.number  SUB_Driver_Codec_SendCommand_2000
2512  * @tc.name  testSendCommand020
2513  * @tc.desc  The first and second parameters are CODEC_COMMAND_PORT_ENABLE and 0. SendCommand is error.
2514  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand020, Function | MediumTest | Level2)2515 HWTEST_F(CodecComponentTestAdditional, testSendCommand020, Function | MediumTest | Level2)
2516 {
2517     ASSERT_TRUE(g_component != nullptr);
2518     std::vector<int8_t> cmdData;
2519     int32_t ret = g_component->SendCommand(CODEC_COMMAND_PORT_ENABLE, 0, cmdData);
2520     ASSERT_NE(ret, HDF_SUCCESS);
2521 }
2522 /**
2523  * @tc.number  SUB_Driver_Codec_SendCommand_2100
2524  * @tc.name  testSendCommand021
2525  * @tc.desc  The first and second parameters are CODEC_COMMAND_PORT_ENABLE and 1. SendCommand is error.
2526  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand021, Function | MediumTest | Level2)2527 HWTEST_F(CodecComponentTestAdditional, testSendCommand021, Function | MediumTest | Level2)
2528 {
2529     ASSERT_TRUE(g_component != nullptr);
2530     std::vector<int8_t> cmdData;
2531     int32_t ret = g_component->SendCommand(CODEC_COMMAND_PORT_ENABLE, 1, cmdData);
2532     ASSERT_NE(ret, HDF_SUCCESS);
2533 }
2534 /**
2535  * @tc.number  SUB_Driver_Codec_SendCommand_2200
2536  * @tc.name  testSendCommand022
2537  * @tc.desc  The first and second parameters are CODEC_COMMAND_PORT_ENABLE and CODEC_STATE_PAUSE. SendCommand is error.
2538  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand022, Function | MediumTest | Level2)2539 HWTEST_F(CodecComponentTestAdditional, testSendCommand022, Function | MediumTest | Level2)
2540 {
2541     ASSERT_TRUE(g_component != nullptr);
2542     std::vector<int8_t> cmdData;
2543     int32_t ret = g_component->SendCommand(CODEC_COMMAND_PORT_ENABLE, CODEC_STATE_PAUSE, cmdData);
2544     ASSERT_NE(ret, HDF_SUCCESS);
2545 }
2546 /**
2547  * @tc.number  SUB_Driver_Codec_SendCommand_2300
2548  * @tc.name  testSendCommand023
2549  * @tc.desc  The first and second parameters are CODEC_COMMAND_MARK_BUFFER and -1. SendCommand is error.
2550  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand023, Function | MediumTest | Level2)2551 HWTEST_F(CodecComponentTestAdditional, testSendCommand023, Function | MediumTest | Level2)
2552 {
2553     ASSERT_TRUE(g_component != nullptr);
2554     std::vector<int8_t> cmdData;
2555     int32_t ret = g_component->SendCommand(CODEC_COMMAND_MARK_BUFFER, -1, cmdData);
2556     ASSERT_NE(ret, HDF_SUCCESS);
2557 }
2558 /**
2559  * @tc.number  SUB_Driver_Codec_SendCommand_2400
2560  * @tc.name  testSendCommand024
2561  * @tc.desc  The first and second parameters are CODEC_COMMAND_MARK_BUFFER and 0. SendCommand is error.
2562  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand024, Function | MediumTest | Level2)2563 HWTEST_F(CodecComponentTestAdditional, testSendCommand024, Function | MediumTest | Level2)
2564 {
2565     ASSERT_TRUE(g_component != nullptr);
2566     std::vector<int8_t> cmdData;
2567     int32_t ret = g_component->SendCommand(CODEC_COMMAND_MARK_BUFFER, 0, cmdData);
2568     ASSERT_NE(ret, HDF_SUCCESS);
2569 }
2570 /**
2571  * @tc.number  SUB_Driver_Codec_SendCommand_2500
2572  * @tc.name  testSendCommand025
2573  * @tc.desc  The first and second parameters are CODEC_COMMAND_MARK_BUFFER and 1. SendCommand is error.
2574  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand025, Function | MediumTest | Level2)2575 HWTEST_F(CodecComponentTestAdditional, testSendCommand025, Function | MediumTest | Level2)
2576 {
2577     ASSERT_TRUE(g_component != nullptr);
2578     std::vector<int8_t> cmdData;
2579     int32_t ret = g_component->SendCommand(CODEC_COMMAND_MARK_BUFFER, 1, cmdData);
2580     ASSERT_NE(ret, HDF_SUCCESS);
2581 }
2582 /**
2583  * @tc.number  SUB_Driver_Codec_SendCommand_2600
2584  * @tc.name  testSendCommand026
2585  * @tc.desc  The first and second parameters are CODEC_COMMAND_MARK_BUFFER and CODEC_STATE_PAUSE. SendCommand is error.
2586  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand026, Function | MediumTest | Level2)2587 HWTEST_F(CodecComponentTestAdditional, testSendCommand026, Function | MediumTest | Level2)
2588 {
2589     ASSERT_TRUE(g_component != nullptr);
2590     std::vector<int8_t> cmdData;
2591     int32_t ret = g_component->SendCommand(CODEC_COMMAND_MARK_BUFFER, CODEC_STATE_PAUSE, cmdData);
2592     ASSERT_NE(ret, HDF_SUCCESS);
2593 }
2594 /**
2595  * @tc.number  SUB_Driver_Codec_SendCommand_2700
2596  * @tc.name  testSendCommand027
2597  * @tc.desc  The first and second parameters are CODEC_COMMAND_KHRONOS_EXTENSIONS and -1. SendCommand is successful.
2598  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand027, Function | MediumTest | Level1)2599 HWTEST_F(CodecComponentTestAdditional, testSendCommand027, Function | MediumTest | Level1)
2600 {
2601     ASSERT_TRUE(g_component != nullptr);
2602     std::vector<int8_t> cmdData;
2603     int32_t ret = g_component->SendCommand(CODEC_COMMAND_KHRONOS_EXTENSIONS, -1, cmdData);
2604     ASSERT_EQ(ret, HDF_SUCCESS);
2605 }
2606 /**
2607  * @tc.number  SUB_Driver_Codec_SendCommand_2800
2608  * @tc.name  testSendCommand028
2609  * @tc.desc  The first and second parameters are CODEC_COMMAND_KHRONOS_EXTENSIONS and 0. SendCommand is successful.
2610  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand028, Function | MediumTest | Level1)2611 HWTEST_F(CodecComponentTestAdditional, testSendCommand028, Function | MediumTest | Level1)
2612 {
2613     ASSERT_TRUE(g_component != nullptr);
2614     std::vector<int8_t> cmdData;
2615     int32_t ret = g_component->SendCommand(CODEC_COMMAND_KHRONOS_EXTENSIONS, 0, cmdData);
2616     ASSERT_EQ(ret, HDF_SUCCESS);
2617 }
2618 /**
2619  * @tc.number  SUB_Driver_Codec_SendCommand_2900
2620  * @tc.name  testSendCommand029
2621  * @tc.desc  The first and second parameters are CODEC_COMMAND_KHRONOS_EXTENSIONS and 1. SendCommand is successful.
2622  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand029, Function | MediumTest | Level1)2623 HWTEST_F(CodecComponentTestAdditional, testSendCommand029, Function | MediumTest | Level1)
2624 {
2625     ASSERT_TRUE(g_component != nullptr);
2626     std::vector<int8_t> cmdData;
2627     int32_t ret = g_component->SendCommand(CODEC_COMMAND_KHRONOS_EXTENSIONS, 1, cmdData);
2628     ASSERT_EQ(ret, HDF_SUCCESS);
2629 }
2630 /**
2631  * @tc.number  SUB_Driver_Codec_SendCommand_3000
2632  * @tc.name  testSendCommand030
2633  * @tc.desc  The first and second parameters are CODEC_COMMAND_KHRONOS_EXTENSIONS and CODEC_STATE_PAUSE. SendCommand is
2634  * successful.
2635  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand030, Function | MediumTest | Level1)2636 HWTEST_F(CodecComponentTestAdditional, testSendCommand030, Function | MediumTest | Level1)
2637 {
2638     ASSERT_TRUE(g_component != nullptr);
2639     std::vector<int8_t> cmdData;
2640     int32_t ret = g_component->SendCommand(CODEC_COMMAND_KHRONOS_EXTENSIONS, CODEC_STATE_PAUSE, cmdData);
2641     ASSERT_EQ(ret, HDF_SUCCESS);
2642 }
2643 /**
2644  * @tc.number  SUB_Driver_Codec_SendCommand_3100
2645  * @tc.name  testSendCommand031
2646  * @tc.desc  The first and second parameters are CODEC_COMMAND_VENDOR_START_UNUSED and -1. SendCommand is successful.
2647  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand031, Function | MediumTest | Level1)2648 HWTEST_F(CodecComponentTestAdditional, testSendCommand031, Function | MediumTest | Level1)
2649 {
2650     ASSERT_TRUE(g_component != nullptr);
2651     std::vector<int8_t> cmdData;
2652     int32_t ret = g_component->SendCommand(CODEC_COMMAND_VENDOR_START_UNUSED, -1, cmdData);
2653     ASSERT_EQ(ret, HDF_SUCCESS);
2654 }
2655 /**
2656  * @tc.number  SUB_Driver_Codec_SendCommand_3200
2657  * @tc.name  testSendCommand032
2658  * @tc.desc  The first and second parameters are CODEC_COMMAND_VENDOR_START_UNUSED and 0. SendCommand is successful.
2659  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand032, Function | MediumTest | Level1)2660 HWTEST_F(CodecComponentTestAdditional, testSendCommand032, Function | MediumTest | Level1)
2661 {
2662     ASSERT_TRUE(g_component != nullptr);
2663     std::vector<int8_t> cmdData;
2664     int32_t ret = g_component->SendCommand(CODEC_COMMAND_VENDOR_START_UNUSED, 0, cmdData);
2665     ASSERT_EQ(ret, HDF_SUCCESS);
2666 }
2667 /**
2668  * @tc.number  SUB_Driver_Codec_SendCommand_3300
2669  * @tc.name  testSendCommand033
2670  * @tc.desc  The first and second parameters are CODEC_COMMAND_VENDOR_START_UNUSED and 1. SendCommand is successful.
2671  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand033, Function | MediumTest | Level1)2672 HWTEST_F(CodecComponentTestAdditional, testSendCommand033, Function | MediumTest | Level1)
2673 {
2674     ASSERT_TRUE(g_component != nullptr);
2675     std::vector<int8_t> cmdData;
2676     int32_t ret = g_component->SendCommand(CODEC_COMMAND_VENDOR_START_UNUSED, 1, cmdData);
2677     ASSERT_EQ(ret, HDF_SUCCESS);
2678 }
2679 /**
2680  * @tc.number  SUB_Driver_Codec_SendCommand_3400
2681  * @tc.name  testSendCommand034
2682  * @tc.desc  The first and second parameters are CODEC_COMMAND_VENDOR_START_UNUSED and CODEC_STATE_PAUSE. SendCommand is
2683  * successful.
2684  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand034, Function | MediumTest | Level1)2685 HWTEST_F(CodecComponentTestAdditional, testSendCommand034, Function | MediumTest | Level1)
2686 {
2687     ASSERT_TRUE(g_component != nullptr);
2688     std::vector<int8_t> cmdData;
2689     int32_t ret = g_component->SendCommand(CODEC_COMMAND_VENDOR_START_UNUSED, CODEC_STATE_PAUSE, cmdData);
2690     ASSERT_EQ(ret, HDF_SUCCESS);
2691 }
2692 /**
2693  * @tc.number  SUB_Driver_Codec_SendCommand_3500
2694  * @tc.name  testSendCommand035
2695  * @tc.desc  The first and second parameters are CODEC_COMMAND_MAX and -1. SendCommand is successful.
2696  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand035, Function | MediumTest | Level1)2697 HWTEST_F(CodecComponentTestAdditional, testSendCommand035, Function | MediumTest | Level1)
2698 {
2699     ASSERT_TRUE(g_component != nullptr);
2700     std::vector<int8_t> cmdData;
2701     int32_t ret = g_component->SendCommand(CODEC_COMMAND_MAX, -1, cmdData);
2702     ASSERT_EQ(ret, HDF_SUCCESS);
2703 }
2704 /**
2705  * @tc.number  SUB_Driver_Codec_SendCommand_3600
2706  * @tc.name  testSendCommand036
2707  * @tc.desc  The first and second parameters are CODEC_COMMAND_MAX and 0. SendCommand is successful.
2708  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand036, Function | MediumTest | Level1)2709 HWTEST_F(CodecComponentTestAdditional, testSendCommand036, Function | MediumTest | Level1)
2710 {
2711     ASSERT_TRUE(g_component != nullptr);
2712     std::vector<int8_t> cmdData;
2713     int32_t ret = g_component->SendCommand(CODEC_COMMAND_MAX, 0, cmdData);
2714     ASSERT_EQ(ret, HDF_SUCCESS);
2715 }
2716 /**
2717  * @tc.number  SUB_Driver_Codec_SendCommand_3700
2718  * @tc.name  testSendCommand037
2719  * @tc.desc  The first and second parameters are CODEC_COMMAND_MAX and 1. SendCommand is successful.
2720  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand037, Function | MediumTest | Level1)2721 HWTEST_F(CodecComponentTestAdditional, testSendCommand037, Function | MediumTest | Level1)
2722 {
2723     ASSERT_TRUE(g_component != nullptr);
2724     std::vector<int8_t> cmdData;
2725     int32_t ret = g_component->SendCommand(CODEC_COMMAND_MAX, 1, cmdData);
2726     ASSERT_EQ(ret, HDF_SUCCESS);
2727 }
2728 /**
2729  * @tc.number  SUB_Driver_Codec_SendCommand_3800
2730  * @tc.name  testSendCommand038
2731  * @tc.desc  The first and second parameters are CODEC_COMMAND_MAX and CODEC_STATE_PAUSE. SendCommand is successful.
2732  */
HWTEST_F(CodecComponentTestAdditional, testSendCommand038, Function | MediumTest | Level1)2733 HWTEST_F(CodecComponentTestAdditional, testSendCommand038, Function | MediumTest | Level1)
2734 {
2735     ASSERT_TRUE(g_component != nullptr);
2736     std::vector<int8_t> cmdData;
2737     int32_t ret = g_component->SendCommand(CODEC_COMMAND_MAX, CODEC_STATE_PAUSE, cmdData);
2738     ASSERT_EQ(ret, HDF_SUCCESS);
2739 }
2740 #endif
2741 } // namespace