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 
16 #include "common_utils.h"
17 #include "nfc_chip_type_parser.h"
18 #include "se_impl.h"
19 #include "v1_0/infc_interface.h"
20 #include "v1_0/isecure_element_callback.h"
21 #include "v1_0/isecure_element_interface.h"
22 #include "v1_0/nfc_types.h"
23 #include "v1_0/secure_element_types.h"
24 #include <gtest/gtest.h>
25 #include <hdf_base.h>
26 #include <hdf_device_desc.h>
27 #include <hdf_log.h>
28 #include <hdf_sbuf_ipc.h>
29 #include <vector>
30 
31 using namespace OHOS::HDI::SecureElement::V1_0;
32 using namespace testing::ext;
33 using namespace std;
34 using namespace OHOS::HDI::Nfc;
35 using ISeHdiV1_0 = OHOS::HDI::SecureElement::V1_0::ISecureElementInterface;
36 using OHOS::HDI::SecureElement::V1_0::ISecureElementCallback;
37 using OHOS::HDI::SecureElement::V1_0::SecureElementStatus;
38 using namespace OHOS::NFC;
39 using namespace OHOS::SE;
40 std::vector<uint8_t> vecCommand = {128, 202, 159, 127, 0};
41 std::recursive_mutex mLock_{};
42 
43 class SeClientCallback : public ISecureElementCallback {
44 public:
SeClientCallback()45     explicit SeClientCallback() {}
46 
47     int32_t OnSeStateChanged(bool connected) override { return HDF_SUCCESS; }
48 };
49 
50 OHOS::sptr<ISeHdiV1_0> mSeHdi_ = nullptr;
51 OHOS::sptr<ISecureElementCallback> mSeHdiCallback = nullptr;
52 
53 class HdfNfcHdiTestAdditional : public testing::Test {
54 public:
55     static void SetUpTestCase();
56     static void TearDownTestCase();
57     void SetUp();
58     void TearDown();
59 };
SetUpTestCase()60 void HdfNfcHdiTestAdditional::SetUpTestCase()
61 {
62     mSeHdi_ = ISeHdiV1_0::Get();
63     mSeHdiCallback = new SeClientCallback();
64 }
TearDownTestCase()65 void HdfNfcHdiTestAdditional::TearDownTestCase() {}
SetUp()66 void HdfNfcHdiTestAdditional::SetUp() {}
TearDown()67 void HdfNfcHdiTestAdditional::TearDown() {}
68 
69 /**
70  * @tc.number : SUB_Communication_Secureelement_GetAtr_0200
71  * @tc.name   : testgetAtr001
72  * @tc.desc   : Enables the nfc controller and initialize the nfc core.Cycle 10 times.
73  */
HWTEST_F(HdfNfcHdiTestAdditional, testgetAtr001, TestSize.Level1)74 HWTEST_F(HdfNfcHdiTestAdditional, testgetAtr001, TestSize.Level1)
75 {
76     if (!NfcChipTypeParser::IsSupportedChipType()) {
77         printf("SeTerminal SUB_DriverSystem_secureElement_0200 1 ");
78         EXPECT_EQ(HDF_SUCCESS, 0);
79     } else {
80         if (mSeHdi_ == nullptr) {
81             printf("SeTerminal SUB_DriverSystem_secureElement_0200 2");
82             ASSERT_NE(nullptr, mSeHdi_);
83             return;
84         }
85         std::vector<uint8_t> vecResponse(255, 0);
86         int32_t ret;
87         for (int i = 0; i < 10; i++) {
88             ret = mSeHdi_->getAtr(vecResponse);
89             printf("SeTerminal SUB_DriverSystem_secureElement_0200 =  %d", ret);
90             EXPECT_EQ(0, ret);
91         }
92     }
93 }
94 
95 /**
96  * @tc.number : SUB_Communication_Secureelement_OpenLogicalChannel_0200
97  * @tc.name   : testOpenLogicalChannel001
98  * @tc.desc   : check openLogicalChannel,vecAid = 0
99  */
HWTEST_F(HdfNfcHdiTestAdditional, testOpenLogicalChannel001, TestSize.Level1)100 HWTEST_F(HdfNfcHdiTestAdditional, testOpenLogicalChannel001, TestSize.Level1)
101 {
102     if (!NfcChipTypeParser::IsSupportedChipType()) {
103         EXPECT_EQ(HDF_SUCCESS, 0);
104     } else {
105         if (mSeHdi_ == nullptr) {
106             ASSERT_NE(nullptr, mSeHdi_);
107             return;
108         }
109         std::lock_guard<std::recursive_mutex> lock(mLock_);
110         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
111         uint8_t channelNumber = 0;
112         std::vector<uint8_t> vecAid;
113         vecAid.push_back(0);
114         int p2 = 0x00;
115         static const std::string aid = "A000000151000000";
116         std::vector<uint8_t> vecResponse(255, 0);
117         CommonUtils::HexStringToBytesArray(aid, vecAid);
118         int32_t ret = mSeHdi_->openLogicalChannel(vecAid, p2, vecResponse, channelNumber, status);
119         EXPECT_EQ(0, ret);
120     }
121 }
122 
123 /**
124  * @tc.number : SUB_Communication_Secureelement_OpenLogicalChannel_0300
125  * @tc.name   : testOpenLogicalChannel002
126  * @tc.desc   : check openLogicalChannel,vecAid = 1
127  */
HWTEST_F(HdfNfcHdiTestAdditional, testOpenLogicalChannel002, TestSize.Level1)128 HWTEST_F(HdfNfcHdiTestAdditional, testOpenLogicalChannel002, TestSize.Level1)
129 {
130     if (!NfcChipTypeParser::IsSupportedChipType()) {
131         EXPECT_EQ(HDF_SUCCESS, 0);
132     } else {
133         if (mSeHdi_ == nullptr) {
134             ASSERT_NE(nullptr, mSeHdi_);
135             return;
136         }
137         std::lock_guard<std::recursive_mutex> lock(mLock_);
138         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
139         uint8_t channelNumber = 0;
140         std::vector<uint8_t> vecAid;
141         vecAid.push_back(1);
142         int p2 = 0x00;
143         static const std::string aid = "A000000151000000";
144         std::vector<uint8_t> vecResponse(255, 0);
145         CommonUtils::HexStringToBytesArray(aid, vecAid);
146         int32_t ret = mSeHdi_->openLogicalChannel(vecAid, p2, vecResponse, channelNumber, status);
147         EXPECT_EQ(0, ret);
148     }
149 }
150 
151 /**
152  * @tc.number : SUB_Communication_Secureelement_OpenLogicalChannel_0400
153  * @tc.name   : testOpenLogicalChannel003
154  * @tc.desc   : check openLogicalChannel,vecAid = 0,cycle 10 times.
155  */
HWTEST_F(HdfNfcHdiTestAdditional, testOpenLogicalChannel003, TestSize.Level1)156 HWTEST_F(HdfNfcHdiTestAdditional, testOpenLogicalChannel003, TestSize.Level1)
157 {
158     if (!NfcChipTypeParser::IsSupportedChipType()) {
159         EXPECT_EQ(HDF_SUCCESS, 0);
160     } else {
161         if (mSeHdi_ == nullptr) {
162             ASSERT_NE(nullptr, mSeHdi_);
163             return;
164         }
165         std::lock_guard<std::recursive_mutex> lock(mLock_);
166         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
167         uint8_t channelNumber = 0;
168         std::vector<uint8_t> vecAid;
169         vecAid.push_back(0);
170         int p2 = 0x00;
171         static const std::string aid = "A000000151000000";
172         std::vector<uint8_t> vecResponse(255, 0);
173         CommonUtils::HexStringToBytesArray(aid, vecAid);
174         int32_t ret;
175         for (int i = 0; i < 10; i++) {
176             ret = mSeHdi_->openLogicalChannel(vecAid, p2, vecResponse, channelNumber, status);
177             EXPECT_EQ(0, ret);
178         }
179     }
180 }
181 
182 /**
183  * @tc.number : SUB_Communication_Secureelement_OpenLogicalChannel_0300
184  * @tc.name   : testOpenLogicalChannel004
185  * @tc.desc   : check openLogicalChannel,vecAid = 1,cycle 10 times.
186  */
HWTEST_F(HdfNfcHdiTestAdditional, testOpenLogicalChannel004, TestSize.Level1)187 HWTEST_F(HdfNfcHdiTestAdditional, testOpenLogicalChannel004, TestSize.Level1)
188 {
189     if (!NfcChipTypeParser::IsSupportedChipType()) {
190         EXPECT_EQ(HDF_SUCCESS, 0);
191     } else {
192         if (mSeHdi_ == nullptr) {
193             ASSERT_NE(nullptr, mSeHdi_);
194             return;
195         }
196         std::lock_guard<std::recursive_mutex> lock(mLock_);
197         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
198         uint8_t channelNumber = 0;
199         std::vector<uint8_t> vecAid;
200         vecAid.push_back(1);
201         int p2 = 0x00;
202         static const std::string aid = "A000000151000000";
203         std::vector<uint8_t> vecResponse(255, 0);
204         CommonUtils::HexStringToBytesArray(aid, vecAid);
205         int32_t ret;
206         for (int i = 0; i < 10; i++) {
207             ret = mSeHdi_->openLogicalChannel(vecAid, p2, vecResponse, channelNumber, status);
208             EXPECT_EQ(0, ret);
209         }
210     }
211 }
212 
213 /**
214  * @tc.number : SUB_Communication_Secureelement_OpenBasicChannel_0200
215  * @tc.name   : testOpenBasicChannel001
216  * @tc.desc   : check openBasicChannel,vecAid = 0
217  */
HWTEST_F(HdfNfcHdiTestAdditional, testOpenBasicChannel001, TestSize.Level1)218 HWTEST_F(HdfNfcHdiTestAdditional, testOpenBasicChannel001, TestSize.Level1)
219 {
220     if (!NfcChipTypeParser::IsSupportedChipType()) {
221         EXPECT_EQ(HDF_SUCCESS, 0);
222     } else {
223         if (mSeHdi_ == nullptr) {
224             ASSERT_NE(nullptr, mSeHdi_);
225             return;
226         }
227         std::lock_guard<std::recursive_mutex> lock(mLock_);
228         int p2 = 0x00;
229         static const std::string aid = "A000000151000000";
230         std::vector<uint8_t> vecAid;
231         vecAid.push_back(0);
232         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
233         std::vector<uint8_t> vecResponse(255, 0);
234         CommonUtils::HexStringToBytesArray(aid, vecAid);
235         int32_t ret = mSeHdi_->openBasicChannel(vecAid, p2, vecResponse, status);
236         EXPECT_EQ(0, ret);
237     }
238 }
239 
240 /**
241  * @tc.number : SUB_Communication_Secureelement_OpenBasicChannel_0300
242  * @tc.name   : testOpenBasicChannel002
243  * @tc.desc   : check openBasicChannel,vecAid = 1
244  */
HWTEST_F(HdfNfcHdiTestAdditional, testOpenBasicChannel002, TestSize.Level1)245 HWTEST_F(HdfNfcHdiTestAdditional, testOpenBasicChannel002, TestSize.Level1)
246 {
247     if (!NfcChipTypeParser::IsSupportedChipType()) {
248         EXPECT_EQ(HDF_SUCCESS, 0);
249     } else {
250         if (mSeHdi_ == nullptr) {
251             ASSERT_NE(nullptr, mSeHdi_);
252             return;
253         }
254         std::lock_guard<std::recursive_mutex> lock(mLock_);
255         int p2 = 0x00;
256         static const std::string aid = "A000000151000000";
257         std::vector<uint8_t> vecAid;
258         vecAid.push_back(1);
259         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
260         std::vector<uint8_t> vecResponse(255, 0);
261         CommonUtils::HexStringToBytesArray(aid, vecAid);
262         int32_t ret = mSeHdi_->openBasicChannel(vecAid, p2, vecResponse, status);
263         EXPECT_EQ(0, ret);
264     }
265 }
266 
267 /**
268  * @tc.number : SUB_Communication_Secureelement_OpenBasicChannel_0400
269  * @tc.name   : testOpenBasicChannel003
270  * @tc.desc   : check openBasicChannel,vecAid = 0,cycle 10 times
271  */
HWTEST_F(HdfNfcHdiTestAdditional, testOpenBasicChannel003, TestSize.Level1)272 HWTEST_F(HdfNfcHdiTestAdditional, testOpenBasicChannel003, TestSize.Level1)
273 {
274     if (!NfcChipTypeParser::IsSupportedChipType()) {
275         EXPECT_EQ(HDF_SUCCESS, 0);
276     } else {
277         if (mSeHdi_ == nullptr) {
278             ASSERT_NE(nullptr, mSeHdi_);
279             return;
280         }
281         std::lock_guard<std::recursive_mutex> lock(mLock_);
282         int p2 = 0x00;
283         static const std::string aid = "A000000151000000";
284         std::vector<uint8_t> vecAid;
285         vecAid.push_back(0);
286         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
287         std::vector<uint8_t> vecResponse(255, 0);
288         CommonUtils::HexStringToBytesArray(aid, vecAid);
289         int32_t ret;
290         for (int i = 0; i < 10; i++) {
291             ret = mSeHdi_->openBasicChannel(vecAid, p2, vecResponse, status);
292             EXPECT_EQ(0, ret);
293         }
294     }
295 }
296 
297 /**
298  * @tc.number : SUB_Communication_Secureelement_OpenBasicChannel_0500
299  * @tc.name   : testOpenBasicChannel004
300  * @tc.desc   : check openBasicChannel,vecAid = 1,cycle 10 times
301  */
HWTEST_F(HdfNfcHdiTestAdditional, testOpenBasicChannel004, TestSize.Level1)302 HWTEST_F(HdfNfcHdiTestAdditional, testOpenBasicChannel004, TestSize.Level1)
303 {
304     if (!NfcChipTypeParser::IsSupportedChipType()) {
305         EXPECT_EQ(HDF_SUCCESS, 0);
306     } else {
307         if (mSeHdi_ == nullptr) {
308             ASSERT_NE(nullptr, mSeHdi_);
309             return;
310         }
311         std::lock_guard<std::recursive_mutex> lock(mLock_);
312         int p2 = 0x00;
313         static const std::string aid = "A000000151000000";
314         std::vector<uint8_t> vecAid;
315         vecAid.push_back(1);
316         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
317         std::vector<uint8_t> vecResponse(255, 0);
318         CommonUtils::HexStringToBytesArray(aid, vecAid);
319         int32_t ret;
320         for (int i = 0; i < 10; i++) {
321             ret = mSeHdi_->openBasicChannel(vecAid, p2, vecResponse, status);
322             EXPECT_EQ(0, ret);
323         }
324     }
325 }
326 
327 /**
328  * @tc.number : SUB_Communication_Secureelement_IsSecureElementPresent_0200
329  * @tc.name   : testIsSecureElementPresent001
330  * @tc.desc   : Specifically configures the nfc chip before starting RF discovering.
331  */
HWTEST_F(HdfNfcHdiTestAdditional, testIsSecureElementPresent001, TestSize.Level1)332 HWTEST_F(HdfNfcHdiTestAdditional, testIsSecureElementPresent001, TestSize.Level1)
333 {
334     if (!NfcChipTypeParser::IsSupportedChipType()) {
335         printf("SeTerminal SUB_DriverSystem_secureElement_0300 1 ");
336         EXPECT_EQ(HDF_SUCCESS, 0);
337     } else {
338         if (mSeHdi_ == nullptr) {
339             printf("SeTerminal SUB_DriverSystem_secureElement_0300 2 ");
340             ASSERT_NE(nullptr, mSeHdi_);
341             return;
342         }
343         bool present = false;
344         int32_t ret;
345         for (int i = 0; i < 10; i++) {
346             ret = mSeHdi_->isSecureElementPresent(present);
347             printf("SeTerminal SUB_DriverSystem_secureElement_0300 =  %d", ret);
348             EXPECT_EQ(0, ret);
349         }
350     }
351 }
352 
353 /**
354  * @tc.number : SUB_Communication_Secureelement_CloseChannel_0200
355  * @tc.name   : testCloseChannel001
356  * @tc.desc   : check closeChannel,channelNumber = 1
357  */
HWTEST_F(HdfNfcHdiTestAdditional, testCloseChannel001, TestSize.Level1)358 HWTEST_F(HdfNfcHdiTestAdditional, testCloseChannel001, TestSize.Level1)
359 {
360     if (!NfcChipTypeParser::IsSupportedChipType()) {
361         EXPECT_EQ(HDF_SUCCESS, 0);
362     } else {
363         if (mSeHdi_ == nullptr) {
364             ASSERT_NE(nullptr, mSeHdi_);
365             return;
366         }
367         uint8_t channelNumber = 1;
368         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
369         int32_t ret = mSeHdi_->closeChannel(channelNumber, status);
370         EXPECT_EQ(0, ret);
371     }
372 }
373 
374 /**
375  * @tc.number : SUB_Communication_Secureelement_CloseChannel_0300
376  * @tc.name   : testCloseChannel002
377  * @tc.desc   : check closeChannel,channelNumber = 0,cycle 10 times
378  */
HWTEST_F(HdfNfcHdiTestAdditional, testCloseChannel002, TestSize.Level1)379 HWTEST_F(HdfNfcHdiTestAdditional, testCloseChannel002, TestSize.Level1)
380 {
381     if (!NfcChipTypeParser::IsSupportedChipType()) {
382         EXPECT_EQ(HDF_SUCCESS, 0);
383     } else {
384         if (mSeHdi_ == nullptr) {
385             ASSERT_NE(nullptr, mSeHdi_);
386             return;
387         }
388         uint8_t channelNumber = 0;
389         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
390         int32_t ret;
391         for (int i = 0; i < 10; i++) {
392             ret = mSeHdi_->closeChannel(channelNumber, status);
393             EXPECT_EQ(0, ret);
394         }
395     }
396 }
397 
398 /**
399  * @tc.number : SUB_Communication_Secureelement_CloseChannel_0400
400  * @tc.name   : testCloseChannel003
401  * @tc.desc   : check closeChannel,channelNumber = 1,cycle 10 times
402  */
HWTEST_F(HdfNfcHdiTestAdditional, testCloseChannel003, TestSize.Level1)403 HWTEST_F(HdfNfcHdiTestAdditional, testCloseChannel003, TestSize.Level1)
404 {
405     if (!NfcChipTypeParser::IsSupportedChipType()) {
406         EXPECT_EQ(HDF_SUCCESS, 0);
407     } else {
408         if (mSeHdi_ == nullptr) {
409             ASSERT_NE(nullptr, mSeHdi_);
410             return;
411         }
412         uint8_t channelNumber = 1;
413         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
414         int32_t ret;
415         for (int i = 0; i < 10; i++) {
416             ret = mSeHdi_->closeChannel(channelNumber, status);
417             EXPECT_EQ(0, ret);
418         }
419     }
420 }
421 
422 /**
423  * @tc.number : SUB_Communication_Secureelement_Transmit_0200
424  * @tc.name   : testTransmit001
425  * @tc.desc   : check transmit,vecCommand = 0
426  */
HWTEST_F(HdfNfcHdiTestAdditional, testTransmit001, TestSize.Level1)427 HWTEST_F(HdfNfcHdiTestAdditional, testTransmit001, TestSize.Level1)
428 {
429     if (!NfcChipTypeParser::IsSupportedChipType()) {
430         EXPECT_EQ(HDF_SUCCESS, 0);
431     } else {
432         if (mSeHdi_ == nullptr) {
433             ASSERT_NE(nullptr, mSeHdi_);
434             return;
435         }
436         static const std::string aid = "A000000151000000";
437         std::vector<uint8_t> vecCommand;
438         vecCommand.push_back(0);
439         std::vector<uint8_t> vecResponse(255, 0);
440         CommonUtils::HexStringToBytesArray(aid, vecCommand);
441         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
442         int32_t ret = mSeHdi_->transmit(vecCommand, vecResponse, status);
443         EXPECT_EQ(0, ret);
444     }
445 }
446 
447 /**
448  * @tc.number : SUB_Communication_Secureelement_Transmit_0300
449  * @tc.name   : testTransmit002
450  * @tc.desc   : check transmit,vecCommand = 1
451  */
HWTEST_F(HdfNfcHdiTestAdditional, testTransmit002, TestSize.Level1)452 HWTEST_F(HdfNfcHdiTestAdditional, testTransmit002, TestSize.Level1)
453 {
454     if (!NfcChipTypeParser::IsSupportedChipType()) {
455         EXPECT_EQ(HDF_SUCCESS, 0);
456     } else {
457         if (mSeHdi_ == nullptr) {
458             ASSERT_NE(nullptr, mSeHdi_);
459             return;
460         }
461         static const std::string aid = "A000000151000000";
462         std::vector<uint8_t> vecCommand;
463         vecCommand.push_back(1);
464         std::vector<uint8_t> vecResponse(255, 0);
465         CommonUtils::HexStringToBytesArray(aid, vecCommand);
466         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
467         int32_t ret = mSeHdi_->transmit(vecCommand, vecResponse, status);
468         EXPECT_EQ(0, ret);
469     }
470 }
471 
472 /**
473  * @tc.number : SUB_Communication_Secureelement_Transmit_0400
474  * @tc.name   : testTransmit003
475  * @tc.desc   : check transmit,vecCommand = 0,cycle 10 times
476  */
HWTEST_F(HdfNfcHdiTestAdditional, testTransmit003, TestSize.Level1)477 HWTEST_F(HdfNfcHdiTestAdditional, testTransmit003, TestSize.Level1)
478 {
479     if (!NfcChipTypeParser::IsSupportedChipType()) {
480         EXPECT_EQ(HDF_SUCCESS, 0);
481     } else {
482         if (mSeHdi_ == nullptr) {
483             ASSERT_NE(nullptr, mSeHdi_);
484             return;
485         }
486         static const std::string aid = "A000000151000000";
487         std::vector<uint8_t> vecCommand;
488         vecCommand.push_back(0);
489         std::vector<uint8_t> vecResponse(255, 0);
490         CommonUtils::HexStringToBytesArray(aid, vecCommand);
491         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
492         int32_t ret;
493         for (int i = 0; i < 10; i++) {
494             ret = mSeHdi_->transmit(vecCommand, vecResponse, status);
495             EXPECT_EQ(0, ret);
496         }
497     }
498 }
499 
500 /**
501  * @tc.number : SUB_Communication_Secureelement_Transmit_0500
502  * @tc.name   : testTransmit004
503  * @tc.desc   : check transmit,vecCommand = 0,cycle 10 times
504  */
HWTEST_F(HdfNfcHdiTestAdditional, testTransmit004, TestSize.Level1)505 HWTEST_F(HdfNfcHdiTestAdditional, testTransmit004, TestSize.Level1)
506 {
507     if (!NfcChipTypeParser::IsSupportedChipType()) {
508         EXPECT_EQ(HDF_SUCCESS, 0);
509     } else {
510         if (mSeHdi_ == nullptr) {
511             ASSERT_NE(nullptr, mSeHdi_);
512             return;
513         }
514         static const std::string aid = "A000000151000000";
515         std::vector<uint8_t> vecCommand;
516         vecCommand.push_back(1);
517         std::vector<uint8_t> vecResponse(255, 0);
518         CommonUtils::HexStringToBytesArray(aid, vecCommand);
519         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
520         int32_t ret;
521         for (int i = 0; i < 10; i++) {
522             ret = mSeHdi_->transmit(vecCommand, vecResponse, status);
523             EXPECT_EQ(0, ret);
524         }
525     }
526 }
527 
528 /**
529  * @tc.number : SUB_Communication_Secureelement_Reset_0200
530  * @tc.name   : testReset001
531  * @tc.desc   : Disables the nfc controller and releases the resource,cycle 10 times
532  */
HWTEST_F(HdfNfcHdiTestAdditional, testReset001, TestSize.Level1)533 HWTEST_F(HdfNfcHdiTestAdditional, testReset001, TestSize.Level1)
534 {
535     if (!NfcChipTypeParser::IsSupportedChipType()) {
536         EXPECT_EQ(HDF_SUCCESS, 0);
537     } else {
538         if (mSeHdi_ == nullptr) {
539             ASSERT_NE(nullptr, mSeHdi_);
540             return;
541         }
542         SecureElementStatus status = SecureElementStatus::SE_GENERAL_ERROR;
543         int32_t ret;
544         for (int i = 0; i < 10; i++) {
545             ret = mSeHdi_->reset(status);
546             EXPECT_EQ(0, ret);
547         }
548     }
549 }