19762338dSopenharmony_ci/* 29762338dSopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd. 39762338dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 49762338dSopenharmony_ci * you may not use this file except in compliance with the License. 59762338dSopenharmony_ci * You may obtain a copy of the License at 69762338dSopenharmony_ci * 79762338dSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 89762338dSopenharmony_ci * 99762338dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 109762338dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 119762338dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 129762338dSopenharmony_ci * See the License for the specific language governing permissions and 139762338dSopenharmony_ci * limitations under the License. 149762338dSopenharmony_ci */ 159762338dSopenharmony_ci 169762338dSopenharmony_ci#include "face_auth_hdi.h" 179762338dSopenharmony_ci 189762338dSopenharmony_ci#include <hdf_base.h> 199762338dSopenharmony_ci 209762338dSopenharmony_ci#include "iconsumer_surface.h" 219762338dSopenharmony_ci 229762338dSopenharmony_ci#include "iam_hat_test.h" 239762338dSopenharmony_ci 249762338dSopenharmony_ci#define LOG_LABEL OHOS::UserIam::Common::LABEL_FACE_AUTH_IMPL 259762338dSopenharmony_ci 269762338dSopenharmony_ciusing namespace std; 279762338dSopenharmony_ciusing namespace testing::ext; 289762338dSopenharmony_ciusing namespace OHOS; 299762338dSopenharmony_ciusing namespace OHOS::UserIam::Common; 309762338dSopenharmony_ciusing namespace OHOS::HDI::FaceAuth; 319762338dSopenharmony_ci 329762338dSopenharmony_cistatic AllInOneExecutorImpl g_executorImpl; 339762338dSopenharmony_cistatic Parcel parcel; 349762338dSopenharmony_cibool g_onResultFlag = false; 359762338dSopenharmony_cibool g_onTipFlag = false; 369762338dSopenharmony_cibool g_onSaCommandsFlag = false; 379762338dSopenharmony_ci 389762338dSopenharmony_civoid UserIamFaceAuthTestAdditional::SetUpTestCase() 399762338dSopenharmony_ci{ 409762338dSopenharmony_ci} 419762338dSopenharmony_ci 429762338dSopenharmony_civoid UserIamFaceAuthTestAdditional::TearDownTestCase() 439762338dSopenharmony_ci{ 449762338dSopenharmony_ci} 459762338dSopenharmony_ci 469762338dSopenharmony_civoid UserIamFaceAuthTestAdditional::SetUp() 479762338dSopenharmony_ci{ 489762338dSopenharmony_ci} 499762338dSopenharmony_ci 509762338dSopenharmony_civoid UserIamFaceAuthTestAdditional::TearDown() 519762338dSopenharmony_ci{ 529762338dSopenharmony_ci} 539762338dSopenharmony_ci 549762338dSopenharmony_ciclass DummyIExecutorCallback : public IExecutorCallback { 559762338dSopenharmony_cipublic: 569762338dSopenharmony_ci DummyIExecutorCallback(int32_t result, int32_t tip, int32_t message) : result_(result), tip_(tip), message_(message) 579762338dSopenharmony_ci { 589762338dSopenharmony_ci } 599762338dSopenharmony_ci 609762338dSopenharmony_ci int32_t OnResult(int32_t result, const std::vector<uint8_t> &extraInfo) override 619762338dSopenharmony_ci { 629762338dSopenharmony_ci cout << "result is " << result << " extraInfo len is " << extraInfo.size() << endl; 639762338dSopenharmony_ci g_onResultFlag = true; 649762338dSopenharmony_ci return result_; 659762338dSopenharmony_ci } 669762338dSopenharmony_ci 679762338dSopenharmony_ci int32_t OnTip(int32_t tip, const std::vector<uint8_t> &extraInfo) override 689762338dSopenharmony_ci { 699762338dSopenharmony_ci cout << "tip is " << tip << " extraInfo len is " << extraInfo.size() << endl; 709762338dSopenharmony_ci g_onTipFlag = true; 719762338dSopenharmony_ci return tip_; 729762338dSopenharmony_ci } 739762338dSopenharmony_ci 749762338dSopenharmony_ci int32_t OnMessage(int32_t destRole, const std::vector<uint8_t> &msg) override 759762338dSopenharmony_ci { 769762338dSopenharmony_ci cout << "destRole is " << destRole << " msg len is " << msg.size() << endl; 779762338dSopenharmony_ci return message_; 789762338dSopenharmony_ci } 799762338dSopenharmony_ci 809762338dSopenharmony_ciprivate: 819762338dSopenharmony_ci int32_t result_; 829762338dSopenharmony_ci int32_t tip_; 839762338dSopenharmony_ci int32_t message_; 849762338dSopenharmony_ci}; 859762338dSopenharmony_ci 869762338dSopenharmony_ciclass DummyISaCommandCallback : public ISaCommandCallback { 879762338dSopenharmony_cipublic: 889762338dSopenharmony_ci explicit DummyISaCommandCallback(int32_t result) : result_(result) 899762338dSopenharmony_ci { 909762338dSopenharmony_ci } 919762338dSopenharmony_ci 929762338dSopenharmony_ci int32_t OnSaCommands(const std::vector<SaCommand> &commands) override 939762338dSopenharmony_ci { 949762338dSopenharmony_ci g_onSaCommandsFlag = true; 959762338dSopenharmony_ci return result_; 969762338dSopenharmony_ci } 979762338dSopenharmony_ci 989762338dSopenharmony_ciprivate: 999762338dSopenharmony_ci int32_t result_; 1009762338dSopenharmony_ci}; 1019762338dSopenharmony_ci 1029762338dSopenharmony_cistatic void FillTestIExecutorCallback(Parcel &parcel, sptr<IExecutorCallback> &callbackObj) 1039762338dSopenharmony_ci{ 1049762338dSopenharmony_ci bool isNull = parcel.ReadBool(); 1059762338dSopenharmony_ci if (isNull) { 1069762338dSopenharmony_ci callbackObj = nullptr; 1079762338dSopenharmony_ci } else { 1089762338dSopenharmony_ci callbackObj = 1099762338dSopenharmony_ci new (std::nothrow) DummyIExecutorCallback(parcel.ReadInt32(), parcel.ReadInt32(), parcel.ReadInt32()); 1109762338dSopenharmony_ci if (callbackObj == nullptr) { 1119762338dSopenharmony_ci cout << "callbackObj construct fail" << endl; 1129762338dSopenharmony_ci } 1139762338dSopenharmony_ci } 1149762338dSopenharmony_ci cout << "success" << endl; 1159762338dSopenharmony_ci} 1169762338dSopenharmony_ci 1179762338dSopenharmony_civoid FillTestGetPropertyTypeVector(Parcel &parcel, std::vector<GetPropertyType> &types) 1189762338dSopenharmony_ci{ 1199762338dSopenharmony_ci std::vector<uint32_t> propertyTypeUint32; 1209762338dSopenharmony_ci FillTestUint32Vector(parcel, propertyTypeUint32); 1219762338dSopenharmony_ci for (const auto &val : propertyTypeUint32) { 1229762338dSopenharmony_ci types.push_back(static_cast<GetPropertyType>(val)); 1239762338dSopenharmony_ci } 1249762338dSopenharmony_ci 1259762338dSopenharmony_ci cout << "success" << endl; 1269762338dSopenharmony_ci} 1279762338dSopenharmony_ci 1289762338dSopenharmony_civoid FillTestProperty(Parcel &parcel, Property &property) 1299762338dSopenharmony_ci{ 1309762338dSopenharmony_ci property.authSubType = parcel.ReadUint64(); 1319762338dSopenharmony_ci property.lockoutDuration = parcel.ReadInt32(); 1329762338dSopenharmony_ci property.remainAttempts = parcel.ReadInt32(); 1339762338dSopenharmony_ci FillTestString(parcel, property.enrollmentProgress); 1349762338dSopenharmony_ci FillTestString(parcel, property.sensorInfo); 1359762338dSopenharmony_ci 1369762338dSopenharmony_ci cout << "success" << endl; 1379762338dSopenharmony_ci} 1389762338dSopenharmony_ci 1399762338dSopenharmony_civoid FillTestISaCommandCallback(Parcel &parcel, sptr<ISaCommandCallback> &callbackObj) 1409762338dSopenharmony_ci{ 1419762338dSopenharmony_ci bool isNull = parcel.ReadBool(); 1429762338dSopenharmony_ci if (isNull) { 1439762338dSopenharmony_ci callbackObj = nullptr; 1449762338dSopenharmony_ci } else { 1459762338dSopenharmony_ci callbackObj = new (std::nothrow) DummyISaCommandCallback(parcel.ReadInt32()); 1469762338dSopenharmony_ci if (callbackObj == nullptr) { 1479762338dSopenharmony_ci cout << "callbackObj construct fail" << endl; 1489762338dSopenharmony_ci } 1499762338dSopenharmony_ci } 1509762338dSopenharmony_ci cout << "success" << endl; 1519762338dSopenharmony_ci} 1529762338dSopenharmony_ci/** 1539762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_GetExecutorInfo_0200 1549762338dSopenharmony_ci * @tc.name testFaceAuthTestGetExecutorInfo001 1559762338dSopenharmony_ci * @tc.desc test GetExecutorInfo not empty 1569762338dSopenharmony_ci */ 1579762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestGetExecutorInfo001, Function | MediumTest | Level1) 1589762338dSopenharmony_ci{ 1599762338dSopenharmony_ci cout << "start test testFaceAuthTestGetExecutorInfo001" << endl; 1609762338dSopenharmony_ci ExecutorInfo executorInfo; 1619762338dSopenharmony_ci int32_t ret = g_executorImpl.GetExecutorInfo(executorInfo); 1629762338dSopenharmony_ci cout << "ret is " << ret << endl; 1639762338dSopenharmony_ci EXPECT_EQ(ret, 0); 1649762338dSopenharmony_ci} 1659762338dSopenharmony_ci/** 1669762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_GetExecutorInfo_0300 1679762338dSopenharmony_ci * @tc.name testFaceAuthTestGetExecutorInfo002 1689762338dSopenharmony_ci * @tc.desc test GetExecutorInfo 1000 times 1699762338dSopenharmony_ci */ 1709762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestGetExecutorInfo002, Function | MediumTest | Level1) 1719762338dSopenharmony_ci{ 1729762338dSopenharmony_ci cout << "start test testFaceAuthTestGetExecutorInfo002" << endl; 1739762338dSopenharmony_ci ExecutorInfo executorInfo; 1749762338dSopenharmony_ci int32_t ret = 0; 1759762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 1769762338dSopenharmony_ci ret = g_executorImpl.GetExecutorInfo(executorInfo); 1779762338dSopenharmony_ci cout << "ret " << i << " is " << ret << endl; 1789762338dSopenharmony_ci EXPECT_EQ(ret, 0); 1799762338dSopenharmony_ci } 1809762338dSopenharmony_ci} 1819762338dSopenharmony_ci 1829762338dSopenharmony_ci/** 1839762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_OnRegisterFinish_0200 1849762338dSopenharmony_ci * @tc.name testFaceAuthTestOnRegisterFinish001 1859762338dSopenharmony_ci * @tc.desc test OnRegisterFinish empty 1869762338dSopenharmony_ci */ 1879762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestOnRegisterFinish001, Function | MediumTest | Level1) 1889762338dSopenharmony_ci{ 1899762338dSopenharmony_ci cout << "start test testFaceAuthTestOnRegisterFinish001" << endl; 1909762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 1919762338dSopenharmony_ci std::vector<uint8_t> frameworkPublicKey; 1929762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 1939762338dSopenharmony_ci int32_t ret = g_executorImpl.OnRegisterFinish(templateIdList, frameworkPublicKey, extraInfo); 1949762338dSopenharmony_ci cout << "ret is " << ret << endl; 1959762338dSopenharmony_ci EXPECT_EQ(ret, 0); 1969762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 1979762338dSopenharmony_ci ret = g_executorImpl.OnRegisterFinish(templateIdList, frameworkPublicKey, extraInfo); 1989762338dSopenharmony_ci cout << "ret is " << ret << endl; 1999762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2009762338dSopenharmony_ci FillTestUint8Vector(parcel, frameworkPublicKey); 2019762338dSopenharmony_ci ret = g_executorImpl.OnRegisterFinish(templateIdList, frameworkPublicKey, extraInfo); 2029762338dSopenharmony_ci cout << "ret is " << ret << endl; 2039762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2049762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 2059762338dSopenharmony_ci ret = g_executorImpl.OnRegisterFinish(templateIdList, frameworkPublicKey, extraInfo); 2069762338dSopenharmony_ci cout << "ret is " << ret << endl; 2079762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2089762338dSopenharmony_ci} 2099762338dSopenharmony_ci/** 2109762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_OnRegisterFinish_0900 2119762338dSopenharmony_ci * @tc.name testFaceAuthTestOnRegisterFinish008 2129762338dSopenharmony_ci * @tc.desc test OnRegisterFinish 1000 times 2139762338dSopenharmony_ci */ 2149762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestOnRegisterFinish008, Function | MediumTest | Level1) 2159762338dSopenharmony_ci{ 2169762338dSopenharmony_ci cout << "start test testFaceAuthTestOnRegisterFinish008" << endl; 2179762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 2189762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 2199762338dSopenharmony_ci std::vector<uint8_t> frameworkPublicKey; 2209762338dSopenharmony_ci FillTestUint8Vector(parcel, frameworkPublicKey); 2219762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 2229762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 2239762338dSopenharmony_ci int32_t ret = 0; 2249762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 2259762338dSopenharmony_ci ret = g_executorImpl.OnRegisterFinish(templateIdList, frameworkPublicKey, extraInfo); 2269762338dSopenharmony_ci cout << "ret " << i << " is " << ret << endl; 2279762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2289762338dSopenharmony_ci } 2299762338dSopenharmony_ci} 2309762338dSopenharmony_ci/** 2319762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_Enroll_0200 2329762338dSopenharmony_ci * @tc.name testFaceAuthTestEnroll001 2339762338dSopenharmony_ci * @tc.desc test Enroll scheduleId 2349762338dSopenharmony_ci */ 2359762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestEnroll001, Function | MediumTest | Level1) 2369762338dSopenharmony_ci{ 2379762338dSopenharmony_ci cout << "start test testFaceAuthTestEnroll001" << endl; 2389762338dSopenharmony_ci uint64_t scheduleId = 0; 2399762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 2409762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 2419762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 2429762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 2439762338dSopenharmony_ci int32_t ret = g_executorImpl.Enroll(scheduleId, extraInfo, callbackObj); 2449762338dSopenharmony_ci cout << "ret is " << ret << endl; 2459762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2469762338dSopenharmony_ci scheduleId = 0x7FFFFFFFFFFFFFFF; 2479762338dSopenharmony_ci ret = g_executorImpl.Enroll(scheduleId, extraInfo, callbackObj); 2489762338dSopenharmony_ci cout << "ret is " << ret << endl; 2499762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2509762338dSopenharmony_ci scheduleId = 0xFFFFFFFFFFFFFFFF; 2519762338dSopenharmony_ci ret = g_executorImpl.Enroll(scheduleId, extraInfo, callbackObj); 2529762338dSopenharmony_ci cout << "ret is " << ret << endl; 2539762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2549762338dSopenharmony_ci} 2559762338dSopenharmony_ci/** 2569762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_Enroll_0500 2579762338dSopenharmony_ci * @tc.name testFaceAuthTestEnroll004 2589762338dSopenharmony_ci * @tc.desc test Enroll extraInfo empty 2599762338dSopenharmony_ci */ 2609762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestEnroll004, Function | MediumTest | Level1) 2619762338dSopenharmony_ci{ 2629762338dSopenharmony_ci cout << "start test testFaceAuthTestEnroll004" << endl; 2639762338dSopenharmony_ci uint64_t scheduleId = 0x7FFFFFFFFFFFFFFF; 2649762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 2659762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 2669762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 2679762338dSopenharmony_ci int32_t ret = g_executorImpl.Enroll(scheduleId, extraInfo, callbackObj); 2689762338dSopenharmony_ci cout << "ret is " << ret << endl; 2699762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2709762338dSopenharmony_ci ret = g_executorImpl.Enroll(scheduleId, extraInfo, nullptr); 2719762338dSopenharmony_ci cout << "ret is " << ret << endl; 2729762338dSopenharmony_ci EXPECT_NE(ret, 0); 2739762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 2749762338dSopenharmony_ci ret = g_executorImpl.Enroll(scheduleId, extraInfo, nullptr); 2759762338dSopenharmony_ci cout << "ret is " << ret << endl; 2769762338dSopenharmony_ci EXPECT_NE(ret, 0); 2779762338dSopenharmony_ci} 2789762338dSopenharmony_ci/** 2799762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_Enroll_0800 2809762338dSopenharmony_ci * @tc.name testFaceAuthTestEnroll007 2819762338dSopenharmony_ci * @tc.desc test Enroll 1000 times 2829762338dSopenharmony_ci */ 2839762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestEnroll007, Function | MediumTest | Level1) 2849762338dSopenharmony_ci{ 2859762338dSopenharmony_ci cout << "start test testFaceAuthTestEnroll007" << endl; 2869762338dSopenharmony_ci uint64_t scheduleId = 0x7FFFFFFFFFFFFFFF; 2879762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 2889762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 2899762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 2909762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 2919762338dSopenharmony_ci int32_t ret = 0; 2929762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 2939762338dSopenharmony_ci ret = g_executorImpl.Enroll(scheduleId, extraInfo, callbackObj); 2949762338dSopenharmony_ci cout << "ret " << i << " is " << ret << endl; 2959762338dSopenharmony_ci EXPECT_EQ(ret, 0); 2969762338dSopenharmony_ci } 2979762338dSopenharmony_ci} 2989762338dSopenharmony_ci/** 2999762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_Authenticate_0200 3009762338dSopenharmony_ci * @tc.name testFaceAuthTestAuthenticate001 3019762338dSopenharmony_ci * @tc.desc test Authenticate scheduleId 3029762338dSopenharmony_ci */ 3039762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestAuthenticate001, Function | MediumTest | Level1) 3049762338dSopenharmony_ci{ 3059762338dSopenharmony_ci cout << "start test testFaceAuthTestAuthenticate001" << endl; 3069762338dSopenharmony_ci uint64_t scheduleId = 0; 3079762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 3089762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 3099762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 3109762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 3119762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 3129762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 3139762338dSopenharmony_ci int32_t ret = g_executorImpl.Authenticate(scheduleId, templateIdList, extraInfo, callbackObj); 3149762338dSopenharmony_ci cout << "ret is " << ret << endl; 3159762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3169762338dSopenharmony_ci scheduleId = 0xFFFFFFFFFFFFFFFF; 3179762338dSopenharmony_ci ret = g_executorImpl.Authenticate(scheduleId, templateIdList, extraInfo, callbackObj); 3189762338dSopenharmony_ci cout << "ret is " << ret << endl; 3199762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3209762338dSopenharmony_ci scheduleId = 0x7FFFFFFFFFFFFFFF; 3219762338dSopenharmony_ci ret = g_executorImpl.Authenticate(scheduleId, templateIdList, extraInfo, callbackObj); 3229762338dSopenharmony_ci cout << "ret is " << ret << endl; 3239762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3249762338dSopenharmony_ci} 3259762338dSopenharmony_ci/** 3269762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_Authenticate_0500 3279762338dSopenharmony_ci * @tc.name testFaceAuthTestAuthenticate004 3289762338dSopenharmony_ci * @tc.descc test Authenticate empty 3299762338dSopenharmony_ci */ 3309762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestAuthenticate004, Function | MediumTest | Level1) 3319762338dSopenharmony_ci{ 3329762338dSopenharmony_ci cout << "start test testFaceAuthTestAuthenticate004" << endl; 3339762338dSopenharmony_ci uint64_t scheduleId = 0x7FFFFFFFFFFFFFFF; 3349762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 3359762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 3369762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 3379762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 3389762338dSopenharmony_ci int32_t ret = g_executorImpl.Authenticate(scheduleId, templateIdList, extraInfo, callbackObj); 3399762338dSopenharmony_ci cout << "ret is " << ret << endl; 3409762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3419762338dSopenharmony_ci ret = g_executorImpl.Authenticate(scheduleId, templateIdList, extraInfo, nullptr); 3429762338dSopenharmony_ci cout << "ret is " << ret << endl; 3439762338dSopenharmony_ci EXPECT_NE(ret, 0); 3449762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 3459762338dSopenharmony_ci ret = g_executorImpl.Authenticate(scheduleId, templateIdList, extraInfo, callbackObj); 3469762338dSopenharmony_ci cout << "ret is " << ret << endl; 3479762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3489762338dSopenharmony_ci ret = g_executorImpl.Authenticate(scheduleId, templateIdList, extraInfo, nullptr); 3499762338dSopenharmony_ci cout << "ret is " << ret << endl; 3509762338dSopenharmony_ci EXPECT_NE(ret, 0); 3519762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 3529762338dSopenharmony_ci ret = g_executorImpl.Authenticate(scheduleId, templateIdList, extraInfo, callbackObj); 3539762338dSopenharmony_ci cout << "ret is " << ret << endl; 3549762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3559762338dSopenharmony_ci ret = g_executorImpl.Authenticate(scheduleId, templateIdList, extraInfo, nullptr); 3569762338dSopenharmony_ci cout << "ret is " << ret << endl; 3579762338dSopenharmony_ci EXPECT_NE(ret, 0); 3589762338dSopenharmony_ci} 3599762338dSopenharmony_ci/** 3609762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_Authenticate_1200 3619762338dSopenharmony_ci * @tc.name testFaceAuthTestAuthenticate011 3629762338dSopenharmony_ci * @tc.desc test Authenticate 1000 times 3639762338dSopenharmony_ci */ 3649762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestAuthenticate011, Function | MediumTest | Level1) 3659762338dSopenharmony_ci{ 3669762338dSopenharmony_ci cout << "start test testFaceAuthTestAuthenticate011" << endl; 3679762338dSopenharmony_ci uint64_t scheduleId = 0x7FFFFFFFFFFFFFFF; 3689762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 3699762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 3709762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 3719762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 3729762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 3739762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 3749762338dSopenharmony_ci int32_t ret = 0; 3759762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 3769762338dSopenharmony_ci ret = g_executorImpl.Authenticate(scheduleId, templateIdList, extraInfo, callbackObj); 3779762338dSopenharmony_ci cout << "ret is " << ret << endl; 3789762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3799762338dSopenharmony_ci } 3809762338dSopenharmony_ci} 3819762338dSopenharmony_ci/** 3829762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_Identify_0200 3839762338dSopenharmony_ci * @tc.name testFaceAuthTestIdentify001 3849762338dSopenharmony_ci * @tc.desc test Identify scheduleId 3859762338dSopenharmony_ci */ 3869762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestIdentify001, Function | MediumTest | Level1) 3879762338dSopenharmony_ci{ 3889762338dSopenharmony_ci cout << "start test testFaceAuthTestIdentify001" << endl; 3899762338dSopenharmony_ci uint64_t scheduleId = 0; 3909762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 3919762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 3929762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 3939762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 3949762338dSopenharmony_ci int32_t ret = g_executorImpl.Identify(scheduleId, extraInfo, callbackObj); 3959762338dSopenharmony_ci cout << "ret is " << ret << endl; 3969762338dSopenharmony_ci EXPECT_EQ(ret, 0); 3979762338dSopenharmony_ci scheduleId = 0x7FFFFFFFFFFFFFFF; 3989762338dSopenharmony_ci ret = g_executorImpl.Identify(scheduleId, extraInfo, callbackObj); 3999762338dSopenharmony_ci cout << "ret is " << ret << endl; 4009762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4019762338dSopenharmony_ci scheduleId = 0xFFFFFFFFFFFFFFFF; 4029762338dSopenharmony_ci ret = g_executorImpl.Identify(scheduleId, extraInfo, callbackObj); 4039762338dSopenharmony_ci cout << "ret is " << ret << endl; 4049762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4059762338dSopenharmony_ci} 4069762338dSopenharmony_ci/** 4079762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_Identify_0500 4089762338dSopenharmony_ci * @tc.name testFaceAuthTestIdentify004 4099762338dSopenharmony_ci * @tc.desc test Identify empty 4109762338dSopenharmony_ci */ 4119762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestIdentify004, Function | MediumTest | Level1) 4129762338dSopenharmony_ci{ 4139762338dSopenharmony_ci cout << "start test testFaceAuthTestIdentify004" << endl; 4149762338dSopenharmony_ci uint64_t scheduleId = 0x7FFFFFFFFFFFFFFF; 4159762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 4169762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 4179762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 4189762338dSopenharmony_ci int32_t ret = g_executorImpl.Identify(scheduleId, extraInfo, callbackObj); 4199762338dSopenharmony_ci cout << "ret is " << ret << endl; 4209762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4219762338dSopenharmony_ci ret = g_executorImpl.Identify(scheduleId, extraInfo, nullptr); 4229762338dSopenharmony_ci cout << "ret is " << ret << endl; 4239762338dSopenharmony_ci EXPECT_NE(ret, 0); 4249762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 4259762338dSopenharmony_ci ret = g_executorImpl.Identify(scheduleId, extraInfo, nullptr); 4269762338dSopenharmony_ci cout << "ret is " << ret << endl; 4279762338dSopenharmony_ci EXPECT_NE(ret, 0); 4289762338dSopenharmony_ci} 4299762338dSopenharmony_ci/** 4309762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_Identify_0800 4319762338dSopenharmony_ci * @tc.name testFaceAuthTestIdentify007 4329762338dSopenharmony_ci * @tc.desc test Identify 1000 times 4339762338dSopenharmony_ci */ 4349762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestIdentify007, Function | MediumTest | Level1) 4359762338dSopenharmony_ci{ 4369762338dSopenharmony_ci cout << "start test testFaceAuthTestIdentify007" << endl; 4379762338dSopenharmony_ci uint64_t scheduleId = 0x7FFFFFFFFFFFFFFF; 4389762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 4399762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 4409762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 4419762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 4429762338dSopenharmony_ci int32_t ret = 0; 4439762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 4449762338dSopenharmony_ci ret = g_executorImpl.Identify(scheduleId, extraInfo, callbackObj); 4459762338dSopenharmony_ci cout << "ret is " << ret << endl; 4469762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4479762338dSopenharmony_ci } 4489762338dSopenharmony_ci} 4499762338dSopenharmony_ci/** 4509762338dSopenharmony_ci * @tc.number: SUB_Security_Iam_FaceAuth_HDI_Delete_0200 4519762338dSopenharmony_ci * @tc.name: testFaceAuthTestDelete001 4529762338dSopenharmony_ci * @tc.desc test Delete templateIdList empty 4539762338dSopenharmony_ci */ 4549762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestDelete001, Function | MediumTest | Level1) 4559762338dSopenharmony_ci{ 4569762338dSopenharmony_ci cout << "start test testFaceAuthTestDelete001" << endl; 4579762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 4589762338dSopenharmony_ci int32_t ret = g_executorImpl.Delete(templateIdList); 4599762338dSopenharmony_ci cout << "ret is " << ret << endl; 4609762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4619762338dSopenharmony_ci} 4629762338dSopenharmony_ci/** 4639762338dSopenharmony_ci * @tc.number: SUB_Security_Iam_FaceAuth_HDI_Delete_0300 4649762338dSopenharmony_ci * @tc.name: testFaceAuthTestDelete002 4659762338dSopenharmony_ci * @tc.desc test Delete 1000 times 4669762338dSopenharmony_ci */ 4679762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestDelete002, Function | MediumTest | Level1) 4689762338dSopenharmony_ci{ 4699762338dSopenharmony_ci cout << "start test testFaceAuthTestDelete002" << endl; 4709762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 4719762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 4729762338dSopenharmony_ci int32_t ret = 0; 4739762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 4749762338dSopenharmony_ci ret = g_executorImpl.Delete(templateIdList); 4759762338dSopenharmony_ci cout << "ret is " << ret << endl; 4769762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4779762338dSopenharmony_ci } 4789762338dSopenharmony_ci} 4799762338dSopenharmony_ci/** 4809762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_Cancel_0200 4819762338dSopenharmony_ci * @tc.name testFaceAuthTestCancel001 4829762338dSopenharmony_ci * @tc.desc test Cancel scheduleId 4839762338dSopenharmony_ci */ 4849762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestCancel001, Function | MediumTest | Level1) 4859762338dSopenharmony_ci{ 4869762338dSopenharmony_ci cout << "start test testFaceAuthTestCancel001" << endl; 4879762338dSopenharmony_ci uint64_t scheduleId = 0; 4889762338dSopenharmony_ci int32_t ret = g_executorImpl.Cancel(scheduleId); 4899762338dSopenharmony_ci cout << "ret is " << ret << endl; 4909762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4919762338dSopenharmony_ci scheduleId = 0x7FFFFFFFFFFFFFFF; 4929762338dSopenharmony_ci ret = g_executorImpl.Cancel(scheduleId); 4939762338dSopenharmony_ci cout << "ret is " << ret << endl; 4949762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4959762338dSopenharmony_ci scheduleId = 0xFFFFFFFFFFFFFFFF; 4969762338dSopenharmony_ci ret = g_executorImpl.Cancel(scheduleId); 4979762338dSopenharmony_ci cout << "ret is " << ret << endl; 4989762338dSopenharmony_ci EXPECT_EQ(ret, 0); 4999762338dSopenharmony_ci} 5009762338dSopenharmony_ci/** 5019762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_Cancel_0500 5029762338dSopenharmony_ci * @tc.name testFaceAuthTestCancel004 5039762338dSopenharmony_ci * @tc.desc test Cancel 1000 times 5049762338dSopenharmony_ci */ 5059762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestCancel004, Function | MediumTest | Level1) 5069762338dSopenharmony_ci{ 5079762338dSopenharmony_ci cout << "start test testFaceAuthTestCancel004" << endl; 5089762338dSopenharmony_ci uint64_t scheduleId = 0; 5099762338dSopenharmony_ci int32_t ret = 0; 5109762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 5119762338dSopenharmony_ci ret = g_executorImpl.Cancel(scheduleId); 5129762338dSopenharmony_ci cout << "ret is " << ret << endl; 5139762338dSopenharmony_ci EXPECT_EQ(ret, 0); 5149762338dSopenharmony_ci } 5159762338dSopenharmony_ci} 5169762338dSopenharmony_ci/** 5179762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_SendCommand_0200 5189762338dSopenharmony_ci * @tc.name testFaceAuthTestSendCommand001 5199762338dSopenharmony_ci * @tc.desc test SendCommand commandId 5209762338dSopenharmony_ci */ 5219762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestSendCommand001, Function | MediumTest | Level1) 5229762338dSopenharmony_ci{ 5239762338dSopenharmony_ci cout << "start test testFaceAuthTestSendCommand001" << endl; 5249762338dSopenharmony_ci int32_t commandId = DriverCommandId::LOCK_TEMPLATE; 5259762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 5269762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 5279762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 5289762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 5299762338dSopenharmony_ci int32_t ret = g_executorImpl.SendCommand(commandId, extraInfo, callbackObj); 5309762338dSopenharmony_ci cout << "ret is " << ret << endl; 5319762338dSopenharmony_ci EXPECT_EQ(ret, 0); 5329762338dSopenharmony_ci commandId = DriverCommandId::UNLOCK_TEMPLATE; 5339762338dSopenharmony_ci ret = g_executorImpl.SendCommand(commandId, extraInfo, callbackObj); 5349762338dSopenharmony_ci cout << "ret is " << ret << endl; 5359762338dSopenharmony_ci EXPECT_EQ(ret, 0); 5369762338dSopenharmony_ci commandId = DriverCommandId::VENDOR_COMMAND_BEGIN; 5379762338dSopenharmony_ci ret = g_executorImpl.SendCommand(commandId, extraInfo, callbackObj); 5389762338dSopenharmony_ci cout << "ret is " << ret << endl; 5399762338dSopenharmony_ci EXPECT_EQ(ret, 0); 5409762338dSopenharmony_ci commandId = 0; 5419762338dSopenharmony_ci ret = g_executorImpl.SendCommand(commandId, extraInfo, callbackObj); 5429762338dSopenharmony_ci cout << "ret is " << ret << endl; 5439762338dSopenharmony_ci EXPECT_EQ(ret, 0); 5449762338dSopenharmony_ci commandId = 0x7FFFFFFF; 5459762338dSopenharmony_ci ret = g_executorImpl.SendCommand(commandId, extraInfo, callbackObj); 5469762338dSopenharmony_ci cout << "ret is " << ret << endl; 5479762338dSopenharmony_ci EXPECT_EQ(ret, 0); 5489762338dSopenharmony_ci commandId = -0x01; 5499762338dSopenharmony_ci ret = g_executorImpl.SendCommand(commandId, extraInfo, callbackObj); 5509762338dSopenharmony_ci cout << "ret is " << ret << endl; 5519762338dSopenharmony_ci EXPECT_EQ(ret, 0); 5529762338dSopenharmony_ci commandId = -0x7FFFFFFF; 5539762338dSopenharmony_ci ret = g_executorImpl.SendCommand(commandId, extraInfo, callbackObj); 5549762338dSopenharmony_ci cout << "ret is " << ret << endl; 5559762338dSopenharmony_ci EXPECT_EQ(ret, 0); 5569762338dSopenharmony_ci} 5579762338dSopenharmony_ci/** 5589762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_SendCommand_0900 5599762338dSopenharmony_ci * @tc.name testFaceAuthTestSendCommand008 5609762338dSopenharmony_ci * @tc.desc test SendCommand extraInfo empty 5619762338dSopenharmony_ci */ 5629762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestSendCommand008, Function | MediumTest | Level1) 5639762338dSopenharmony_ci{ 5649762338dSopenharmony_ci cout << "start test testFaceAuthTestSendCommand008" << endl; 5659762338dSopenharmony_ci int32_t commandId = DriverCommandId::LOCK_TEMPLATE; 5669762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 5679762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 5689762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 5699762338dSopenharmony_ci int32_t ret = g_executorImpl.SendCommand(commandId, extraInfo, callbackObj); 5709762338dSopenharmony_ci cout << "ret is " << ret << endl; 5719762338dSopenharmony_ci EXPECT_EQ(ret, 0); 5729762338dSopenharmony_ci ret = g_executorImpl.SendCommand(commandId, extraInfo, nullptr); 5739762338dSopenharmony_ci cout << "ret is " << ret << endl; 5749762338dSopenharmony_ci EXPECT_NE(ret, 0); 5759762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 5769762338dSopenharmony_ci ret = g_executorImpl.SendCommand(commandId, extraInfo, nullptr); 5779762338dSopenharmony_ci cout << "ret is " << ret << endl; 5789762338dSopenharmony_ci EXPECT_NE(ret, 0); 5799762338dSopenharmony_ci} 5809762338dSopenharmony_ci/** 5819762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_SendCommand_1200 5829762338dSopenharmony_ci * @tc.name testFaceAuthTestSendCommand011 5839762338dSopenharmony_ci * @tc.desc test SendCommand 1000 times 5849762338dSopenharmony_ci */ 5859762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestSendCommand011, Function | MediumTest | Level1) 5869762338dSopenharmony_ci{ 5879762338dSopenharmony_ci cout << "start test testFaceAuthTestSendCommand011" << endl; 5889762338dSopenharmony_ci int32_t commandId = DriverCommandId::LOCK_TEMPLATE; 5899762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 5909762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 5919762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 5929762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 5939762338dSopenharmony_ci int32_t ret = 0; 5949762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 5959762338dSopenharmony_ci ret = g_executorImpl.SendCommand(commandId, extraInfo, callbackObj); 5969762338dSopenharmony_ci cout << "ret is " << ret << endl; 5979762338dSopenharmony_ci EXPECT_EQ(ret, 0); 5989762338dSopenharmony_ci } 5999762338dSopenharmony_ci} 6009762338dSopenharmony_ci/** 6019762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_SetBufferProducer_0200 6029762338dSopenharmony_ci * @tc.name testFaceAuthTestSetBufferProducer001 6039762338dSopenharmony_ci * @tc.desc test SetBufferProducer producerSequenceable null 6049762338dSopenharmony_ci */ 6059762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestSetBufferProducer001, Function | MediumTest | Level2) 6069762338dSopenharmony_ci{ 6079762338dSopenharmony_ci cout << "start test testFaceAuthTestSetBufferProducer001" << endl; 6089762338dSopenharmony_ci FaceAuthInterfaceService faceauth_Interface; 6099762338dSopenharmony_ci int32_t ret = faceauth_Interface.SetBufferProducer(nullptr); 6109762338dSopenharmony_ci cout << "ret is " << ret << endl; 6119762338dSopenharmony_ci EXPECT_EQ(ret, 0); 6129762338dSopenharmony_ci} 6139762338dSopenharmony_ci/** 6149762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_SetBufferProducer_0300 6159762338dSopenharmony_ci * @tc.name testFaceAuthTestSetBufferProducer002 6169762338dSopenharmony_ci * @tc.desc test SetBufferProducer 1000 times 6179762338dSopenharmony_ci */ 6189762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestSetBufferProducer002, Function | MediumTest | Level1) 6199762338dSopenharmony_ci{ 6209762338dSopenharmony_ci cout << "start test testFaceAuthTestSetBufferProducer002" << endl; 6219762338dSopenharmony_ci sptr<IBufferProducer> bufferProducer = nullptr; 6229762338dSopenharmony_ci if (parcel.ReadBool()) { 6239762338dSopenharmony_ci auto surface = IConsumerSurface::Create(); 6249762338dSopenharmony_ci if (surface == nullptr) { 6259762338dSopenharmony_ci cout << "CreateSurfaceAsConsumer fail" << endl; 6269762338dSopenharmony_ci } else { 6279762338dSopenharmony_ci bufferProducer = surface->GetProducer(); 6289762338dSopenharmony_ci } 6299762338dSopenharmony_ci } 6309762338dSopenharmony_ci sptr<BufferProducerSequenceable> producerSequenceable = 6319762338dSopenharmony_ci new (std::nothrow) BufferProducerSequenceable(bufferProducer); 6329762338dSopenharmony_ci int32_t ret = 0; 6339762338dSopenharmony_ci FaceAuthInterfaceService faceauth_Interface; 6349762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 6359762338dSopenharmony_ci ret = faceauth_Interface.SetBufferProducer(producerSequenceable); 6369762338dSopenharmony_ci cout << "ret is " << ret << endl; 6379762338dSopenharmony_ci EXPECT_EQ(ret, 0); 6389762338dSopenharmony_ci } 6399762338dSopenharmony_ci} 6409762338dSopenharmony_ci/** 6419762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_GetProperty_0200 6429762338dSopenharmony_ci * @tc.name testFaceAuthTestGetProperty001 6439762338dSopenharmony_ci * @tc.desc test GetProperty 6449762338dSopenharmony_ci */ 6459762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestGetProperty001, Function | MediumTest | Level1) 6469762338dSopenharmony_ci{ 6479762338dSopenharmony_ci cout << "start test testFaceAuthTestGetProperty001" << endl; 6489762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 6499762338dSopenharmony_ci std::vector<int32_t> propertyTypes; 6509762338dSopenharmony_ci Property property; 6519762338dSopenharmony_ci int32_t ret = g_executorImpl.GetProperty(templateIdList, propertyTypes, property); 6529762338dSopenharmony_ci cout << "ret is " << ret << endl; 6539762338dSopenharmony_ci EXPECT_EQ(ret, 0); 6549762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 6559762338dSopenharmony_ci ret = g_executorImpl.GetProperty(templateIdList, propertyTypes, property); 6569762338dSopenharmony_ci cout << "ret is " << ret << endl; 6579762338dSopenharmony_ci EXPECT_EQ(ret, 0); 6589762338dSopenharmony_ci propertyTypes.push_back(GetPropertyType::AUTH_SUB_TYPE); 6599762338dSopenharmony_ci propertyTypes.push_back(GetPropertyType::LOCKOUT_DURATION); 6609762338dSopenharmony_ci propertyTypes.push_back(GetPropertyType::REMAIN_ATTEMPTS); 6619762338dSopenharmony_ci propertyTypes.push_back(GetPropertyType::ENROLL_PROGRESS); 6629762338dSopenharmony_ci propertyTypes.push_back(GetPropertyType::SENSOR_INFO); 6639762338dSopenharmony_ci ret = g_executorImpl.GetProperty(templateIdList, propertyTypes, property); 6649762338dSopenharmony_ci cout << "ret is " << ret << endl; 6659762338dSopenharmony_ci EXPECT_EQ(ret, 0); 6669762338dSopenharmony_ci FillTestProperty(parcel, property); 6679762338dSopenharmony_ci ret = g_executorImpl.GetProperty(templateIdList, propertyTypes, property); 6689762338dSopenharmony_ci cout << "ret is " << ret << endl; 6699762338dSopenharmony_ci EXPECT_EQ(ret, 0); 6709762338dSopenharmony_ci} 6719762338dSopenharmony_ci/** 6729762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_GetProperty_1000 6739762338dSopenharmony_ci * @tc.name testFaceAuthTestGetProperty009 6749762338dSopenharmony_ci * @tc.desc test GetProperty 1000 times 6759762338dSopenharmony_ci */ 6769762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestGetProperty009, Function | MediumTest | Level1) 6779762338dSopenharmony_ci{ 6789762338dSopenharmony_ci cout << "start test testFaceAuthTestGetProperty009" << endl; 6799762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 6809762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 6819762338dSopenharmony_ci std::vector<int32_t> propertyTypes; 6829762338dSopenharmony_ci FillTestInt32Vector(parcel, propertyTypes); 6839762338dSopenharmony_ci Property property; 6849762338dSopenharmony_ci FillTestProperty(parcel, property); 6859762338dSopenharmony_ci int32_t ret = 0; 6869762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 6879762338dSopenharmony_ci ret = g_executorImpl.GetProperty(templateIdList, propertyTypes, property); 6889762338dSopenharmony_ci cout << "ret is " << ret << endl; 6899762338dSopenharmony_ci EXPECT_EQ(ret, 0); 6909762338dSopenharmony_ci } 6919762338dSopenharmony_ci} 6929762338dSopenharmony_ci/** 6939762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_SetCachedTemplates_0200 6949762338dSopenharmony_ci * @tc.name testFaceAuthTestSetCachedTemplates001 6959762338dSopenharmony_ci * @tc.desc test SetCachedTemplates templateIdList empty 6969762338dSopenharmony_ci */ 6979762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestSetCachedTemplates001, Function | MediumTest | Level1) 6989762338dSopenharmony_ci{ 6999762338dSopenharmony_ci cout << "start test testFaceAuthTestSetCachedTemplates001" << endl; 7009762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 7019762338dSopenharmony_ci 7029762338dSopenharmony_ci int32_t ret = g_executorImpl.SetCachedTemplates(templateIdList); 7039762338dSopenharmony_ci cout << "ret is " << ret << endl; 7049762338dSopenharmony_ci EXPECT_EQ(ret, 0); 7059762338dSopenharmony_ci} 7069762338dSopenharmony_ci/** 7079762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_SetCachedTemplates_0300 7089762338dSopenharmony_ci * @tc.name testFaceAuthTestSetCachedTemplates002 7099762338dSopenharmony_ci * @tc.desc test SetCachedTemplates 1000 times 7109762338dSopenharmony_ci */ 7119762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestSetCachedTemplates002, Function | MediumTest | Level1) 7129762338dSopenharmony_ci{ 7139762338dSopenharmony_ci cout << "start test testFaceAuthTestSetCachedTemplates002" << endl; 7149762338dSopenharmony_ci std::vector<uint64_t> templateIdList; 7159762338dSopenharmony_ci FillTestUint64Vector(parcel, templateIdList); 7169762338dSopenharmony_ci 7179762338dSopenharmony_ci int32_t ret = 0; 7189762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 7199762338dSopenharmony_ci ret = g_executorImpl.SetCachedTemplates(templateIdList); 7209762338dSopenharmony_ci cout << "ret is " << ret << endl; 7219762338dSopenharmony_ci EXPECT_EQ(ret, 0); 7229762338dSopenharmony_ci } 7239762338dSopenharmony_ci} 7249762338dSopenharmony_ci/** 7259762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_RegisterSaCommandCallback_0200 7269762338dSopenharmony_ci * @tc.name testFaceAuthTestRegisterSaCommandCallback001 7279762338dSopenharmony_ci * @tc.desc test RegisterSaCommandCallback callbackObj null 7289762338dSopenharmony_ci */ 7299762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestRegisterSaCommandCallback001, Function | MediumTest | Level1) 7309762338dSopenharmony_ci{ 7319762338dSopenharmony_ci cout << "start test testFaceAuthTestRegisterSaCommandCallback001" << endl; 7329762338dSopenharmony_ci 7339762338dSopenharmony_ci int32_t ret = g_executorImpl.RegisterSaCommandCallback(nullptr); 7349762338dSopenharmony_ci 7359762338dSopenharmony_ci cout << "ret is " << ret << endl; 7369762338dSopenharmony_ci EXPECT_EQ(ret, 0); 7379762338dSopenharmony_ci} 7389762338dSopenharmony_ci/** 7399762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_RegisterSaCommandCallback_0300 7409762338dSopenharmony_ci * @tc.name testFaceAuthTestRegisterSaCommandCallback002 7419762338dSopenharmony_ci * @tc.desc test RegisterSaCommandCallback 1000 7429762338dSopenharmony_ci */ 7439762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestRegisterSaCommandCallback002, Function | MediumTest | Level1) 7449762338dSopenharmony_ci{ 7459762338dSopenharmony_ci cout << "start test testFaceAuthTestRegisterSaCommandCallback002" << endl; 7469762338dSopenharmony_ci sptr<ISaCommandCallback> callbackObj = nullptr; 7479762338dSopenharmony_ci FillTestISaCommandCallback(parcel, callbackObj); 7489762338dSopenharmony_ci 7499762338dSopenharmony_ci int32_t ret = 0; 7509762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 7519762338dSopenharmony_ci ret = g_executorImpl.RegisterSaCommandCallback(callbackObj); 7529762338dSopenharmony_ci 7539762338dSopenharmony_ci cout << "ret is " << ret << endl; 7549762338dSopenharmony_ci EXPECT_EQ(ret, 0); 7559762338dSopenharmony_ci } 7569762338dSopenharmony_ci} 7579762338dSopenharmony_ci/** 7589762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_SendMessage_0100 7599762338dSopenharmony_ci * @tc.name testFaceAuthTestSendMessage001 7609762338dSopenharmony_ci * @tc.desc test SetCachedTemplates 1000 times 7619762338dSopenharmony_ci */ 7629762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestSendMessage001, Function | MediumTest | Level1) 7639762338dSopenharmony_ci{ 7649762338dSopenharmony_ci cout << "start test testFaceAuthTestSendMessage001" << endl; 7659762338dSopenharmony_ci 7669762338dSopenharmony_ci uint64_t scheduleId = 0; 7679762338dSopenharmony_ci int32_t srcRole = 0; 7689762338dSopenharmony_ci std::vector<uint8_t> msg; 7699762338dSopenharmony_ci msg.resize(5); 7709762338dSopenharmony_ci int32_t ret = 0; 7719762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 7729762338dSopenharmony_ci ret = g_executorImpl.SendMessage(scheduleId, srcRole, msg); 7739762338dSopenharmony_ci cout << "ret is " << ret << endl; 7749762338dSopenharmony_ci EXPECT_EQ(ret, 0); 7759762338dSopenharmony_ci } 7769762338dSopenharmony_ci} 7779762338dSopenharmony_ci/** 7789762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_GetExecutorList_0200 7799762338dSopenharmony_ci * @tc.name testFaceAuthTestGetExecutorList001 7809762338dSopenharmony_ci * @tc.desc test GetExecutorList 1000 times 7819762338dSopenharmony_ci */ 7829762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestGetExecutorList001, Function | MediumTest | Level1) 7839762338dSopenharmony_ci{ 7849762338dSopenharmony_ci cout << "start test GetExecutorList" << endl; 7859762338dSopenharmony_ci FaceAuthInterfaceService faceauth_Interface; 7869762338dSopenharmony_ci std::vector<sptr<IAllInOneExecutor>> executorList; 7879762338dSopenharmony_ci int32_t ret = 0; 7889762338dSopenharmony_ci for (int32_t i = 0; i < 1000; i++) { 7899762338dSopenharmony_ci ret = faceauth_Interface.GetExecutorList(executorList); 7909762338dSopenharmony_ci cout << "ret is " << ret << endl; 7919762338dSopenharmony_ci EXPECT_EQ(ret, 0); 7929762338dSopenharmony_ci } 7939762338dSopenharmony_ci} 7949762338dSopenharmony_ci 7959762338dSopenharmony_ci/** 7969762338dSopenharmony_ci * @tc.number SUB_Security_Iam_FaceAuth_HDI_OnResult_0100 7979762338dSopenharmony_ci * @tc.name testFaceAuthTestOnResult001 7989762338dSopenharmony_ci * @tc.desc test OnResult Callback 7999762338dSopenharmony_ci */ 8009762338dSopenharmony_ciHWTEST_F(UserIamFaceAuthTestAdditional, testFaceAuthTestOnResult001, Function | MediumTest | Level1) 8019762338dSopenharmony_ci{ 8029762338dSopenharmony_ci cout << "start test testFaceAuthTestOnResult001" << endl; 8039762338dSopenharmony_ci uint8_t commandId = parcel.ReadUint8(); 8049762338dSopenharmony_ci std::vector<uint8_t> extraInfo; 8059762338dSopenharmony_ci FillTestUint8Vector(parcel, extraInfo); 8069762338dSopenharmony_ci sptr<IExecutorCallback> callbackObj; 8079762338dSopenharmony_ci FillTestIExecutorCallback(parcel, callbackObj); 8089762338dSopenharmony_ci int32_t ret = g_executorImpl.SendCommand(commandId, extraInfo, callbackObj); 8099762338dSopenharmony_ci cout << "ret is " << ret << endl; 8109762338dSopenharmony_ci EXPECT_EQ(g_onResultFlag, true); 8119762338dSopenharmony_ci}