10485dae0Sopenharmony_ci/* 20485dae0Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 30485dae0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 40485dae0Sopenharmony_ci * you may not use this file except in compliance with the License. 50485dae0Sopenharmony_ci * You may obtain a copy of the License at 60485dae0Sopenharmony_ci * 70485dae0Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 80485dae0Sopenharmony_ci * 90485dae0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 100485dae0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 110485dae0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 120485dae0Sopenharmony_ci * See the License for the specific language governing permissions and 130485dae0Sopenharmony_ci * limitations under the License. 140485dae0Sopenharmony_ci */ 150485dae0Sopenharmony_ci 160485dae0Sopenharmony_ci#include <cstdlib> 170485dae0Sopenharmony_ci#include <cstring> 180485dae0Sopenharmony_ci#include <ctime> 190485dae0Sopenharmony_ci#include <string> 200485dae0Sopenharmony_ci 210485dae0Sopenharmony_ci#include "gtest/gtest.h" 220485dae0Sopenharmony_ci 230485dae0Sopenharmony_ci#include "client_executor/include/i_aie_client.inl" 240485dae0Sopenharmony_ci#include "service_dead_cb.h" 250485dae0Sopenharmony_ci 260485dae0Sopenharmony_ciusing namespace OHOS::AI; 270485dae0Sopenharmony_ciusing namespace testing::ext; 280485dae0Sopenharmony_ci 290485dae0Sopenharmony_cinamespace { 300485dae0Sopenharmony_ci const char * const INPUT_CHARACTER = "inputData"; 310485dae0Sopenharmony_ci const char * const CONFIG_DESCRIPTION = "config information"; 320485dae0Sopenharmony_ci const long long CLIENT_INFO_VERSION = 1; 330485dae0Sopenharmony_ci const int EXTEND_LENGTH = 10; 340485dae0Sopenharmony_ci const long long ALGORITHM_INFO_CLIENT_VERSION = 2; 350485dae0Sopenharmony_ci const int ALGORITHM_TYPE = 66; 360485dae0Sopenharmony_ci const long long ALGORITHM_VERSION = 2; 370485dae0Sopenharmony_ci const int OPERATE_ID = 2; 380485dae0Sopenharmony_ci const int REQUEST_ID = 3; 390485dae0Sopenharmony_ci const int CHAR_TYPE = 4; 400485dae0Sopenharmony_ci const char MIN_UPPER_CASE_CHAR = 'A'; 410485dae0Sopenharmony_ci const char MIN_LOWER_CASE_CHAR = 'a'; 420485dae0Sopenharmony_ci const char MIN_NUMERIC_CHAR = '0'; 430485dae0Sopenharmony_ci const char TRAILING_CHAR = '\0'; 440485dae0Sopenharmony_ci const int NUMBER_OF_ALPHABETS = 26; 450485dae0Sopenharmony_ci const int NUMBER_OF_DIGITS = 10; 460485dae0Sopenharmony_ci const int CHAR_TYPE_UPPER_CASE = 1; 470485dae0Sopenharmony_ci const int CHAR_TYPE_LOWER_CASE = 2; 480485dae0Sopenharmony_ci const int CHAR_TYPE_WHITE_SPACE = 3; 490485dae0Sopenharmony_ci const char WHITE_SPACE = ' '; 500485dae0Sopenharmony_ci} 510485dae0Sopenharmony_ci 520485dae0Sopenharmony_ciclass InitFunctionTest : public testing::Test { 530485dae0Sopenharmony_cipublic: 540485dae0Sopenharmony_ci // SetUpTestCase:The preset action of the test suite is executed before the first TestCase 550485dae0Sopenharmony_ci static void SetUpTestCase() {}; 560485dae0Sopenharmony_ci 570485dae0Sopenharmony_ci // TearDownTestCase:The test suite cleanup action is executed after the last TestCase 580485dae0Sopenharmony_ci static void TearDownTestCase() {}; 590485dae0Sopenharmony_ci 600485dae0Sopenharmony_ci // SetUp:Execute before each test case 610485dae0Sopenharmony_ci void SetUp() {}; 620485dae0Sopenharmony_ci 630485dae0Sopenharmony_ci // TearDown:Execute after each test case 640485dae0Sopenharmony_ci void TearDown() {}; 650485dae0Sopenharmony_ci}; 660485dae0Sopenharmony_ci 670485dae0Sopenharmony_cistatic void RandStr(const int len, char *str) 680485dae0Sopenharmony_ci{ 690485dae0Sopenharmony_ci srand(time(nullptr)); 700485dae0Sopenharmony_ci int i; 710485dae0Sopenharmony_ci for (i = 0; i < len - 1; ++i) { 720485dae0Sopenharmony_ci switch (rand() % CHAR_TYPE) { 730485dae0Sopenharmony_ci case CHAR_TYPE_UPPER_CASE: 740485dae0Sopenharmony_ci str[i] = MIN_UPPER_CASE_CHAR + rand() % NUMBER_OF_ALPHABETS; 750485dae0Sopenharmony_ci break; 760485dae0Sopenharmony_ci case CHAR_TYPE_LOWER_CASE: 770485dae0Sopenharmony_ci str[i] = MIN_LOWER_CASE_CHAR + rand() % NUMBER_OF_ALPHABETS; 780485dae0Sopenharmony_ci break; 790485dae0Sopenharmony_ci case CHAR_TYPE_WHITE_SPACE: 800485dae0Sopenharmony_ci str[i] = WHITE_SPACE; 810485dae0Sopenharmony_ci break; 820485dae0Sopenharmony_ci default: 830485dae0Sopenharmony_ci str[i] = MIN_NUMERIC_CHAR + rand() % NUMBER_OF_DIGITS; 840485dae0Sopenharmony_ci break; 850485dae0Sopenharmony_ci } 860485dae0Sopenharmony_ci } 870485dae0Sopenharmony_ci 880485dae0Sopenharmony_ci str[i] = TRAILING_CHAR; 890485dae0Sopenharmony_ci} 900485dae0Sopenharmony_ci 910485dae0Sopenharmony_ci/** 920485dae0Sopenharmony_ci * @tc.name: TestAieClientInitConfigInfo001 930485dae0Sopenharmony_ci * @tc.desc: Test initial execution of certain algorithm plugin. 940485dae0Sopenharmony_ci * @tc.type: FUNC 950485dae0Sopenharmony_ci * @tc.require: AR000F77NM 960485dae0Sopenharmony_ci */ 970485dae0Sopenharmony_ciHWTEST_F(InitFunctionTest, TestAieClientInitConfigInfo001, TestSize.Level1) 980485dae0Sopenharmony_ci{ 990485dae0Sopenharmony_ci HILOGI("[Test]Begin TestAieClientInitConfigInfo001."); 1000485dae0Sopenharmony_ci const char *str = INPUT_CHARACTER; 1010485dae0Sopenharmony_ci char *inputData = const_cast<char*>(str); 1020485dae0Sopenharmony_ci 1030485dae0Sopenharmony_ci char configDesc[21]; 1040485dae0Sopenharmony_ci RandStr(21, configDesc); 1050485dae0Sopenharmony_ci ConfigInfo configInfo {.description = configDesc}; 1060485dae0Sopenharmony_ci 1070485dae0Sopenharmony_ci ClientInfo clientInfo = { 1080485dae0Sopenharmony_ci .clientVersion = CLIENT_INFO_VERSION, 1090485dae0Sopenharmony_ci .clientId = -1, 1100485dae0Sopenharmony_ci .sessionId = -1, 1110485dae0Sopenharmony_ci .serverUid = INVALID_UID, 1120485dae0Sopenharmony_ci .clientUid = INVALID_UID, 1130485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 1140485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 1150485dae0Sopenharmony_ci }; 1160485dae0Sopenharmony_ci 1170485dae0Sopenharmony_ci AlgorithmInfo algoInfo = { 1180485dae0Sopenharmony_ci .clientVersion = ALGORITHM_INFO_CLIENT_VERSION, 1190485dae0Sopenharmony_ci .isAsync = true, 1200485dae0Sopenharmony_ci .algorithmType = ALGORITHM_TYPE, 1210485dae0Sopenharmony_ci .algorithmVersion = ALGORITHM_VERSION, 1220485dae0Sopenharmony_ci .isCloud = true, 1230485dae0Sopenharmony_ci .operateId = OPERATE_ID, 1240485dae0Sopenharmony_ci .requestId = REQUEST_ID, 1250485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 1260485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 1270485dae0Sopenharmony_ci }; 1280485dae0Sopenharmony_ci 1290485dae0Sopenharmony_ci ServiceDeadCb cb = ServiceDeadCb(); 1300485dae0Sopenharmony_ci int initResult = AieClientInit(configInfo, clientInfo, algoInfo, &cb); 1310485dae0Sopenharmony_ci ASSERT_EQ(initResult, RETCODE_SUCCESS); 1320485dae0Sopenharmony_ci ASSERT_TRUE(clientInfo.clientId > 0); 1330485dae0Sopenharmony_ci ASSERT_TRUE(clientInfo.sessionId > 0); 1340485dae0Sopenharmony_ci 1350485dae0Sopenharmony_ci int destroyResult = AieClientDestroy(clientInfo); 1360485dae0Sopenharmony_ci ASSERT_EQ(destroyResult, RETCODE_SUCCESS); 1370485dae0Sopenharmony_ci} 1380485dae0Sopenharmony_ci 1390485dae0Sopenharmony_ci/** 1400485dae0Sopenharmony_ci * @tc.name: TestAieClientInitConfigInfo002 1410485dae0Sopenharmony_ci * @tc.desc: Test initial execution of certain algorithm plugin with over-size config message. 1420485dae0Sopenharmony_ci * @tc.type: FUNC 1430485dae0Sopenharmony_ci * @tc.require: AR000F77NM 1440485dae0Sopenharmony_ci */ 1450485dae0Sopenharmony_ciHWTEST_F(InitFunctionTest, TestAieClientInitConfigInfo002, TestSize.Level1) 1460485dae0Sopenharmony_ci{ 1470485dae0Sopenharmony_ci HILOGI("[Test]Begin TestAieClientInitConfigInfo002."); 1480485dae0Sopenharmony_ci const char *str = INPUT_CHARACTER; 1490485dae0Sopenharmony_ci char *inputData = const_cast<char*>(str); 1500485dae0Sopenharmony_ci 1510485dae0Sopenharmony_ci char configDesc[129]; 1520485dae0Sopenharmony_ci RandStr(129, configDesc); 1530485dae0Sopenharmony_ci ConfigInfo configInfo {.description = configDesc}; 1540485dae0Sopenharmony_ci 1550485dae0Sopenharmony_ci ClientInfo clientInfo = { 1560485dae0Sopenharmony_ci .clientVersion = CLIENT_INFO_VERSION, 1570485dae0Sopenharmony_ci .clientId = -1, 1580485dae0Sopenharmony_ci .sessionId = -1, 1590485dae0Sopenharmony_ci .serverUid = INVALID_UID, 1600485dae0Sopenharmony_ci .clientUid = INVALID_UID, 1610485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 1620485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 1630485dae0Sopenharmony_ci }; 1640485dae0Sopenharmony_ci 1650485dae0Sopenharmony_ci AlgorithmInfo algoInfo = { 1660485dae0Sopenharmony_ci .clientVersion = ALGORITHM_INFO_CLIENT_VERSION, 1670485dae0Sopenharmony_ci .isAsync = true, 1680485dae0Sopenharmony_ci .algorithmType = ALGORITHM_TYPE, 1690485dae0Sopenharmony_ci .algorithmVersion = ALGORITHM_VERSION, 1700485dae0Sopenharmony_ci .isCloud = true, 1710485dae0Sopenharmony_ci .operateId = OPERATE_ID, 1720485dae0Sopenharmony_ci .requestId = REQUEST_ID, 1730485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 1740485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 1750485dae0Sopenharmony_ci }; 1760485dae0Sopenharmony_ci 1770485dae0Sopenharmony_ci ServiceDeadCb cb = ServiceDeadCb(); 1780485dae0Sopenharmony_ci int initResult = AieClientInit(configInfo, clientInfo, algoInfo, &cb); 1790485dae0Sopenharmony_ci ASSERT_EQ(initResult, RETCODE_SUCCESS); 1800485dae0Sopenharmony_ci ASSERT_TRUE(clientInfo.clientId > 0); 1810485dae0Sopenharmony_ci ASSERT_TRUE(clientInfo.sessionId > 0); 1820485dae0Sopenharmony_ci 1830485dae0Sopenharmony_ci int destroyResult = AieClientDestroy(clientInfo); 1840485dae0Sopenharmony_ci ASSERT_EQ(destroyResult, RETCODE_SUCCESS); 1850485dae0Sopenharmony_ci} 1860485dae0Sopenharmony_ci 1870485dae0Sopenharmony_ci/** 1880485dae0Sopenharmony_ci * @tc.name: TestAieClientInitConfigInfo003 1890485dae0Sopenharmony_ci * @tc.desc: Test initial execution of certain algorithm plugin with much shorter(length = 1) config message. 1900485dae0Sopenharmony_ci * @tc.type: FUNC 1910485dae0Sopenharmony_ci * @tc.require: AR000F77NM 1920485dae0Sopenharmony_ci */ 1930485dae0Sopenharmony_ciHWTEST_F(InitFunctionTest, TestAieClientInitConfigInfo003, TestSize.Level1) 1940485dae0Sopenharmony_ci{ 1950485dae0Sopenharmony_ci HILOGI("[Test]Begin TestAieClientInitConfigInfo003."); 1960485dae0Sopenharmony_ci const char *str = INPUT_CHARACTER; 1970485dae0Sopenharmony_ci char *inputData = const_cast<char*>(str); 1980485dae0Sopenharmony_ci 1990485dae0Sopenharmony_ci char configDesc[1]; 2000485dae0Sopenharmony_ci RandStr(1, configDesc); 2010485dae0Sopenharmony_ci ConfigInfo configInfo {.description = configDesc}; 2020485dae0Sopenharmony_ci 2030485dae0Sopenharmony_ci ClientInfo clientInfo = { 2040485dae0Sopenharmony_ci .clientVersion = CLIENT_INFO_VERSION, 2050485dae0Sopenharmony_ci .clientId = -1, 2060485dae0Sopenharmony_ci .sessionId = -1, 2070485dae0Sopenharmony_ci .serverUid = INVALID_UID, 2080485dae0Sopenharmony_ci .clientUid = INVALID_UID, 2090485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 2100485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 2110485dae0Sopenharmony_ci }; 2120485dae0Sopenharmony_ci 2130485dae0Sopenharmony_ci AlgorithmInfo algoInfo = { 2140485dae0Sopenharmony_ci .clientVersion = ALGORITHM_INFO_CLIENT_VERSION, 2150485dae0Sopenharmony_ci .isAsync = true, 2160485dae0Sopenharmony_ci .algorithmType = ALGORITHM_TYPE, 2170485dae0Sopenharmony_ci .algorithmVersion = ALGORITHM_VERSION, 2180485dae0Sopenharmony_ci .isCloud = true, 2190485dae0Sopenharmony_ci .operateId = OPERATE_ID, 2200485dae0Sopenharmony_ci .requestId = REQUEST_ID, 2210485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 2220485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 2230485dae0Sopenharmony_ci }; 2240485dae0Sopenharmony_ci 2250485dae0Sopenharmony_ci ServiceDeadCb cb = ServiceDeadCb(); 2260485dae0Sopenharmony_ci int initResult = AieClientInit(configInfo, clientInfo, algoInfo, &cb); 2270485dae0Sopenharmony_ci ASSERT_EQ(initResult, RETCODE_SUCCESS); 2280485dae0Sopenharmony_ci ASSERT_TRUE(clientInfo.clientId > 0); 2290485dae0Sopenharmony_ci ASSERT_TRUE(clientInfo.sessionId > 0); 2300485dae0Sopenharmony_ci 2310485dae0Sopenharmony_ci int destroyResult = AieClientDestroy(clientInfo); 2320485dae0Sopenharmony_ci ASSERT_EQ(destroyResult, RETCODE_SUCCESS); 2330485dae0Sopenharmony_ci} 2340485dae0Sopenharmony_ci 2350485dae0Sopenharmony_ci/** 2360485dae0Sopenharmony_ci * @tc.name: TestAieClientInitClientInfo001 2370485dae0Sopenharmony_ci * @tc.desc: Test initial execution of certain algorithm plugin with 'clientId' being -1. 2380485dae0Sopenharmony_ci * @tc.type: FUNC 2390485dae0Sopenharmony_ci * @tc.require: AR000F77NM 2400485dae0Sopenharmony_ci */ 2410485dae0Sopenharmony_ciHWTEST_F(InitFunctionTest, TestAieClientInitClientInfo001, TestSize.Level1) 2420485dae0Sopenharmony_ci{ 2430485dae0Sopenharmony_ci HILOGI("[Test]Begin TestAieClientInitClientInfo001."); 2440485dae0Sopenharmony_ci const char *str = INPUT_CHARACTER; 2450485dae0Sopenharmony_ci char *inputData = const_cast<char*>(str); 2460485dae0Sopenharmony_ci 2470485dae0Sopenharmony_ci ConfigInfo configInfo {.description = CONFIG_DESCRIPTION}; 2480485dae0Sopenharmony_ci 2490485dae0Sopenharmony_ci ClientInfo clientInfo = { 2500485dae0Sopenharmony_ci .clientVersion = CLIENT_INFO_VERSION, 2510485dae0Sopenharmony_ci .clientId = -1, 2520485dae0Sopenharmony_ci .sessionId = -1, 2530485dae0Sopenharmony_ci .serverUid = INVALID_UID, 2540485dae0Sopenharmony_ci .clientUid = INVALID_UID, 2550485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 2560485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 2570485dae0Sopenharmony_ci }; 2580485dae0Sopenharmony_ci 2590485dae0Sopenharmony_ci AlgorithmInfo algoInfo = { 2600485dae0Sopenharmony_ci .clientVersion = ALGORITHM_INFO_CLIENT_VERSION, 2610485dae0Sopenharmony_ci .isAsync = true, 2620485dae0Sopenharmony_ci .algorithmType = ALGORITHM_TYPE, 2630485dae0Sopenharmony_ci .algorithmVersion = ALGORITHM_VERSION, 2640485dae0Sopenharmony_ci .isCloud = true, 2650485dae0Sopenharmony_ci .operateId = OPERATE_ID, 2660485dae0Sopenharmony_ci .requestId = REQUEST_ID, 2670485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 2680485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 2690485dae0Sopenharmony_ci }; 2700485dae0Sopenharmony_ci 2710485dae0Sopenharmony_ci ServiceDeadCb cb = ServiceDeadCb(); 2720485dae0Sopenharmony_ci int initResult = AieClientInit(configInfo, clientInfo, algoInfo, &cb); 2730485dae0Sopenharmony_ci ASSERT_EQ(initResult, RETCODE_SUCCESS); 2740485dae0Sopenharmony_ci 2750485dae0Sopenharmony_ci int destroyResult = AieClientDestroy(clientInfo); 2760485dae0Sopenharmony_ci ASSERT_EQ(destroyResult, RETCODE_SUCCESS); 2770485dae0Sopenharmony_ci} 2780485dae0Sopenharmony_ci 2790485dae0Sopenharmony_ci/** 2800485dae0Sopenharmony_ci * @tc.name: TestAieClientInitAlgoInfo001 2810485dae0Sopenharmony_ci * @tc.desc: Test initial execution of certain algorithm plugin with client 2820485dae0Sopenharmony_ci * with 'clientId' being -1 and 'isAsync' being true. 2830485dae0Sopenharmony_ci * @tc.type: FUNC 2840485dae0Sopenharmony_ci * @tc.require: AR000F77NM 2850485dae0Sopenharmony_ci */ 2860485dae0Sopenharmony_ciHWTEST_F(InitFunctionTest, TestAieClientInitAlgoInfo001, TestSize.Level1) 2870485dae0Sopenharmony_ci{ 2880485dae0Sopenharmony_ci HILOGI("[Test]Begin TestAieClientInitAlgoInfo001."); 2890485dae0Sopenharmony_ci const char *str = INPUT_CHARACTER; 2900485dae0Sopenharmony_ci char *inputData = const_cast<char*>(str); 2910485dae0Sopenharmony_ci 2920485dae0Sopenharmony_ci ConfigInfo configInfo {.description = CONFIG_DESCRIPTION}; 2930485dae0Sopenharmony_ci 2940485dae0Sopenharmony_ci ClientInfo clientInfo = { 2950485dae0Sopenharmony_ci .clientVersion = CLIENT_INFO_VERSION, 2960485dae0Sopenharmony_ci .clientId = -1, 2970485dae0Sopenharmony_ci .sessionId = -1, 2980485dae0Sopenharmony_ci .serverUid = INVALID_UID, 2990485dae0Sopenharmony_ci .clientUid = INVALID_UID, 3000485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 3010485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 3020485dae0Sopenharmony_ci }; 3030485dae0Sopenharmony_ci 3040485dae0Sopenharmony_ci AlgorithmInfo algoInfo = { 3050485dae0Sopenharmony_ci .clientVersion = ALGORITHM_INFO_CLIENT_VERSION, 3060485dae0Sopenharmony_ci .isAsync = true, 3070485dae0Sopenharmony_ci .algorithmType = ALGORITHM_TYPE, 3080485dae0Sopenharmony_ci .algorithmVersion = ALGORITHM_VERSION, 3090485dae0Sopenharmony_ci .isCloud = true, 3100485dae0Sopenharmony_ci .operateId = OPERATE_ID, 3110485dae0Sopenharmony_ci .requestId = REQUEST_ID, 3120485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 3130485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 3140485dae0Sopenharmony_ci }; 3150485dae0Sopenharmony_ci 3160485dae0Sopenharmony_ci ServiceDeadCb cb = ServiceDeadCb(); 3170485dae0Sopenharmony_ci int initResult = AieClientInit(configInfo, clientInfo, algoInfo, &cb); 3180485dae0Sopenharmony_ci ASSERT_EQ(initResult, RETCODE_SUCCESS); 3190485dae0Sopenharmony_ci 3200485dae0Sopenharmony_ci int destroyResult = AieClientDestroy(clientInfo); 3210485dae0Sopenharmony_ci ASSERT_EQ(destroyResult, RETCODE_SUCCESS); 3220485dae0Sopenharmony_ci} 3230485dae0Sopenharmony_ci 3240485dae0Sopenharmony_ci/** 3250485dae0Sopenharmony_ci * @tc.name: TestAieClientInitAlgoInfo002 3260485dae0Sopenharmony_ci * @tc.desc: Test initial execution of certain algorithm plugin with client 3270485dae0Sopenharmony_ci * with 'clientId' being -1 and 'isAsync' being false. 3280485dae0Sopenharmony_ci * @tc.type: FUNC 3290485dae0Sopenharmony_ci * @tc.require: AR000F77NM 3300485dae0Sopenharmony_ci */ 3310485dae0Sopenharmony_ciHWTEST_F(InitFunctionTest, TestAieClientInitAlgoInfo002, TestSize.Level1) 3320485dae0Sopenharmony_ci{ 3330485dae0Sopenharmony_ci HILOGI("[Test]Begin TestAieClientInitAlgoInfo002."); 3340485dae0Sopenharmony_ci const char *str = INPUT_CHARACTER; 3350485dae0Sopenharmony_ci char *inputData = const_cast<char*>(str); 3360485dae0Sopenharmony_ci 3370485dae0Sopenharmony_ci ConfigInfo configInfo {.description = CONFIG_DESCRIPTION}; 3380485dae0Sopenharmony_ci 3390485dae0Sopenharmony_ci ClientInfo clientInfo = { 3400485dae0Sopenharmony_ci .clientVersion = CLIENT_INFO_VERSION, 3410485dae0Sopenharmony_ci .clientId = -1, 3420485dae0Sopenharmony_ci .sessionId = -1, 3430485dae0Sopenharmony_ci .serverUid = INVALID_UID, 3440485dae0Sopenharmony_ci .clientUid = INVALID_UID, 3450485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 3460485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 3470485dae0Sopenharmony_ci }; 3480485dae0Sopenharmony_ci 3490485dae0Sopenharmony_ci AlgorithmInfo algoInfo = { 3500485dae0Sopenharmony_ci .clientVersion = ALGORITHM_INFO_CLIENT_VERSION, 3510485dae0Sopenharmony_ci .isAsync = false, 3520485dae0Sopenharmony_ci .algorithmType = ALGORITHM_TYPE, 3530485dae0Sopenharmony_ci .algorithmVersion = ALGORITHM_VERSION, 3540485dae0Sopenharmony_ci .isCloud = true, 3550485dae0Sopenharmony_ci .operateId = OPERATE_ID, 3560485dae0Sopenharmony_ci .requestId = REQUEST_ID, 3570485dae0Sopenharmony_ci .extendLen = EXTEND_LENGTH, 3580485dae0Sopenharmony_ci .extendMsg = reinterpret_cast<unsigned char*>(inputData), 3590485dae0Sopenharmony_ci }; 3600485dae0Sopenharmony_ci 3610485dae0Sopenharmony_ci ServiceDeadCb cb = ServiceDeadCb(); 3620485dae0Sopenharmony_ci int initResult = AieClientInit(configInfo, clientInfo, algoInfo, &cb); 3630485dae0Sopenharmony_ci ASSERT_EQ(initResult, RETCODE_SUCCESS); 3640485dae0Sopenharmony_ci 3650485dae0Sopenharmony_ci int destroyResult = AieClientDestroy(clientInfo); 3660485dae0Sopenharmony_ci ASSERT_EQ(destroyResult, RETCODE_SUCCESS); 3670485dae0Sopenharmony_ci} 368