1 /*
2  * Copyright (c) 2021-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "usbd_transfer_test.h"
17 
18 #include <iostream>
19 #include <vector>
20 
21 #include "UsbSubscriberTest.h"
22 #include "hdf_log.h"
23 #include "usb_ddk.h"
24 #include "usb_ddk_interface.h"
25 #include "securec.h"
26 #include "usbd_type.h"
27 #include "v1_1/iusb_interface.h"
28 #include "v1_1/usb_types.h"
29 
30 const int SLEEP_TIME = 3;
31 const uint8_t BUS_NUM_INVALID = 255;
32 const uint8_t DEV_ADDR_INVALID = 255;
33 const uint32_t MAX_BUFFER_LENGTH = 255;
34 const uint8_t INTERFACEID_OK = 1;
35 const uint8_t PIPE_ENDPOINTID_INVALID = 244;
36 const uint8_t PIPE_INTERFACEID_INVALID = 244;
37 // data interface have 2 point : 1->bulk_out 2->bulk_in
38 static const uint8_t POINTID_BULK_IN = USB_ENDPOINT_DIR_IN | 2;
39 static const uint8_t POINTID_BULK_OUT = USB_ENDPOINT_DIR_OUT | 1;
40 const int32_t ASHMEM_MAX_SIZE = 1024;
41 const uint8_t SAMPLE_DATA_1 = 1;
42 static const uint8_t SAMPLE_DATA_2 = 2;
43 static const uint8_t SAMPLE_DATA_3 = 3;
44 const int32_t TRANSFER_TIME_OUT = 1000;
45 const int32_t CTL_VALUE = 0x100;
46 
47 using namespace testing::ext;
48 using namespace OHOS;
49 using namespace OHOS::USB;
50 using namespace std;
51 using namespace OHOS::HDI::Usb::V1_0;
52 using namespace OHOS::HDI::Usb::V1_1;
53 
54 UsbDev UsbdTransferTest::dev_ = {0, 0};
55 sptr<UsbSubscriberTest> UsbdTransferTest::subscriber_ = nullptr;
56 namespace {
57 sptr<OHOS::HDI::Usb::V1_1::IUsbInterface> g_usbInterface = nullptr;
58 
InitAshmemOne(sptr<Ashmem> & asmptr,int32_t asmSize,uint8_t rflg)59 int32_t InitAshmemOne(sptr<Ashmem> &asmptr, int32_t asmSize, uint8_t rflg)
60 {
61     asmptr = Ashmem::CreateAshmem("ttashmem000", asmSize);
62     if (asmptr == nullptr) {
63         HDF_LOGE("InitAshmemOne CreateAshmem failed");
64         return HDF_FAILURE;
65     }
66 
67     asmptr->MapReadAndWriteAshmem();
68 
69     if (rflg == 0) {
70         uint8_t tdata[ASHMEM_MAX_SIZE];
71         int32_t offset = 0;
72         int32_t tlen = 0;
73 
74         int32_t retSafe = memset_s(tdata, sizeof(tdata), 'Y', ASHMEM_MAX_SIZE);
75         if (retSafe != EOK) {
76             HDF_LOGE("InitAshmemOne memset_s failed");
77             return HDF_FAILURE;
78         }
79         while (offset < asmSize) {
80             tlen = (asmSize - offset) < ASHMEM_MAX_SIZE ? (asmSize - offset) : ASHMEM_MAX_SIZE;
81             asmptr->WriteToAshmem(tdata, tlen, offset);
82             offset += tlen;
83         }
84     }
85     return HDF_SUCCESS;
86 }
87 
SwitchErrCode(int32_t ret)88 int32_t SwitchErrCode(int32_t ret)
89 {
90     return ret == HDF_ERR_NOT_SUPPORT ? HDF_SUCCESS : ret;
91 }
92 
SetUpTestCase(void)93 void UsbdTransferTest::SetUpTestCase(void)
94 {
95     g_usbInterface = OHOS::HDI::Usb::V1_1::IUsbInterface::Get();
96     if (g_usbInterface == nullptr) {
97         HDF_LOGE("%{public}s:IUsbInterface::Get() failed.", __func__);
98         exit(0);
99     }
100     const int32_t DEFAULT_PORT_ID = 1;
101     const int32_t DEFAULT_ROLE_HOST = 1;
102     auto ret = g_usbInterface->SetPortRole(DEFAULT_PORT_ID, DEFAULT_ROLE_HOST, DEFAULT_ROLE_HOST);
103     sleep(SLEEP_TIME);
104     HDF_LOGI("UsbdTransferTest::[Device] %{public}d SetPortRole=%{public}d", __LINE__, ret);
105     ret = SwitchErrCode(ret);
106     ASSERT_EQ(0, ret);
107     if (ret != 0) {
108         exit(0);
109     }
110 
111     subscriber_ = new UsbSubscriberTest();
112     if (subscriber_ == nullptr) {
113         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
114         exit(0);
115     }
116     if (g_usbInterface->BindUsbdSubscriber(subscriber_) != HDF_SUCCESS) {
117         HDF_LOGE("%{public}s: bind usbd subscriber_ failed", __func__);
118         exit(0);
119     }
120 
121     std::cout << "please connect device, press enter to continue" << std::endl;
122     int c;
123     while ((c = getchar()) != '\n' && c != EOF) {}
124 
125     dev_ = {subscriber_->busNum_, subscriber_->devAddr_};
126     ret = g_usbInterface->OpenDevice(dev_);
127     HDF_LOGI("UsbdTransferTest:: %{public}d OpenDevice=%{public}d", __LINE__, ret);
128     ASSERT_EQ(0, ret);
129 }
130 
TearDownTestCase(void)131 void UsbdTransferTest::TearDownTestCase(void)
132 {
133     g_usbInterface->UnbindUsbdSubscriber(subscriber_);
134     dev_ = {subscriber_->busNum_, subscriber_->devAddr_};
135     auto ret = g_usbInterface->CloseDevice(dev_);
136     HDF_LOGI("UsbdTransferTest:: %{public}d Close=%{public}d", __LINE__, ret);
137     ASSERT_EQ(0, ret);
138 }
139 
SetUp(void)140 void UsbdTransferTest::SetUp(void) {}
141 
TearDown(void)142 void UsbdTransferTest::TearDown(void) {}
143 
144 /**
145  * @tc.name: UsbdControlTransferRead001
146  * @tc.desc: Test functions to ControlTransferRead
147  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
148  * @tc.desc: Positive test: parameters correctly, standard request: get configuration
149  * @tc.type: FUNC
150  */
151 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead001, TestSize.Level1)
152 {
153     struct UsbDev dev = dev_;
154     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
155     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
156     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
157     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead001 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
158     ASSERT_EQ(0, ret);
159 }
160 
161 /**
162  * @tc.name: UsbdControlTransferRead002
163  * @tc.desc: Test functions to ControlTransferRead
164  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
165  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get configuration
166  * @tc.type: FUNC
167  */
168 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead002, TestSize.Level1)
169 {
170     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
171     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
172     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
173     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
174     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead002 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
175     ASSERT_NE(ret, 0);
176 }
177 
178 /**
179  * @tc.name: UsbdControlTransferRead003
180  * @tc.desc: Test functions to ControlTransferRead
181  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
182  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get configuration
183  * @tc.type: FUNC
184  */
185 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead003, TestSize.Level1)
186 {
187     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
188     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
189     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
190     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
191     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead003 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
192     ASSERT_NE(ret, 0);
193 }
194 
195 /**
196  * @tc.name: UsbdControlTransferRead004
197  * @tc.desc: Test functions to ControlTransferRead
198  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
199  * @tc.desc: Positive test: parameters correctly, standard request: get descriptor(device)
200  * @tc.type: FUNC
201  */
202 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead004, TestSize.Level1)
203 {
204     struct UsbDev dev = dev_;
205     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
206     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0,
207         TRANSFER_TIME_OUT};
208     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
209     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead004 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
210     ASSERT_EQ(0, ret);
211 }
212 
213 /**
214  * @tc.name: UsbdControlTransferRead005
215  * @tc.desc: Test functions to ControlTransferRead
216  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
217  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get descriptor(device)
218  * @tc.type: FUNC
219  */
220 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead005, TestSize.Level1)
221 {
222     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
223     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
224     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0,
225         TRANSFER_TIME_OUT};
226     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
227     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead005 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
228     ASSERT_NE(ret, 0);
229 }
230 
231 /**
232  * @tc.name: UsbdControlTransferRead006
233  * @tc.desc: Test functions to ControlTransferRead
234  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
235  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get descriptor(device)
236  * @tc.type: FUNC
237  */
238 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead006, TestSize.Level1)
239 {
240     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
241     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
242     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0,
243         TRANSFER_TIME_OUT};
244     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
245     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead006 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
246     ASSERT_NE(ret, 0);
247 }
248 
249 /**
250  * @tc.name: UsbdControlTransferRead007
251  * @tc.desc: Test functions to ControlTransferRead
252  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
253  * @tc.desc: Positive test: parameters correctly, standard request: get interface
254  * @tc.type: FUNC
255  */
256 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead007, TestSize.Level1)
257 {
258     struct UsbDev dev = dev_;
259     int32_t intercafeidex = 0;
260     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
261     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE,
262         USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
263     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
264     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead007 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
265     ASSERT_EQ(0, ret);
266 }
267 
268 /**
269  * @tc.name: UsbdControlTransferRead008
270  * @tc.desc: Test functions to ControlTransferRead
271  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
272  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get interface
273  * @tc.type: FUNC
274  */
275 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead008, TestSize.Level1)
276 {
277     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
278     int32_t intercafeidex = 0;
279     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
280     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE,
281         USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
282     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
283     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead008 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
284     ASSERT_NE(ret, 0);
285 }
286 
287 /**
288  * @tc.name: UsbdControlTransferRead009
289  * @tc.desc: Test functions to ControlTransferRead
290  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
291  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get interface
292  * @tc.type: FUNC
293  */
294 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead009, TestSize.Level1)
295 {
296     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
297     int32_t intercafeidex = 0;
298     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
299     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE,
300         USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
301     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
302     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead009 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
303     ASSERT_NE(ret, 0);
304 }
305 
306 /**
307  * @tc.name: UsbdControlTransferRead010
308  * @tc.desc: Test functions to ControlTransferRead
309  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
310  * @tc.desc: Positive test: parameters correctly, standard request: get status(recipient device)
311  * @tc.type: FUNC
312  */
313 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead010, TestSize.Level1)
314 {
315     struct UsbDev dev = dev_;
316     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
317     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, 0, 0, 0, TRANSFER_TIME_OUT};
318     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
319     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead010 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
320     ASSERT_EQ(0, ret);
321 }
322 
323 /**
324  * @tc.name: UsbdControlTransferRead011
325  * @tc.desc: Test functions to ControlTransferRead
326  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
327  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get status(device)
328  * @tc.type: FUNC
329  */
330 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead011, TestSize.Level1)
331 {
332     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
333     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
334     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, 0, 0, 0, TRANSFER_TIME_OUT};
335     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
336     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead011 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
337     ASSERT_NE(ret, 0);
338 }
339 
340 /**
341  * @tc.name: UsbdControlTransferRead012
342  * @tc.desc: Test functions to ControlTransferRead
343  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
344  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get status(device)
345  * @tc.type: FUNC
346  */
347 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead012, TestSize.Level1)
348 {
349     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
350     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
351     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, 0, 0, 0, TRANSFER_TIME_OUT};
352     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
353     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead012 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
354     ASSERT_NE(ret, 0);
355 }
356 
357 /**
358  * @tc.name: UsbdControlTransferRead013
359  * @tc.desc: Test functions to ControlTransferRead
360  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
361  * @tc.desc: Positive test: parameters correctly, standard request: get status(interface)
362  * @tc.type: FUNC
363  */
364 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead013, TestSize.Level1)
365 {
366     struct UsbDev dev = dev_;
367     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
368     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
369         TRANSFER_TIME_OUT};
370     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
371     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead013 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
372     ASSERT_EQ(0, ret);
373 }
374 
375 /**
376  * @tc.name: UsbdControlTransferRead014
377  * @tc.desc: Test functions to ControlTransferRead
378  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
379  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get status(interface)
380  * @tc.type: FUNC
381  */
382 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead014, TestSize.Level1)
383 {
384     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
385     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
386     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
387         TRANSFER_TIME_OUT};
388     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
389     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead014 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
390     ASSERT_NE(ret, 0);
391 }
392 
393 /**
394  * @tc.name: UsbdControlTransferRead015
395  * @tc.desc: Test functions to ControlTransferRead
396  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
397  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get status(interface)
398  * @tc.type: FUNC
399  */
400 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead015, TestSize.Level1)
401 {
402     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
403     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
404     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
405         TRANSFER_TIME_OUT};
406     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
407     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead015 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
408     ASSERT_NE(ret, 0);
409 }
410 
411 /**
412  * @tc.name: UsbdControlTransferRead016
413  * @tc.desc: Test functions to ControlTransferRead
414  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
415  * @tc.desc: Positive test: parameters correctly, standard request: get status(endpoint)
416  * @tc.type: FUNC
417  */
418 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead016, TestSize.Level1)
419 {
420     struct UsbDev dev = dev_;
421     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
422     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
423         TRANSFER_TIME_OUT};
424     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
425     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead016 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
426     ASSERT_EQ(0, ret);
427 }
428 
429 /**
430  * @tc.name: UsbdControlTransferRead017
431  * @tc.desc: Test functions to ControlTransferRead
432  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
433  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get status(endpoint)
434  * @tc.type: FUNC
435  */
436 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead017, TestSize.Level1)
437 {
438     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
439     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
440     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
441         TRANSFER_TIME_OUT};
442     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
443     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead017 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
444     ASSERT_NE(ret, 0);
445 }
446 
447 /**
448  * @tc.name: UsbdControlTransferRead018
449  * @tc.desc: Test functions to ControlTransferRead
450  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
451  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get status(endpoint)
452  * @tc.type: FUNC
453  */
454 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead018, TestSize.Level1)
455 {
456     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
457     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
458     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
459         TRANSFER_TIME_OUT};
460     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
461     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead018 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
462     ASSERT_NE(ret, 0);
463 }
464 
465 /**
466  * @tc.name: UsbdControlTransferRead019
467  * @tc.desc: Test functions to ControlTransferRead
468  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
469  * @tc.desc: Positive test: parameters correctly, standard request: sync frame
470  * @tc.type: FUNC
471  */
472 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead019, TestSize.Level1)
473 {
474     struct UsbDev dev = dev_;
475     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
476     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
477         0, 0, TRANSFER_TIME_OUT};
478     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
479     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead019 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
480     ASSERT_EQ(0, ret);
481 }
482 
483 /**
484  * @tc.name: UsbdControlTransferRead020
485  * @tc.desc: Test functions to ControlTransferRead
486  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
487  * @tc.desc: Negative test: parameters exception, busNum error, standard request: sync frame
488  * @tc.type: FUNC
489  */
490 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead020, TestSize.Level1)
491 {
492     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
493     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
494     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
495         0, 0, TRANSFER_TIME_OUT};
496     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
497     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead020 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
498     ASSERT_NE(ret, 0);
499 }
500 
501 /**
502  * @tc.name: UsbdControlTransferRead021
503  * @tc.desc: Test functions to ControlTransferRead
504  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
505  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: sync frame
506  * @tc.type: FUNC
507  */
508 HWTEST_F(UsbdTransferTest, UsbdControlTransferRead021, TestSize.Level1)
509 {
510     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
511     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
512     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
513         0, 0, TRANSFER_TIME_OUT};
514     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
515     HDF_LOGI("UsbdTransferTest::UsbdControlTransferRead021 %{public}d ControlTransfer=%{public}d", __LINE__, ret);
516     ASSERT_NE(ret, 0);
517 }
518 
519 /**
520  * @tc.name: UsbdControlTransferWrite001
521  * @tc.desc: Test functions to ControlTransferWrite
522  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
523  * @tc.desc: Positive test: parameters correctly
524  * @tc.type: FUNC
525  */
526 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite001, TestSize.Level1)
527 {
528     struct UsbDev dev = dev_;
529     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
530     bufferData.push_back(SAMPLE_DATA_1);
531     bufferData.push_back(SAMPLE_DATA_2);
532     bufferData.push_back(SAMPLE_DATA_3);
533     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT,
534         USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
535     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
536     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite001 %{public}d ret=%{public}d", __LINE__, ret);
537     ASSERT_EQ(0, ret);
538 }
539 
540 /**
541  * @tc.name: UsbdControlTransferWrite002
542  * @tc.desc: Test functions to ControlTransferWrite
543  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
544  * @tc.desc: Negative test: parameters exception, busNum error
545  * @tc.type: FUNC
546  */
547 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite002, TestSize.Level1)
548 {
549     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
550     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
551     bufferData.push_back(SAMPLE_DATA_1);
552     bufferData.push_back(SAMPLE_DATA_2);
553     bufferData.push_back(SAMPLE_DATA_3);
554     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE,
555         USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
556     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
557     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite002 %{public}d ret=%{public}d", __LINE__, ret);
558     ASSERT_NE(ret, 0);
559 }
560 
561 /**
562  * @tc.name: UsbdControlTransferWrite003
563  * @tc.desc: Test functions to ControlTransferWrite
564  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
565  * @tc.desc: Negative test: parameters exception, devAddr error
566  * @tc.type: FUNC
567  */
568 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite003, TestSize.Level1)
569 {
570     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
571     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
572     bufferData.push_back(SAMPLE_DATA_1);
573     bufferData.push_back(SAMPLE_DATA_2);
574     bufferData.push_back(SAMPLE_DATA_3);
575     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE,
576         USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
577     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
578     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite003 %{public}d ret=%{public}d", __LINE__, ret);
579     ASSERT_NE(ret, 0);
580 }
581 
582 /**
583  * @tc.name: UsbdControlTransferWrite004
584  * @tc.desc: Test functions to ControlTransferWrite
585  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
586  * @tc.desc: Positive test: parameters correctly
587  * @tc.type: FUNC
588  */
589 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite004, TestSize.Level1)
590 {
591     struct UsbDev dev = dev_;
592     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
593     bufferData.push_back(SAMPLE_DATA_1);
594     bufferData.push_back(SAMPLE_DATA_2);
595     bufferData.push_back(SAMPLE_DATA_3);
596     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT,
597         USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0, TRANSFER_TIME_OUT};
598     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
599     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite004 %{public}d ret=%{public}d", __LINE__, ret);
600     ASSERT_EQ(0, ret);
601 }
602 
603 /**
604  * @tc.name: UsbdControlTransferWrite005
605  * @tc.desc: Test functions to ControlTransferWrite
606  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
607  * @tc.desc: Negative test: parameters exception, busNum error
608  * @tc.type: FUNC
609  */
610 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite005, TestSize.Level1)
611 {
612     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
613     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
614     bufferData.push_back(SAMPLE_DATA_1);
615     bufferData.push_back(SAMPLE_DATA_2);
616     bufferData.push_back(SAMPLE_DATA_3);
617     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE,
618         USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0, TRANSFER_TIME_OUT};
619     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
620     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite005 %{public}d ret=%{public}d", __LINE__, ret);
621     ASSERT_NE(ret, 0);
622 }
623 
624 /**
625  * @tc.name: UsbdControlTransferWrite006
626  * @tc.desc: Test functions to ControlTransferWrite
627  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
628  * @tc.desc: Negative test: parameters exception, devAddr error
629  * @tc.type: FUNC
630  */
631 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite006, TestSize.Level1)
632 {
633     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
634     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
635     bufferData.push_back(SAMPLE_DATA_1);
636     bufferData.push_back(SAMPLE_DATA_2);
637     bufferData.push_back(SAMPLE_DATA_3);
638     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE,
639         USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0, TRANSFER_TIME_OUT};
640     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
641     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite006 %{public}d ret=%{public}d", __LINE__, ret);
642     ASSERT_NE(ret, 0);
643 }
644 
645 /**
646  * @tc.name: UsbdControlTransferWrite007
647  * @tc.desc: Test functions to ControlTransferWrite
648  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
649  * @tc.desc: Positive test: parameters correctly
650  * @tc.type: FUNC
651  */
652 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite007, TestSize.Level1)
653 {
654     struct UsbDev dev = dev_;
655     int32_t intercafeidex = 0;
656     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
657     bufferData.push_back(SAMPLE_DATA_1);
658     bufferData.push_back(SAMPLE_DATA_2);
659     bufferData.push_back(SAMPLE_DATA_3);
660     struct UsbCtrlTransfer ctrlparmas = {0, USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
661     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
662     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite007 %{public}d ret=%{public}d", __LINE__, ret);
663     ASSERT_EQ(0, ret);
664 }
665 
666 /**
667  * @tc.name: UsbdControlTransferWrite008
668  * @tc.desc: Test functions to ControlTransferWrite
669  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
670  * @tc.desc: Negative test: parameters exception, busNum error
671  * @tc.type: FUNC
672  */
673 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite008, TestSize.Level1)
674 {
675     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
676     int32_t intercafeidex = 0;
677     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
678     bufferData.push_back(SAMPLE_DATA_1);
679     bufferData.push_back(SAMPLE_DATA_2);
680     bufferData.push_back(SAMPLE_DATA_3);
681     struct UsbCtrlTransfer ctrlparmas = {0, USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
682     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
683     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite008 %{public}d ret=%{public}d", __LINE__, ret);
684     ASSERT_NE(ret, 0);
685 }
686 
687 /**
688  * @tc.name: UsbdControlTransferWrite009
689  * @tc.desc: Test functions to ControlTransferWrite
690  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
691  * @tc.desc: Negative test: parameters exception, devAddr error
692  * @tc.type: FUNC
693  */
694 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite009, TestSize.Level1)
695 {
696     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
697     int32_t intercafeidex = 0;
698     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
699     bufferData.push_back(SAMPLE_DATA_1);
700     bufferData.push_back(SAMPLE_DATA_2);
701     bufferData.push_back(SAMPLE_DATA_3);
702     struct UsbCtrlTransfer ctrlparmas = {0, USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
703     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
704     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite009 %{public}d ret=%{public}d", __LINE__, ret);
705     ASSERT_NE(ret, 0);
706 }
707 
708 /**
709  * @tc.name: UsbdControlTransferWrite010
710  * @tc.desc: Test functions to ControlTransferWrite
711  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
712  * @tc.desc: Positive test: parameters correctly
713  * @tc.type: FUNC
714  */
715 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite010, TestSize.Level1)
716 {
717     struct UsbDev dev = dev_;
718     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
719     bufferData.push_back(SAMPLE_DATA_1);
720     bufferData.push_back(SAMPLE_DATA_2);
721     bufferData.push_back(SAMPLE_DATA_3);
722     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT, USB_DDK_REQ_GET_DESCRIPTOR, 0, 0,
723         TRANSFER_TIME_OUT};
724     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
725     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite010 %{public}d ret=%{public}d", __LINE__, ret);
726     ASSERT_EQ(0, ret);
727 }
728 
729 /**
730  * @tc.name: UsbdControlTransferWrite011
731  * @tc.desc: Test functions to ControlTransferWrite
732  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
733  * @tc.desc: Negative test: parameters exception, busNum error
734  * @tc.type: FUNC
735  */
736 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite011, TestSize.Level1)
737 {
738     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
739     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
740     bufferData.push_back(SAMPLE_DATA_1);
741     bufferData.push_back(SAMPLE_DATA_2);
742     bufferData.push_back(SAMPLE_DATA_3);
743     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
744         TRANSFER_TIME_OUT};
745     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
746     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite011 %{public}d ret=%{public}d", __LINE__, ret);
747     ASSERT_NE(ret, 0);
748 }
749 
750 /**
751  * @tc.name: UsbdControlTransferWrite012
752  * @tc.desc: Test functions to ControlTransferWrite
753  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
754  * @tc.desc: Negative test: parameters exception, devAddr error
755  * @tc.type: FUNC
756  */
757 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite012, TestSize.Level1)
758 {
759     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
760     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
761     bufferData.push_back(SAMPLE_DATA_1);
762     bufferData.push_back(SAMPLE_DATA_2);
763     bufferData.push_back(SAMPLE_DATA_3);
764     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
765         TRANSFER_TIME_OUT};
766     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
767     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite012 %{public}d ret=%{public}d", __LINE__, ret);
768     ASSERT_NE(ret, 0);
769 }
770 
771 /**
772  * @tc.name: UsbdControlTransferWrite013
773  * @tc.desc: Test functions to ControlTransferWrite
774  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
775  * @tc.desc: Positive test: parameters correctly
776  * @tc.type: FUNC
777  */
778 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite013, TestSize.Level1)
779 {
780     struct UsbDev dev = dev_;
781     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
782     bufferData.push_back(SAMPLE_DATA_1);
783     bufferData.push_back(SAMPLE_DATA_2);
784     bufferData.push_back(SAMPLE_DATA_3);
785     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT, USB_DDK_REQ_GET_INTERFACE, 0, 0, TRANSFER_TIME_OUT};
786     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
787     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite013 %{public}d ret=%{public}d", __LINE__, ret);
788     ASSERT_EQ(0, ret);
789 }
790 
791 /**
792  * @tc.name: UsbdControlTransferWrite014
793  * @tc.desc: Test functions to ControlTransferWrite
794  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
795  * @tc.desc: Negative test: parameters exception, busNum error
796  * @tc.type: FUNC
797  */
798 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite014, TestSize.Level1)
799 {
800     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
801     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
802     bufferData.push_back(SAMPLE_DATA_1);
803     bufferData.push_back(SAMPLE_DATA_2);
804     bufferData.push_back(SAMPLE_DATA_3);
805     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT, 0, 0, 0, TRANSFER_TIME_OUT};
806     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
807     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite014 %{public}d ret=%{public}d", __LINE__, ret);
808     ASSERT_NE(ret, 0);
809 }
810 
811 /**
812  * @tc.name: UsbdControlTransferWrite015
813  * @tc.desc: Test functions to ControlTransferWrite
814  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
815  * @tc.desc: Negative test: parameters exception, devAddr error
816  * @tc.type: FUNC
817  */
818 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite015, TestSize.Level1)
819 {
820     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
821     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
822     bufferData.push_back(SAMPLE_DATA_1);
823     bufferData.push_back(SAMPLE_DATA_2);
824     bufferData.push_back(SAMPLE_DATA_3);
825     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT, 0, 0, 0, TRANSFER_TIME_OUT};
826     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
827     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite015 %{public}d ret=%{public}d", __LINE__, ret);
828     ASSERT_NE(ret, 0);
829 }
830 
831 /**
832  * @tc.name: UsbdControlTransferWrite016
833  * @tc.desc: Test functions to ControlTransferWrite
834  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
835  * @tc.desc: Positive test: parameters correctly
836  * @tc.type: FUNC
837  */
838 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite016, TestSize.Level1)
839 {
840     struct UsbDev dev = dev_;
841     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
842     bufferData.push_back(SAMPLE_DATA_1);
843     bufferData.push_back(SAMPLE_DATA_2);
844     bufferData.push_back(SAMPLE_DATA_3);
845     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT, USB_DDK_REQ_GET_CONFIGURATION, 0, 0,
846         TRANSFER_TIME_OUT};
847     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
848     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite016 %{public}d ret=%{public}d", __LINE__, ret);
849     ASSERT_EQ(0, ret);
850 }
851 
852 /**
853  * @tc.name: UsbdControlTransferWrite017
854  * @tc.desc: Test functions to ControlTransferWrite
855  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
856  * @tc.desc: Negative test: parameters exception, busNum error
857  * @tc.type: FUNC
858  */
859 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite017, TestSize.Level1)
860 {
861     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
862     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
863     bufferData.push_back(SAMPLE_DATA_1);
864     bufferData.push_back(SAMPLE_DATA_2);
865     bufferData.push_back(SAMPLE_DATA_3);
866     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
867         TRANSFER_TIME_OUT};
868     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
869     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite017 %{public}d ret=%{public}d", __LINE__, ret);
870     ASSERT_NE(ret, 0);
871 }
872 
873 /**
874  * @tc.name: UsbdControlTransferWrite018
875  * @tc.desc: Test functions to ControlTransferWrite
876  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
877  * @tc.desc: Negative test: parameters exception, devAddr error
878  * @tc.type: FUNC
879  */
880 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite018, TestSize.Level1)
881 {
882     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
883     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
884     bufferData.push_back(SAMPLE_DATA_1);
885     bufferData.push_back(SAMPLE_DATA_2);
886     bufferData.push_back(SAMPLE_DATA_3);
887     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
888         TRANSFER_TIME_OUT};
889     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
890     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite018 %{public}d ret=%{public}d", __LINE__, ret);
891     ASSERT_NE(ret, 0);
892 }
893 
894 /**
895  * @tc.name: UsbdControlTransferWrite019
896  * @tc.desc: Test functions to ControlTransferWrite
897  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
898  * @tc.desc: Positive test: parameters correctly
899  * @tc.type: FUNC
900  */
901 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite019, TestSize.Level1)
902 {
903     struct UsbDev dev = dev_;
904     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
905     bufferData.push_back(SAMPLE_DATA_1);
906     bufferData.push_back(SAMPLE_DATA_2);
907     bufferData.push_back(SAMPLE_DATA_3);
908     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
909         0, 0, TRANSFER_TIME_OUT};
910     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
911     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite019 %{public}d ret=%{public}d", __LINE__, ret);
912     ASSERT_EQ(0, ret);
913 }
914 
915 /**
916  * @tc.name: UsbdControlTransferWrite020
917  * @tc.desc: Test functions to ControlTransferWrite
918  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
919  * @tc.desc: Negative test: parameters exception, busNum error
920  * @tc.type: FUNC
921  */
922 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite020, TestSize.Level1)
923 {
924     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
925     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
926     bufferData.push_back(SAMPLE_DATA_1);
927     bufferData.push_back(SAMPLE_DATA_2);
928     bufferData.push_back(SAMPLE_DATA_3);
929     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
930         0, 0, TRANSFER_TIME_OUT};
931     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
932     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite020 %{public}d ret=%{public}d", __LINE__, ret);
933     ASSERT_NE(ret, 0);
934 }
935 
936 /**
937  * @tc.name: UsbdControlTransferWrite021
938  * @tc.desc: Test functions to ControlTransferWrite
939  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
940  * @tc.desc: Negative test: parameters exception, devAddr error
941  * @tc.type: FUNC
942  */
943 HWTEST_F(UsbdTransferTest, UsbdControlTransferWrite021, TestSize.Level1)
944 {
945     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
946     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
947     bufferData.push_back(SAMPLE_DATA_1);
948     bufferData.push_back(SAMPLE_DATA_2);
949     bufferData.push_back(SAMPLE_DATA_3);
950     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
951         0, 0, TRANSFER_TIME_OUT};
952     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
953     HDF_LOGI("UsbdTransferTest::UsbdControlTransferWrite021 %{public}d ret=%{public}d", __LINE__, ret);
954     ASSERT_NE(ret, 0);
955 }
956 
957 /**
958  * @tc.name: UsbdControlTransferReadwithLength001
959  * @tc.desc: Test functions to ControlTransferReadwithLength
960  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
961  * @tc.desc: std::vector<uint8_t> &data);
962  * @tc.desc: Positive test: parameters correctly, standard request: get configuration
963  * @tc.type: FUNC
964  */
965 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength001, TestSize.Level1)
966 {
967     struct UsbDev dev = dev_;
968     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
969     struct UsbCtrlTransferParams ctrlparmas = {
970         USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_CONFIGURATION, 0, 0, 0, TRANSFER_TIME_OUT};
971     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
972     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength001 ret=%{public}d", ret);
973     ASSERT_EQ(0, ret);
974 }
975 
976 /**
977  * @tc.name: UsbdControlTransferReadwithLength002
978  * @tc.desc: Test functions to ControlTransferReadwithLength
979  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
980  * @tc.desc: std::vector<uint8_t> &data);
981  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get configuration
982  * @tc.type: FUNC
983  */
984 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength002, TestSize.Level1)
985 {
986     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
987     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
988     struct UsbCtrlTransferParams ctrlparmas = {
989         USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_CONFIGURATION, 0, 0, 0, TRANSFER_TIME_OUT};
990     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
991     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength002 ret=%{public}d", ret);
992     ASSERT_NE(ret, 0);
993 }
994 
995 /**
996  * @tc.name: UsbdControlTransferReadwithLength003
997  * @tc.desc: Test functions to ControlTransferReadwithLength
998  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
999  * @tc.desc: std::vector<uint8_t> &data);
1000  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get configuration
1001  * @tc.type: FUNC
1002  */
1003 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength003, TestSize.Level1)
1004 {
1005     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
1006     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1007     struct UsbCtrlTransferParams ctrlparmas = {
1008         USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_CONFIGURATION, 0, 0, 0, TRANSFER_TIME_OUT};
1009     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1010     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength003 ret=%{public}d", ret);
1011     ASSERT_NE(ret, 0);
1012 }
1013 
1014 /**
1015  * @tc.name: UsbdControlTransferReadwithLength004
1016  * @tc.desc: Test functions to ControlTransferReadwithLength
1017  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1018  * @tc.desc: std::vector<uint8_t> &data);
1019  * @tc.desc: Positive test: parameters correctly, standard request: get descriptor(device)
1020  * @tc.type: FUNC
1021  */
1022 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength004, TestSize.Level1)
1023 {
1024     struct UsbDev dev = dev_;
1025     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1026     struct UsbCtrlTransferParams ctrlparmas = {
1027         USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0, 0, TRANSFER_TIME_OUT};
1028     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1029     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength004 ret=%{public}d", ret);
1030     ASSERT_EQ(0, ret);
1031 }
1032 
1033 /**
1034  * @tc.name: UsbdControlTransferReadwithLength005
1035  * @tc.desc: Test functions to ControlTransferReadwithLength
1036  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1037  * @tc.desc: std::vector<uint8_t> &data);
1038  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get descriptor(device)
1039  * @tc.type: FUNC
1040  */
1041 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength005, TestSize.Level1)
1042 {
1043     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
1044     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1045     struct UsbCtrlTransferParams ctrlparmas = {
1046         USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0, 0, TRANSFER_TIME_OUT};
1047     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1048     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength005 ret=%{public}d", ret);
1049     ASSERT_NE(ret, 0);
1050 }
1051 
1052 /**
1053  * @tc.name: UsbdControlTransferReadwithLength006
1054  * @tc.desc: Test functions to ControlTransferReadwithLength
1055  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1056  * @tc.desc: std::vector<uint8_t> &data);
1057  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get descriptor(device)
1058  * @tc.type: FUNC
1059  */
1060 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength006, TestSize.Level1)
1061 {
1062     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
1063     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1064     struct UsbCtrlTransferParams ctrlparmas = {
1065         USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0, 0, TRANSFER_TIME_OUT};
1066     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1067     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength006 ret=%{public}d", ret);
1068     ASSERT_NE(ret, 0);
1069 }
1070 
1071 /**
1072  * @tc.name: UsbdControlTransferReadwithLength007
1073  * @tc.desc: Test functions to ControlTransferReadwithLength
1074  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1075  * @tc.desc: std::vector<uint8_t> &data);
1076  * @tc.desc: Positive test: parameters correctly, standard request: get interface
1077  * @tc.type: FUNC
1078  */
1079 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength007, TestSize.Level1)
1080 {
1081     struct UsbDev dev = dev_;
1082     int32_t intercafeidex = 0;
1083     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1084     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE,
1085         USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, 0, TRANSFER_TIME_OUT};
1086     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1087     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength007 ret=%{public}d", ret);
1088     ASSERT_EQ(0, ret);
1089 }
1090 
1091 /**
1092  * @tc.name: UsbdControlTransferReadwithLength008
1093  * @tc.desc: Test functions to ControlTransferReadwithLength
1094  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1095  * @tc.desc: std::vector<uint8_t> &data);
1096  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get interface
1097  * @tc.type: FUNC
1098  */
1099 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength008, TestSize.Level1)
1100 {
1101     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
1102     int32_t intercafeidex = 0;
1103     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1104     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE,
1105         USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, 0, TRANSFER_TIME_OUT};
1106     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1107     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength008 ret=%{public}d", ret);
1108     ASSERT_NE(ret, 0);
1109 }
1110 
1111 /**
1112  * @tc.name: UsbdControlTransferReadwithLength009
1113  * @tc.desc: Test functions to ControlTransferReadwithLength
1114  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1115  * @tc.desc: std::vector<uint8_t> &data);
1116  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get interface
1117  * @tc.type: FUNC
1118  */
1119 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength009, TestSize.Level1)
1120 {
1121     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
1122     int32_t intercafeidex = 0;
1123     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1124     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE,
1125         USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, 0, TRANSFER_TIME_OUT};
1126     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1127     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength009 ret=%{public}d", ret);
1128     ASSERT_NE(ret, 0);
1129 }
1130 
1131 /**
1132  * @tc.name: UsbdControlTransferReadwithLength010
1133  * @tc.desc: Test functions to ControlTransferReadwithLength
1134  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1135  * @tc.desc: std::vector<uint8_t> &data);
1136  * @tc.desc: Positive test: parameters correctly, standard request: get status(recipient device)
1137  * @tc.type: FUNC
1138  */
1139 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength010, TestSize.Level1)
1140 {
1141     struct UsbDev dev = dev_;
1142     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1143     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN, 0, 0, 0, 0, TRANSFER_TIME_OUT};
1144     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1145     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength010 ret=%{public}d", ret);
1146     ASSERT_EQ(0, ret);
1147 }
1148 
1149 /**
1150  * @tc.name: UsbdControlTransferReadwithLength011
1151  * @tc.desc: Test functions to ControlTransferReadwithLength
1152  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1153  * @tc.desc: std::vector<uint8_t> &data);
1154  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get status(device)
1155  * @tc.type: FUNC
1156  */
1157 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength011, TestSize.Level1)
1158 {
1159     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
1160     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1161     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN, 0, 0, 0, 0, TRANSFER_TIME_OUT};
1162     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1163     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength011 ret=%{public}d", ret);
1164     ASSERT_NE(ret, 0);
1165 }
1166 
1167 /**
1168  * @tc.name: UsbdControlTransferReadwithLength012
1169  * @tc.desc: Test functions to ControlTransferReadwithLength
1170  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1171  * @tc.desc: std::vector<uint8_t> &data);
1172  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get status(device)
1173  * @tc.type: FUNC
1174  */
1175 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength012, TestSize.Level1)
1176 {
1177     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
1178     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1179     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN, 0, 0, 0, 0, TRANSFER_TIME_OUT};
1180     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1181     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength012 ret=%{public}d", ret);
1182     ASSERT_NE(ret, 0);
1183 }
1184 
1185 /**
1186  * @tc.name: UsbdControlTransferReadwithLength013
1187  * @tc.desc: Test functions to ControlTransferReadwithLength
1188  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1189  * @tc.desc: std::vector<uint8_t> &data);
1190  * @tc.desc: Positive test: parameters correctly, standard request: get status(interface)
1191  * @tc.type: FUNC
1192  */
1193 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength013, TestSize.Level1)
1194 {
1195     struct UsbDev dev = dev_;
1196     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1197     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
1198         0, TRANSFER_TIME_OUT};
1199     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1200     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength013 ret=%{public}d", ret);
1201     ASSERT_EQ(0, ret);
1202 }
1203 
1204 /**
1205  * @tc.name: UsbdControlTransferReadwithLength014
1206  * @tc.desc: Test functions to ControlTransferReadwithLength
1207  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1208  * @tc.desc: std::vector<uint8_t> &data);
1209  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get status(interface)
1210  * @tc.type: FUNC
1211  */
1212 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength014, TestSize.Level1)
1213 {
1214     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
1215     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1216     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
1217         0, TRANSFER_TIME_OUT};
1218     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1219     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength014 ret%{public}d", ret);
1220     ASSERT_NE(ret, 0);
1221 }
1222 
1223 /**
1224  * @tc.name: UsbdControlTransferReadwithLength015
1225  * @tc.desc: Test functions to ControlTransferReadwithLength
1226  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1227  * @tc.desc: std::vector<uint8_t> &data);
1228  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get status(interface)
1229  * @tc.type: FUNC
1230  */
1231 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength015, TestSize.Level1)
1232 {
1233     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
1234     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1235     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
1236         0, TRANSFER_TIME_OUT};
1237     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1238     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength015 ret=%{public}d", ret);
1239     ASSERT_NE(ret, 0);
1240 }
1241 
1242 /**
1243  * @tc.name: UsbdControlTransferReadwithLength016
1244  * @tc.desc: Test functions to ControlTransferReadwithLength
1245  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1246  * @tc.desc: std::vector<uint8_t> &data);
1247  * @tc.desc: Positive test: parameters correctly, standard request: get status(endpoint)
1248  * @tc.type: FUNC
1249  */
1250 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength016, TestSize.Level1)
1251 {
1252     struct UsbDev dev = dev_;
1253     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1254     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
1255         0, TRANSFER_TIME_OUT};
1256     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1257     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength016 ret=%{public}d", ret);
1258     ASSERT_EQ(0, ret);
1259 }
1260 
1261 /**
1262  * @tc.name: UsbdControlTransferReadwithLength017
1263  * @tc.desc: Test functions to ControlTransferReadwithLength
1264  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1265  * @tc.desc: std::vector<uint8_t> &data);
1266  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get status(endpoint)
1267  * @tc.type: FUNC
1268  */
1269 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength017, TestSize.Level1)
1270 {
1271     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
1272     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1273     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
1274         0, TRANSFER_TIME_OUT};
1275     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1276     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength017 ret=%{public}d", ret);
1277     ASSERT_NE(ret, 0);
1278 }
1279 
1280 /**
1281  * @tc.name: UsbdControlTransferReadwithLength018
1282  * @tc.desc: Test functions to ControlTransferReadwithLength
1283  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1284  * @tc.desc: std::vector<uint8_t> &data);
1285  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get status(endpoint)
1286  * @tc.type: FUNC
1287  */
1288 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength018, TestSize.Level1)
1289 {
1290     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
1291     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1292     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
1293         0, TRANSFER_TIME_OUT};
1294     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1295     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength018 ret=%{public}d", ret);
1296     ASSERT_NE(ret, 0);
1297 }
1298 
1299 /**
1300  * @tc.name: UsbdControlTransferReadwithLength019
1301  * @tc.desc: Test functions to ControlTransferReadwithLength
1302  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1303  * @tc.desc: std::vector<uint8_t> &data);
1304  * @tc.desc: Positive test: parameters correctly, standard request: sync frame
1305  * @tc.type: FUNC
1306  */
1307 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength019, TestSize.Level1)
1308 {
1309     struct UsbDev dev = dev_;
1310     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1311     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT,
1312         USB_DDK_REQ_SYNCH_FRAME, 0, 0, 0, TRANSFER_TIME_OUT};
1313     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1314     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength019 ret=%{public}d", ret);
1315     ASSERT_EQ(0, ret);
1316 }
1317 
1318 /**
1319  * @tc.name: UsbdControlTransferReadwithLength020
1320  * @tc.desc: Test functions to ControlTransferReadwithLength
1321  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1322  * @tc.desc: std::vector<uint8_t> &data);
1323  * @tc.desc: Negative test: parameters exception, busNum error, standard request: sync frame
1324  * @tc.type: FUNC
1325  */
1326 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength020, TestSize.Level1)
1327 {
1328     struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr};
1329     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1330     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT,
1331         USB_DDK_REQ_SYNCH_FRAME, 0, 0, 0, TRANSFER_TIME_OUT};
1332     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1333     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength020 ret=%{public}d", ret);
1334     ASSERT_NE(ret, 0);
1335 }
1336 
1337 /**
1338  * @tc.name: UsbdControlTransferReadwithLength021
1339  * @tc.desc: Test functions to ControlTransferReadwithLength
1340  * @tc.desc: int32_t ControlTransferReadwithLength(const UsbDev &dev, UsbCtrlTransferParams &ctrl,
1341  * @tc.desc: std::vector<uint8_t> &data);
1342  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: sync frame
1343  * @tc.type: FUNC
1344  */
1345 HWTEST_F(UsbdTransferTest, UsbdControlTransferReadwithLength021, TestSize.Level1)
1346 {
1347     struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID};
1348     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1349     struct UsbCtrlTransferParams ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT,
1350         USB_DDK_REQ_SYNCH_FRAME, 0, 0, TRANSFER_TIME_OUT};
1351     auto ret = g_usbInterface->ControlTransferReadwithLength(dev, ctrlparmas, bufferData);
1352     HDF_LOGI("UsbdTransferTest::UsbdControlTransferReadwithLength021 ret=%{public}d", ret);
1353     ASSERT_NE(ret, 0);
1354 }
1355 
1356 /**
1357  * @tc.name: UsbdBulkTransferRead001
1358  * @tc.desc: Test functions to BulkTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1359  * std::vector<uint8_t> &data);
1360  * @tc.desc: Positive test: parameters correctly
1361  * @tc.type: FUNC
1362  */
1363 HWTEST_F(UsbdTransferTest, UsbdBulkTransferRead001, TestSize.Level1)
1364 {
1365     struct UsbDev dev = dev_;
1366     uint8_t interfaceId = INTERFACEID_OK;
1367     uint8_t pointid = POINTID_BULK_IN;
1368     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1369     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferRead001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1370     ASSERT_EQ(0, ret);
1371     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1372     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1373     ret = g_usbInterface->BulkTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1374     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferRead001 %{public}d UsbdBulkTransferRead=%{public}d", __LINE__, ret);
1375     ASSERT_EQ(0, ret);
1376 }
1377 
1378 /**
1379  * @tc.name: UsbdBulkTransferRead002
1380  * @tc.desc: Test functions to BulkTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1381  * std::vector<uint8_t> &data);
1382  * @tc.desc: Negative test: parameters exception, busNum error
1383  * @tc.type: FUNC
1384  */
1385 HWTEST_F(UsbdTransferTest, UsbdBulkTransferRead002, TestSize.Level1)
1386 {
1387     struct UsbDev dev = dev_;
1388     uint8_t interfaceId = INTERFACEID_OK;
1389     uint8_t pointid = POINTID_BULK_IN;
1390     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1391     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferRead002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1392     ASSERT_EQ(0, ret);
1393     dev.busNum = BUS_NUM_INVALID;
1394     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1395     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1396     ret = g_usbInterface->BulkTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1397     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferRead002 %{public}d UsbdBulkTransferRead=%{public}d", __LINE__, ret);
1398     ASSERT_NE(ret, 0);
1399 }
1400 
1401 /**
1402  * @tc.name: UsbdBulkTransferRead003
1403  * @tc.desc: Test functions to BulkTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1404  * std::vector<uint8_t> &data);
1405  * @tc.desc: Negative test: parameters exception, devAddr error
1406  * @tc.type: FUNC
1407  */
1408 HWTEST_F(UsbdTransferTest, UsbdBulkTransferRead003, TestSize.Level1)
1409 {
1410     struct UsbDev dev = dev_;
1411     uint8_t interfaceId = INTERFACEID_OK;
1412     uint8_t pointid = POINTID_BULK_IN;
1413     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1414     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferRead003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1415     ASSERT_EQ(0, ret);
1416     dev.devAddr = DEV_ADDR_INVALID;
1417     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1418     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1419     ret = g_usbInterface->BulkTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1420     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferRead003 %{public}d UsbdBulkTransferRead=%{public}d", __LINE__, ret);
1421     ASSERT_NE(ret, 0);
1422 }
1423 
1424 /**
1425  * @tc.name: UsbdBulkTransferRead004
1426  * @tc.desc: Test functions to BulkTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1427  * std::vector<uint8_t> &data);
1428  * @tc.desc: Negative test: parameters exception, intfId error
1429  * @tc.type: FUNC
1430  */
1431 HWTEST_F(UsbdTransferTest, UsbdBulkTransferRead004, TestSize.Level1)
1432 {
1433     struct UsbDev dev = dev_;
1434     uint8_t interfaceId = INTERFACEID_OK;
1435     uint8_t pointid = POINTID_BULK_IN;
1436     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1437     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferRead004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1438     ASSERT_EQ(0, ret);
1439     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1440     pipe.intfId = PIPE_INTERFACEID_INVALID;
1441     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1442     ret = g_usbInterface->BulkTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1443     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferRead004 %{public}d UsbdBulkTransferRead=%{public}d", __LINE__, ret);
1444     ASSERT_NE(ret, 0);
1445 }
1446 
1447 /**
1448  * @tc.name: UsbdBulkTransferRead005
1449  * @tc.desc: Test functions to BulkTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1450  * std::vector<uint8_t> &data);
1451  * @tc.desc: Negative test: parameters exception, endpointId error
1452  * @tc.type: FUNC
1453  */
1454 HWTEST_F(UsbdTransferTest, UsbdBulkTransferRead005, TestSize.Level1)
1455 {
1456     struct UsbDev dev = dev_;
1457     uint8_t interfaceId = INTERFACEID_OK;
1458     uint8_t pointid = POINTID_BULK_IN;
1459     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1460     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferRead005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1461     ASSERT_EQ(0, ret);
1462     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1463     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
1464     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1465     ret = g_usbInterface->BulkTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1466     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferRead005 %{public}d UsbdBulkTransferRead=%{public}d", __LINE__, ret);
1467     ASSERT_NE(ret, 0);
1468 }
1469 
1470 /**
1471  * @tc.name: UsbdBulkTransferWrite001
1472  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1473  * std::vector<uint8_t> &data);
1474  * @tc.desc: Positive test: parameters correctly
1475  * @tc.type: FUNC
1476  */
1477 HWTEST_F(UsbdTransferTest, UsbdBulkTransferWrite001, TestSize.Level1)
1478 {
1479     struct UsbDev dev = dev_;
1480     uint8_t interfaceId = INTERFACEID_OK;
1481     uint8_t pointid = POINTID_BULK_OUT;
1482     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1483     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1484     ASSERT_EQ(0, ret);
1485     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1486     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '1'};
1487     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1488     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite001 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1489     ASSERT_EQ(0, ret);
1490 }
1491 
1492 /**
1493  * @tc.name: UsbdBulkTransferWrite002
1494  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1495  * std::vector<uint8_t> &data);
1496  * @tc.desc: Negative test: parameters exception, busNum error
1497  * @tc.type: FUNC
1498  */
1499 HWTEST_F(UsbdTransferTest, UsbdBulkTransferWrite002, TestSize.Level1)
1500 {
1501     struct UsbDev dev = dev_;
1502     uint8_t interfaceId = INTERFACEID_OK;
1503     uint8_t pointid = POINTID_BULK_OUT;
1504     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1505     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1506     ASSERT_EQ(0, ret);
1507     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1508     dev.busNum = BUS_NUM_INVALID;
1509     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '2'};
1510     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1511     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite002 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1512     ASSERT_NE(ret, 0);
1513 }
1514 
1515 /**
1516  * @tc.name: UsbdBulkTransferWrite003
1517  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1518  * std::vector<uint8_t> &data);
1519  * @tc.desc: Negative test: parameters exception, devAddr error
1520  * @tc.type: FUNC
1521  */
1522 HWTEST_F(UsbdTransferTest, UsbdBulkTransferWrite003, TestSize.Level1)
1523 {
1524     struct UsbDev dev = dev_;
1525     uint8_t interfaceId = INTERFACEID_OK;
1526     uint8_t pointid = POINTID_BULK_OUT;
1527     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1528     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1529     ASSERT_EQ(0, ret);
1530     dev.devAddr = DEV_ADDR_INVALID;
1531     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1532     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '3'};
1533     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1534     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite003 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1535     ASSERT_NE(ret, 0);
1536 }
1537 
1538 /**
1539  * @tc.name: UsbdBulkTransferWrite004
1540  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1541  * std::vector<uint8_t> &data);
1542  * @tc.desc: Negative test: parameters exception, intfId error
1543  * @tc.type: FUNC
1544  */
1545 HWTEST_F(UsbdTransferTest, UsbdBulkTransferWrite004, TestSize.Level1)
1546 {
1547     struct UsbDev dev = dev_;
1548     uint8_t interfaceId = INTERFACEID_OK;
1549     uint8_t pointid = POINTID_BULK_OUT;
1550     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1551     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1552     ASSERT_EQ(0, ret);
1553     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1554     pipe.intfId = PIPE_INTERFACEID_INVALID;
1555     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '4'};
1556     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1557     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite004 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1558     ASSERT_NE(ret, 0);
1559 }
1560 
1561 /**
1562  * @tc.name: UsbdBulkTransferWrite005
1563  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1564  * std::vector<uint8_t> &data);
1565  * @tc.desc: Negative test: parameters exception, endpointId error
1566  * @tc.type: FUNC
1567  */
1568 HWTEST_F(UsbdTransferTest, UsbdBulkTransferWrite005, TestSize.Level1)
1569 {
1570     struct UsbDev dev = dev_;
1571     uint8_t interfaceId = INTERFACEID_OK;
1572     uint8_t pointid = POINTID_BULK_OUT;
1573     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1574     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1575     ASSERT_EQ(0, ret);
1576     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1577     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
1578     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '5'};
1579     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1580     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite005 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1581     ASSERT_NE(ret, 0);
1582 }
1583 
1584 /**
1585  * @tc.name: UsbdBulkTransferWrite006
1586  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1587  * std::vector<uint8_t> &data);
1588  * @tc.desc: Negative test: parameters exception, busNum && devAddr error
1589  * @tc.type: FUNC
1590  */
1591 HWTEST_F(UsbdTransferTest, UsbdBulkTransferWrite006, TestSize.Level1)
1592 {
1593     struct UsbDev dev = dev_;
1594     uint8_t interfaceId = INTERFACEID_OK;
1595     uint8_t pointid = POINTID_BULK_OUT;
1596     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1597     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite006 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1598     ASSERT_EQ(0, ret);
1599     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1600     dev.busNum = BUS_NUM_INVALID;
1601     dev.devAddr = DEV_ADDR_INVALID;
1602     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '6'};
1603     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1604     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite006 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1605     ASSERT_NE(ret, 0);
1606 }
1607 
1608 /**
1609  * @tc.name: UsbdBulkTransferWrite007
1610  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1611  * std::vector<uint8_t> &data);
1612  * @tc.desc: Negative test: parameters exception, ClaimInterface failed first
1613  * @tc.type: FUNC
1614  */
1615 HWTEST_F(UsbdTransferTest, UsbdBulkTransferWrite007, TestSize.Level1)
1616 {
1617     struct UsbDev dev = dev_;
1618     uint8_t interfaceId = INTERFACEID_OK;
1619     uint8_t pointid = PIPE_ENDPOINTID_INVALID;
1620     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1621     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite007 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1622     ASSERT_EQ(0, ret);
1623     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1624     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '7'};
1625     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1626     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite007 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1627     ASSERT_NE(ret, 0);
1628 }
1629 
1630 /**
1631  * @tc.name: UsbdBulkTransferWrite008
1632  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1633  * std::vector<uint8_t> &data);
1634  * @tc.desc: Positive test: parameters correctly, different in timeout
1635  * @tc.type: FUNC
1636  */
1637 HWTEST_F(UsbdTransferTest, UsbdBulkTransferWrite008, TestSize.Level1)
1638 {
1639     struct UsbDev dev = dev_;
1640     uint8_t interfaceId = INTERFACEID_OK;
1641     uint8_t pointid = POINTID_BULK_OUT;
1642     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1643     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite008 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1644     ASSERT_EQ(0, ret);
1645     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1646     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '8'};
1647     ret = g_usbInterface->BulkTransferWrite(dev, pipe, -1, bufferData);
1648     HDF_LOGI("UsbdTransferTest::UsbdBulkTransferWrite008 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1649     ASSERT_EQ(0, ret);
1650 }
1651 
1652 /**
1653  * @tc.name: InterruptTransferRead001
1654  * @tc.desc: Test functions to InterruptTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1655  * std::vector<uint8_t> &data);
1656  * @tc.desc: Positive test: parameters correctly
1657  * @tc.type: FUNC
1658  */
1659 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferRead001, TestSize.Level1)
1660 {
1661     struct UsbDev dev = dev_;
1662     uint8_t interfaceId = INTERFACEID_OK;
1663     uint8_t pointid = POINTID_BULK_IN;
1664     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1665     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferRead001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1666     ASSERT_EQ(0, ret);
1667     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1668     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1669     ret = g_usbInterface->InterruptTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1670     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferRead001 %{public}d UsbdInterruptTransferRead=%{public}d",
1671         __LINE__, ret);
1672     ASSERT_EQ(0, ret);
1673 }
1674 
1675 /**
1676  * @tc.name: UsbdInterruptTransferRead002
1677  * @tc.desc: Test functions to InterruptTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1678  * std::vector<uint8_t> &data);
1679  * @tc.desc: Negative test: parameters exception, busNum error
1680  * @tc.type: FUNC
1681  */
1682 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferRead002, TestSize.Level1)
1683 {
1684     struct UsbDev dev = dev_;
1685     uint8_t interfaceId = INTERFACEID_OK;
1686     uint8_t pointid = POINTID_BULK_IN;
1687     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1688     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferRead002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1689     ASSERT_EQ(0, ret);
1690     dev.busNum = BUS_NUM_INVALID;
1691     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1692     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1693     ret = g_usbInterface->InterruptTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1694     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferRead002 %{public}d UsbdInterruptTransferRead=%{public}d",
1695         __LINE__, ret);
1696     ASSERT_NE(ret, 0);
1697 }
1698 
1699 /**
1700  * @tc.name: UsbdInterruptTransferRead003
1701  * @tc.desc: Test functions to InterruptTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1702  * std::vector<uint8_t> &data);
1703  * @tc.desc: Negative test: parameters exception, devAddr error
1704  * @tc.type: FUNC
1705  */
1706 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferRead003, TestSize.Level1)
1707 {
1708     struct UsbDev dev = dev_;
1709     uint8_t interfaceId = INTERFACEID_OK;
1710     uint8_t pointid = POINTID_BULK_IN;
1711     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1712     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferRead003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1713     ASSERT_EQ(0, ret);
1714     dev.devAddr = DEV_ADDR_INVALID;
1715     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1716     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1717     ret = g_usbInterface->InterruptTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1718     ASSERT_NE(ret, 0);
1719 }
1720 
1721 /**
1722  * @tc.name: UsbdInterruptTransferRead004
1723  * @tc.desc: Test functions to InterruptTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1724  * std::vector<uint8_t> &data);
1725  * @tc.desc: Negative test: parameters exception, intfId error
1726  * @tc.type: FUNC
1727  */
1728 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferRead004, TestSize.Level1)
1729 {
1730     struct UsbDev dev = dev_;
1731     uint8_t interfaceId = INTERFACEID_OK;
1732     uint8_t pointid = POINTID_BULK_IN;
1733     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1734     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferRead004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1735     ASSERT_EQ(0, ret);
1736     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1737     pipe.intfId = PIPE_INTERFACEID_INVALID;
1738     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1739     ret = g_usbInterface->InterruptTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1740     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferRead004 %{public}d UsbdInterruptTransferRead=%{public}d",
1741         __LINE__, ret);
1742     ASSERT_NE(ret, 0);
1743 }
1744 
1745 /**
1746  * @tc.name: UsbdInterruptTransferRead005
1747  * @tc.desc: Test functions to InterruptTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1748  * std::vector<uint8_t> &data);
1749  * @tc.desc: Negative test: parameters exception, endpointId error
1750  * @tc.type: FUNC
1751  */
1752 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferRead005, TestSize.Level1)
1753 {
1754     struct UsbDev dev = dev_;
1755     uint8_t interfaceId = INTERFACEID_OK;
1756     uint8_t pointid = POINTID_BULK_IN;
1757     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1758     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferRead005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1759     ASSERT_EQ(0, ret);
1760     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1761     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
1762     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1763     ret = g_usbInterface->InterruptTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1764     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferRead005 %{public}d UsbdInterruptTransferRead=%{public}d",
1765         __LINE__, ret);
1766     ASSERT_NE(ret, 0);
1767 }
1768 
1769 /**
1770  * @tc.name: UsbdInterruptTransferWrite001
1771  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1772  * std::vector<uint8_t> &data);
1773  * @tc.desc: Positive test: parameters correctly
1774  * @tc.type: FUNC
1775  */
1776 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferWrite001, TestSize.Level1)
1777 {
1778     struct UsbDev dev = dev_;
1779     uint8_t interfaceId = INTERFACEID_OK;
1780     uint8_t pointid = POINTID_BULK_OUT;
1781     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1782     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferWrite001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1783     ASSERT_EQ(0, ret);
1784     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1785     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '1'};
1786     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1787     HDF_LOGI(
1788         "UsbdTransferTest::UsbdInterruptTransferWrite001 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1789     ASSERT_EQ(0, ret);
1790 }
1791 
1792 /**
1793  * @tc.name: UsbdInterruptTransferWrite002
1794  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1795  * std::vector<uint8_t> &data);
1796  * @tc.desc: Negative test: parameters exception, busNum error
1797  * @tc.type: FUNC
1798  */
1799 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferWrite002, TestSize.Level1)
1800 {
1801     struct UsbDev dev = dev_;
1802     uint8_t interfaceId = INTERFACEID_OK;
1803     uint8_t pointid = POINTID_BULK_OUT;
1804     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1805     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferWrite002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1806     ASSERT_EQ(0, ret);
1807     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1808     dev.busNum = BUS_NUM_INVALID;
1809     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '2'};
1810     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1811     HDF_LOGI(
1812         "UsbdTransferTest::UsbdInterruptTransferWrite002 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1813     ASSERT_NE(ret, 0);
1814 }
1815 
1816 /**
1817  * @tc.name: UsbdInterruptTransferWrite003
1818  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1819  * std::vector<uint8_t> &data);
1820  * @tc.desc: Negative test: parameters exception, devAddr error
1821  * @tc.type: FUNC
1822  */
1823 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferWrite003, TestSize.Level1)
1824 {
1825     struct UsbDev dev = dev_;
1826     uint8_t interfaceId = INTERFACEID_OK;
1827     uint8_t pointid = POINTID_BULK_OUT;
1828     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1829     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferWrite003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1830     ASSERT_EQ(0, ret);
1831     dev.devAddr = DEV_ADDR_INVALID;
1832     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1833     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '3'};
1834     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1835     HDF_LOGI(
1836         "UsbdTransferTest::UsbdInterruptTransferWrite003 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1837     ASSERT_NE(ret, 0);
1838 }
1839 
1840 /**
1841  * @tc.name: UsbdInterruptTransferWrite004
1842  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1843  * std::vector<uint8_t> &data);
1844  * @tc.desc: Negative test: parameters exception, intfId error
1845  * @tc.type: FUNC
1846  */
1847 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferWrite004, TestSize.Level1)
1848 {
1849     struct UsbDev dev = dev_;
1850     uint8_t interfaceId = INTERFACEID_OK;
1851     uint8_t pointid = POINTID_BULK_OUT;
1852     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1853     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferWrite004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1854     ASSERT_EQ(0, ret);
1855     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1856     pipe.intfId = PIPE_INTERFACEID_INVALID;
1857     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '4'};
1858     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1859     HDF_LOGI(
1860         "UsbdTransferTest::UsbdInterruptTransferWrite004 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1861     ASSERT_NE(ret, 0);
1862 }
1863 
1864 /**
1865  * @tc.name: UsbdInterruptTransferWrite005
1866  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1867  * std::vector<uint8_t> &data);
1868  * @tc.desc: Negative test: parameters exception, endpointId error
1869  * @tc.type: FUNC
1870  */
1871 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferWrite005, TestSize.Level1)
1872 {
1873     struct UsbDev dev = dev_;
1874     uint8_t interfaceId = INTERFACEID_OK;
1875     uint8_t pointid = POINTID_BULK_OUT;
1876     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1877     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferWrite005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1878     ASSERT_EQ(0, ret);
1879     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1880     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
1881     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '5'};
1882     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1883     HDF_LOGI(
1884         "UsbdTransferTest::UsbdInterruptTransferWrite005 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1885     ASSERT_NE(ret, 0);
1886 }
1887 
1888 /**
1889  * @tc.name: UsbdInterruptTransferWrite006
1890  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1891  * std::vector<uint8_t> &data);
1892  * @tc.desc: Negative test: parameters exception, busNum && devAddr error
1893  * @tc.type: FUNC
1894  */
1895 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferWrite006, TestSize.Level1)
1896 {
1897     struct UsbDev dev = dev_;
1898     uint8_t interfaceId = INTERFACEID_OK;
1899     uint8_t pointid = POINTID_BULK_OUT;
1900     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1901     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferWrite006 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1902     ASSERT_EQ(0, ret);
1903     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1904     dev.busNum = BUS_NUM_INVALID;
1905     dev.devAddr = DEV_ADDR_INVALID;
1906     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '6'};
1907     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1908     HDF_LOGI(
1909         "UsbdTransferTest::UsbdInterruptTransferWrite006 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1910     ASSERT_NE(ret, 0);
1911 }
1912 
1913 /**
1914  * @tc.name: UsbdInterruptTransferWrite007
1915  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1916  * std::vector<uint8_t> &data);
1917  * @tc.desc: Negative test: parameters exception, ClaimInterface failed first
1918  * @tc.type: FUNC
1919  */
1920 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferWrite007, TestSize.Level1)
1921 {
1922     struct UsbDev dev = dev_;
1923     uint8_t interfaceId = INTERFACEID_OK;
1924     uint8_t pointid = PIPE_ENDPOINTID_INVALID;
1925     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1926     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferWrite007 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1927     ASSERT_EQ(0, ret);
1928     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1929     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '7'};
1930     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1931     HDF_LOGI(
1932         "UsbdTransferTest::UsbdInterruptTransferWrite007 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1933     ASSERT_NE(ret, 0);
1934 }
1935 
1936 /**
1937  * @tc.name: UsbdInterruptTransferWrite008
1938  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1939  * std::vector<uint8_t> &data);
1940  * Positive test: parameters correctly, different in timeout
1941  * @tc.type: FUNC
1942  */
1943 HWTEST_F(UsbdTransferTest, UsbdInterruptTransferWrite008, TestSize.Level1)
1944 {
1945     struct UsbDev dev = dev_;
1946     uint8_t interfaceId = INTERFACEID_OK;
1947     uint8_t pointid = POINTID_BULK_OUT;
1948     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1949     HDF_LOGI("UsbdTransferTest::UsbdInterruptTransferWrite008 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1950     ASSERT_EQ(0, ret);
1951     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1952     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '8'};
1953     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, -1, bufferData);
1954     HDF_LOGI(
1955         "UsbdTransferTest::UsbdInterruptTransferWrite008 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1956     ASSERT_EQ(0, ret);
1957 }
1958 
1959 /**
1960  * @tc.name: UsbdIsoTransferRead001
1961  * @tc.desc: Test functions to IsoTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1962  * std::vector<uint8_t> &data);
1963  * @tc.desc: Positive test: parameters correctly
1964  * @tc.type: FUNC
1965  */
1966 HWTEST_F(UsbdTransferTest, UsbdIsoTransferRead001, TestSize.Level1)
1967 {
1968     struct UsbDev dev = dev_;
1969     uint8_t interfaceId = INTERFACEID_OK;
1970     uint8_t pointid = POINTID_BULK_IN;
1971     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1972     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferRead001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1973     ASSERT_EQ(0, ret);
1974     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1975     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1976     ret = g_usbInterface->IsoTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1977     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferRead001 %{public}d UsbdIsoTransferRead=%{public}d", __LINE__, ret);
1978     ASSERT_EQ(0, ret);
1979 }
1980 
1981 /**
1982  * @tc.name: UsbdIsoTransferRead002
1983  * @tc.desc: Test functions to IsoTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1984  * std::vector<uint8_t> &data);
1985  * @tc.desc: Negative test: parameters exception, busNum error
1986  * @tc.type: FUNC
1987  */
1988 HWTEST_F(UsbdTransferTest, UsbdIsoTransferRead002, TestSize.Level1)
1989 {
1990     struct UsbDev dev = dev_;
1991     uint8_t interfaceId = INTERFACEID_OK;
1992     uint8_t pointid = POINTID_BULK_IN;
1993     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferRead002 %{public}d interfaceId=%{public}d", __LINE__, interfaceId);
1994     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1995     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferRead002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1996     ASSERT_EQ(0, ret);
1997     dev.busNum = BUS_NUM_INVALID;
1998     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
1999     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
2000     ret = g_usbInterface->IsoTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
2001     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferRead002 %{public}d UsbdIsoTransferRead=%{public}d", __LINE__, ret);
2002     ASSERT_NE(ret, 0);
2003 }
2004 
2005 /**
2006  * @tc.name: UsbdIsoTransferRead003
2007  * @tc.desc: Test functions to IsoTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
2008  * std::vector<uint8_t> &data);
2009  * @tc.desc: Negative test: parameters exception, devAddr error
2010  * @tc.type: FUNC
2011  */
2012 HWTEST_F(UsbdTransferTest, UsbdIsoTransferRead003, TestSize.Level1)
2013 {
2014     struct UsbDev dev = dev_;
2015     uint8_t interfaceId = INTERFACEID_OK;
2016     uint8_t pointid = POINTID_BULK_IN;
2017     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2018     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferRead003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2019     ASSERT_EQ(0, ret);
2020     dev.devAddr = DEV_ADDR_INVALID;
2021     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2022     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
2023     ret = g_usbInterface->IsoTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
2024     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferRead003 %{public}d UsbdIsoTransferRead=%{public}d", __LINE__, ret);
2025     ASSERT_NE(ret, 0);
2026 }
2027 
2028 /**
2029  * @tc.name: UsbdIsoTransferRead004
2030  * @tc.desc: Test functions to IsoTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
2031  * std::vector<uint8_t> &data);
2032  * @tc.desc: Negative test: parameters exception, intfId error
2033  * @tc.type: FUNC
2034  */
2035 HWTEST_F(UsbdTransferTest, UsbdIsoTransferRead004, TestSize.Level1)
2036 {
2037     struct UsbDev dev = dev_;
2038     uint8_t interfaceId = INTERFACEID_OK;
2039     uint8_t pointid = POINTID_BULK_IN;
2040     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2041     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferRead004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2042     ASSERT_EQ(0, ret);
2043     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2044     pipe.intfId = PIPE_INTERFACEID_INVALID;
2045     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
2046     ret = g_usbInterface->IsoTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
2047     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferRead004 %{public}d UsbdIsoTransferRead=%{public}d", __LINE__, ret);
2048     ASSERT_NE(ret, 0);
2049 }
2050 
2051 /**
2052  * @tc.name: UsbdIsoTransferRead005
2053  * @tc.desc: Test functions to IsoTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
2054  * std::vector<uint8_t> &data);
2055  * @tc.desc: Negative test: parameters exception, endpointId error
2056  * @tc.type: FUNC
2057  */
2058 HWTEST_F(UsbdTransferTest, UsbdIsoTransferRead005, TestSize.Level1)
2059 {
2060     struct UsbDev dev = dev_;
2061     uint8_t interfaceId = INTERFACEID_OK;
2062     uint8_t pointid = POINTID_BULK_IN;
2063     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2064     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferRead005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2065     ASSERT_EQ(0, ret);
2066     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2067     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
2068     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
2069     ret = g_usbInterface->IsoTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
2070     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferRead005 %{public}d UsbdIsoTransferRead=%{public}d", __LINE__, ret);
2071     ASSERT_NE(ret, 0);
2072 }
2073 
2074 /**
2075  * @tc.name: UsbdIsoTransferWrite001
2076  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
2077  * std::vector<uint8_t> &data);
2078  * @tc.desc: Positive test: parameters correctly
2079  * @tc.type: FUNC
2080  */
2081 HWTEST_F(UsbdTransferTest, UsbdIsoTransferWrite001, TestSize.Level1)
2082 {
2083     struct UsbDev dev = dev_;
2084     uint8_t interfaceId = INTERFACEID_OK;
2085     uint8_t pointid = POINTID_BULK_OUT;
2086     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2087     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2088     ASSERT_EQ(0, ret);
2089     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2090     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '1'};
2091     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
2092     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite001 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
2093     ASSERT_EQ(0, ret);
2094 }
2095 
2096 /**
2097  * @tc.name: UsbdIsoTransferWrite002
2098  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
2099  * std::vector<uint8_t> &data);
2100  * @tc.desc: Negative test: parameters exception, busNum error
2101  * @tc.type: FUNC
2102  */
2103 HWTEST_F(UsbdTransferTest, UsbdIsoTransferWrite002, TestSize.Level1)
2104 {
2105     struct UsbDev dev = dev_;
2106     uint8_t interfaceId = INTERFACEID_OK;
2107     uint8_t pointid = POINTID_BULK_OUT;
2108     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2109     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2110     ASSERT_EQ(0, ret);
2111     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2112     dev.busNum = BUS_NUM_INVALID;
2113     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '2'};
2114     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
2115     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite002 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
2116     ASSERT_NE(ret, 0);
2117 }
2118 
2119 /**
2120  * @tc.name: UsbdIsoTransferWrite003
2121  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
2122  * std::vector<uint8_t> &data);
2123  * @tc.desc: Negative test: parameters exception, devAddr error
2124  * @tc.type: FUNC
2125  */
2126 HWTEST_F(UsbdTransferTest, UsbdIsoTransferWrite003, TestSize.Level1)
2127 {
2128     struct UsbDev dev = dev_;
2129     uint8_t interfaceId = INTERFACEID_OK;
2130     uint8_t pointid = POINTID_BULK_OUT;
2131     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2132     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2133     ASSERT_EQ(0, ret);
2134     dev.devAddr = DEV_ADDR_INVALID;
2135     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2136     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '3'};
2137     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
2138     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite003 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
2139     ASSERT_NE(ret, 0);
2140 }
2141 
2142 /**
2143  * @tc.name: UsbdIsoTransferWrite004
2144  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
2145  * std::vector<uint8_t> &data);
2146  * @tc.desc: Negative test: parameters exception, intfId error
2147  * @tc.type: FUNC
2148  */
2149 HWTEST_F(UsbdTransferTest, UsbdIsoTransferWrite004, TestSize.Level1)
2150 {
2151     struct UsbDev dev = dev_;
2152     uint8_t interfaceId = INTERFACEID_OK;
2153     uint8_t pointid = POINTID_BULK_OUT;
2154     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2155     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2156     ASSERT_EQ(0, ret);
2157     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2158     pipe.intfId = PIPE_INTERFACEID_INVALID;
2159     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '4'};
2160     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
2161     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite004 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
2162     ASSERT_NE(ret, 0);
2163 }
2164 
2165 /**
2166  * @tc.name: UsbdIsoTransferWrite005
2167  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
2168  * std::vector<uint8_t> &data);
2169  * @tc.desc: Negative test: parameters exception, endpointId error
2170  * @tc.type: FUNC
2171  */
2172 HWTEST_F(UsbdTransferTest, UsbdIsoTransferWrite005, TestSize.Level1)
2173 {
2174     struct UsbDev dev = dev_;
2175     uint8_t interfaceId = INTERFACEID_OK;
2176     uint8_t pointid = POINTID_BULK_OUT;
2177     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2178     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2179     ASSERT_EQ(0, ret);
2180     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2181     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
2182     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '5'};
2183     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
2184     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite005 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
2185     ASSERT_NE(ret, 0);
2186 }
2187 
2188 /**
2189  * @tc.name: UsbdIsoTransferWrite006
2190  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
2191  * std::vector<uint8_t> &data);
2192  * @tc.desc: Negative test: parameters exception, busNum && devAddr error
2193  * @tc.type: FUNC
2194  */
2195 HWTEST_F(UsbdTransferTest, UsbdIsoTransferWrite006, TestSize.Level1)
2196 {
2197     struct UsbDev dev = dev_;
2198     uint8_t interfaceId = INTERFACEID_OK;
2199     uint8_t pointid = POINTID_BULK_OUT;
2200     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2201     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite006 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2202     ASSERT_EQ(0, ret);
2203     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2204     dev.busNum = BUS_NUM_INVALID;
2205     dev.devAddr = DEV_ADDR_INVALID;
2206     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '6'};
2207     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
2208     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite006 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
2209     ASSERT_NE(ret, 0);
2210 }
2211 
2212 /**
2213  * @tc.name: UsbdIsoTransferWrite007
2214  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
2215  * std::vector<uint8_t> &data);
2216  * @tc.desc: Negative test: parameters exception, endpointId error, ClaimInterface failed first
2217  * @tc.type: FUNC
2218  */
2219 HWTEST_F(UsbdTransferTest, UsbdIsoTransferWrite007, TestSize.Level1)
2220 {
2221     struct UsbDev dev = dev_;
2222     uint8_t interfaceId = INTERFACEID_OK;
2223     uint8_t pointid = PIPE_ENDPOINTID_INVALID;
2224     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2225     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite007 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2226     ASSERT_EQ(0, ret);
2227     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2228     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '7'};
2229     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
2230     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite007 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
2231     ASSERT_NE(ret, 0);
2232 }
2233 
2234 /**
2235  * @tc.name: UsbdIsoTransferWrite008
2236  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
2237  * std::vector<uint8_t> &data);
2238  * @tc.desc: Positive test: parameters correctly, different in timeout
2239  * @tc.type: FUNC
2240  */
2241 HWTEST_F(UsbdTransferTest, UsbdIsoTransferWrite008, TestSize.Level1)
2242 {
2243     struct UsbDev dev = dev_;
2244     uint8_t interfaceId = INTERFACEID_OK;
2245     uint8_t pointid = POINTID_BULK_OUT;
2246     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2247     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite008 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2248     ASSERT_EQ(0, ret);
2249     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2250     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '8'};
2251     ret = g_usbInterface->IsoTransferWrite(dev, pipe, -1, bufferData);
2252     HDF_LOGI("UsbdTransferTest::UsbdIsoTransferWrite008 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
2253     ASSERT_EQ(0, ret);
2254 }
2255 
2256 /**
2257  * @tc.name: BulkWrite001
2258  * @tc.desc: Test functions to int32_t BulkWrite(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2259  * @tc.desc: Positive test: parameters correctly
2260  * @tc.type: FUNC
2261  */
2262 HWTEST_F(UsbdTransferTest, BulkWrite001, TestSize.Level1)
2263 {
2264     sptr<Ashmem> ashmem;
2265     uint8_t rflg = 0;
2266     int32_t asmSize = MAX_BUFFER_LENGTH;
2267     struct UsbDev dev = dev_;
2268     uint8_t interfaceId = INTERFACEID_OK;
2269     uint8_t pointid = POINTID_BULK_IN;
2270     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2271     HDF_LOGI("UsbdTransferTest::BulkWrite001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2272     ASSERT_EQ(0, ret);
2273     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2274     (void)InitAshmemOne(ashmem, asmSize, rflg);
2275     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
2276     HDF_LOGI("UsbdTransferTest::BulkWrite001 %{public}d BulkWrite=%{public}d", __LINE__, ret);
2277     ASSERT_EQ(ret, 0);
2278 }
2279 
2280 /**
2281  * @tc.name: BulkWrite002
2282  * @tc.desc: Test functions to int32_t BulkWrite(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2283  * @tc.desc: Negative test: parameters exception, busNum error
2284  * @tc.type: FUNC
2285  */
2286 HWTEST_F(UsbdTransferTest, BulkWrite002, TestSize.Level1)
2287 {
2288     sptr<Ashmem> ashmem;
2289     uint8_t rflg = 0;
2290     int32_t asmSize = MAX_BUFFER_LENGTH;
2291     struct UsbDev dev = dev_;
2292     uint8_t interfaceId = INTERFACEID_OK;
2293     uint8_t pointid = POINTID_BULK_OUT;
2294     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2295     HDF_LOGI("UsbdTransferTest::BulkWrite002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2296     ASSERT_EQ(0, ret);
2297     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2298     dev.busNum = BUS_NUM_INVALID;
2299     (void)InitAshmemOne(ashmem, asmSize, rflg);
2300     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
2301     HDF_LOGI("UsbdTransferTest::BulkWrite002 %{public}d BulkWrite=%{public}d", __LINE__, ret);
2302     ASSERT_NE(ret, 0);
2303 }
2304 
2305 /**
2306  * @tc.name: BulkWrite003
2307  * @tc.desc: Test functions to int32_t BulkWrite(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2308  * @tc.desc: Negative test: parameters exception, devAddr error
2309  * @tc.type: FUNC
2310  */
2311 HWTEST_F(UsbdTransferTest, BulkWrite003, TestSize.Level1)
2312 {
2313     sptr<Ashmem> ashmem;
2314     uint8_t rflg = 0;
2315     int32_t asmSize = MAX_BUFFER_LENGTH;
2316     struct UsbDev dev = dev_;
2317     uint8_t interfaceId = INTERFACEID_OK;
2318     uint8_t pointid = POINTID_BULK_OUT;
2319     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2320     HDF_LOGI("UsbdTransferTest::BulkWrite003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2321     ASSERT_EQ(0, ret);
2322     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2323     dev.devAddr = DEV_ADDR_INVALID;
2324     (void)InitAshmemOne(ashmem, asmSize, rflg);
2325     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
2326     HDF_LOGI("UsbdTransferTest::BulkWrite003 %{public}d BulkWrite=%{public}d", __LINE__, ret);
2327     ASSERT_NE(ret, 0);
2328 }
2329 
2330 /**
2331  * @tc.name: BulkWrite004
2332  * @tc.desc: Test functions to int32_t BulkWrite(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2333  * @tc.desc: Negative test: parameters exception, intfId error
2334  * @tc.type: FUNC
2335  */
2336 HWTEST_F(UsbdTransferTest, BulkWrite004, TestSize.Level1)
2337 {
2338     sptr<Ashmem> ashmem;
2339     uint8_t rflg = 0;
2340     int32_t asmSize = MAX_BUFFER_LENGTH;
2341     struct UsbDev dev = dev_;
2342     uint8_t interfaceId = INTERFACEID_OK;
2343     uint8_t pointid = POINTID_BULK_OUT;
2344     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2345     HDF_LOGI("UsbdTransferTest::BulkWrite004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2346     ASSERT_EQ(0, ret);
2347     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2348     pipe.intfId = PIPE_INTERFACEID_INVALID;
2349     (void)InitAshmemOne(ashmem, asmSize, rflg);
2350     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
2351     HDF_LOGI("UsbdTransferTest::BulkWrite004 %{public}d BulkWrite=%{public}d", __LINE__, ret);
2352     ASSERT_NE(ret, 0);
2353 }
2354 
2355 /**
2356  * @tc.name: BulkWrite005
2357  * @tc.desc: Test functions to int32_t BulkWrite(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2358  * @tc.desc: Negative test: parameters exception, endpointId error
2359  * @tc.type: FUNC
2360  */
2361 HWTEST_F(UsbdTransferTest, BulkWrite005, TestSize.Level1)
2362 {
2363     sptr<Ashmem> ashmem;
2364     uint8_t rflg = 0;
2365     int32_t asmSize = MAX_BUFFER_LENGTH;
2366     struct UsbDev dev = dev_;
2367     uint8_t interfaceId = INTERFACEID_OK;
2368     uint8_t pointid = POINTID_BULK_OUT;
2369     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2370     HDF_LOGI("UsbdTransferTest::BulkWrite005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2371     ASSERT_EQ(0, ret);
2372     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2373     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
2374     (void)InitAshmemOne(ashmem, asmSize, rflg);
2375     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
2376     HDF_LOGI("UsbdTransferTest::BulkWrite005 %{public}d BulkWrite=%{public}d", __LINE__, ret);
2377     ASSERT_NE(ret, 0);
2378 }
2379 
2380 /**
2381  * @tc.name: BulkRead001
2382  * @tc.desc: Test functions to int32_t BulkRead(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2383  * @tc.desc: Positive test: parameters correctly
2384  * @tc.type: FUNC
2385  */
2386 HWTEST_F(UsbdTransferTest, BulkRead001, TestSize.Level1)
2387 {
2388     sptr<Ashmem> ashmem;
2389     uint8_t rflg = 0;
2390     int32_t asmSize = MAX_BUFFER_LENGTH;
2391     struct UsbDev dev = dev_;
2392     uint8_t interfaceId = INTERFACEID_OK;
2393     uint8_t pointid = POINTID_BULK_IN;
2394     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2395     HDF_LOGI("UsbdTransferTest::BulkRead001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2396     ASSERT_EQ(0, ret);
2397     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2398     (void)InitAshmemOne(ashmem, asmSize, rflg);
2399     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
2400     HDF_LOGI("UsbdTransferTest::BulkRead001 %{public}d BulkRead=%{public}d", __LINE__, ret);
2401     ASSERT_EQ(ret, 0);
2402 }
2403 
2404 /**
2405  * @tc.name: BulkRead002
2406  * @tc.desc: Test functions to int32_t BulkRead(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2407  * @tc.desc: Negative test: parameters exception, busNum error
2408  * @tc.type: FUNC
2409  */
2410 HWTEST_F(UsbdTransferTest, BulkRead002, TestSize.Level1)
2411 {
2412     sptr<Ashmem> ashmem;
2413     uint8_t rflg = 0;
2414     int32_t asmSize = MAX_BUFFER_LENGTH;
2415     struct UsbDev dev = dev_;
2416     uint8_t interfaceId = INTERFACEID_OK;
2417     uint8_t pointid = POINTID_BULK_OUT;
2418     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2419     HDF_LOGI("UsbdTransferTest::BulkRead002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2420     ASSERT_EQ(0, ret);
2421     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2422     dev.busNum = BUS_NUM_INVALID;
2423     (void)InitAshmemOne(ashmem, asmSize, rflg);
2424     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
2425     HDF_LOGI("UsbdTransferTest::BulkRead002 %{public}d BulkRead=%{public}d", __LINE__, ret);
2426     ASSERT_NE(ret, 0);
2427 }
2428 
2429 /**
2430  * @tc.name: BulkRead003
2431  * @tc.desc: Test functions to int32_t BulkRead(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2432  * @tc.desc: Negative test: parameters exception, devAddr error
2433  * @tc.type: FUNC
2434  */
2435 HWTEST_F(UsbdTransferTest, BulkRead003, TestSize.Level1)
2436 {
2437     sptr<Ashmem> ashmem;
2438     uint8_t rflg = 0;
2439     int32_t asmSize = MAX_BUFFER_LENGTH;
2440     struct UsbDev dev = dev_;
2441     uint8_t interfaceId = INTERFACEID_OK;
2442     uint8_t pointid = POINTID_BULK_OUT;
2443     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2444     HDF_LOGI("UsbdTransferTest::BulkRead003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2445     ASSERT_EQ(0, ret);
2446     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2447     dev.devAddr = DEV_ADDR_INVALID;
2448     (void)InitAshmemOne(ashmem, asmSize, rflg);
2449     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
2450     HDF_LOGI("UsbdTransferTest::BulkRead003 %{public}d BulkRead=%{public}d", __LINE__, ret);
2451     ASSERT_NE(ret, 0);
2452 }
2453 
2454 /**
2455  * @tc.name: BulkRead004
2456  * @tc.desc: Test functions to int32_t BulkRead(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2457  * @tc.desc: Negative test: parameters exception, intfId error
2458  * @tc.type: FUNC
2459  */
2460 HWTEST_F(UsbdTransferTest, BulkRead004, TestSize.Level1)
2461 {
2462     sptr<Ashmem> ashmem;
2463     uint8_t rflg = 0;
2464     int32_t asmSize = MAX_BUFFER_LENGTH;
2465     struct UsbDev dev = dev_;
2466     uint8_t interfaceId = INTERFACEID_OK;
2467     uint8_t pointid = POINTID_BULK_OUT;
2468     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2469     HDF_LOGI("UsbdTransferTest::BulkRead004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2470     ASSERT_EQ(0, ret);
2471     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2472     pipe.intfId = PIPE_INTERFACEID_INVALID;
2473     (void)InitAshmemOne(ashmem, asmSize, rflg);
2474     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
2475     HDF_LOGI("UsbdTransferTest::BulkRead004 %{public}d BulkRead=%{public}d", __LINE__, ret);
2476     ASSERT_NE(ret, 0);
2477 }
2478 
2479 /**
2480  * @tc.name: BulkRead005
2481  * @tc.desc: Test functions to int32_t BulkRead(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2482  * @tc.desc: Negative test: parameters exception, endpointId error
2483  * @tc.type: FUNC
2484  */
2485 HWTEST_F(UsbdTransferTest, BulkRead005, TestSize.Level1)
2486 {
2487     sptr<Ashmem> ashmem;
2488     uint8_t rflg = 0;
2489     int32_t asmSize = MAX_BUFFER_LENGTH;
2490     struct UsbDev dev = dev_;
2491     uint8_t interfaceId = INTERFACEID_OK;
2492     uint8_t pointid = POINTID_BULK_OUT;
2493     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2494     HDF_LOGI("UsbdTransferTest::BulkRead005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2495     ASSERT_EQ(0, ret);
2496     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2497     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
2498     (void)InitAshmemOne(ashmem, asmSize, rflg);
2499     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
2500     HDF_LOGI("UsbdTransferTest::BulkRead005 %{public}d BulkRead=%{public}d", __LINE__, ret);
2501     ASSERT_NE(ret, 0);
2502 }
2503 
2504 /**
2505  * @tc.name: RegBulkCallback001
2506  * @tc.desc: Test functions to RegBulkCallback
2507  * @tc.desc: int32_t RegBulkCallback(const UsbDev &dev, const UsbPipe &pipe, const sptr<IUsbdBulkCallback> &cb)
2508  * @tc.desc: Positive test: parameters correctly
2509  * @tc.type: FUNC
2510  */
2511 HWTEST_F(UsbdTransferTest, RegBulkCallback001, TestSize.Level1)
2512 {
2513     struct UsbDev dev = dev_;
2514     uint8_t interfaceId = INTERFACEID_OK;
2515     uint8_t pointid = POINTID_BULK_OUT;
2516     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2517     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2518     if (usbdBulkCallback == nullptr) {
2519         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2520         exit(0);
2521     }
2522     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2523     HDF_LOGI("UsbdTransferTest::RegBulkCallback001 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2524     ASSERT_EQ(ret, 0);
2525 }
2526 
2527 /**
2528  * @tc.name: RegBulkCallback002
2529  * @tc.desc: Test functions to RegBulkCallback
2530  * @tc.desc: int32_t RegBulkCallback(const UsbDev &dev, const UsbPipe &pipe, const sptr<IUsbdBulkCallback> &cb)
2531  * @tc.desc: Negative test: parameters exception, busNum error
2532  * @tc.type: FUNC
2533  */
2534 HWTEST_F(UsbdTransferTest, RegBulkCallback002, TestSize.Level1)
2535 {
2536     struct UsbDev dev = dev_;
2537     uint8_t interfaceId = INTERFACEID_OK;
2538     uint8_t pointid = POINTID_BULK_OUT;
2539     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2540     dev.busNum = BUS_NUM_INVALID;
2541     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2542     if (usbdBulkCallback == nullptr) {
2543         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2544         exit(0);
2545     }
2546     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2547     HDF_LOGI("UsbdTransferTest::RegBulkCallback002 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2548     ASSERT_NE(ret, 0);
2549 }
2550 
2551 /**
2552  * @tc.name: RegBulkCallback003
2553  * @tc.desc: Test functions to int32_t RegBulkCallback(const UsbDev &dev, const UsbPipe &pipe,
2554  * const sptr<IUsbdBulkCallback> &cb)
2555  * @tc.desc: Negative test: parameters exception, devAddr error
2556  * @tc.type: FUNC
2557  */
2558 HWTEST_F(UsbdTransferTest, RegBulkCallback003, TestSize.Level1)
2559 {
2560     struct UsbDev dev = dev_;
2561     uint8_t interfaceId = INTERFACEID_OK;
2562     uint8_t pointid = POINTID_BULK_OUT;
2563     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2564     dev.devAddr = DEV_ADDR_INVALID;
2565     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2566     if (usbdBulkCallback == nullptr) {
2567         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2568         exit(0);
2569     }
2570     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2571     HDF_LOGI("UsbdTransferTest::RegBulkCallback003 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2572     ASSERT_NE(ret, 0);
2573 }
2574 
2575 /**
2576  * @tc.name: RegBulkCallback004
2577  * @tc.desc: Test functions to int32_t RegBulkCallback(const UsbDev &dev, const UsbPipe &pipe,
2578  * const sptr<IUsbdBulkCallback> &cb)
2579  * @tc.desc: Negative test: parameters exception, intfId error
2580  * @tc.type: FUNC
2581  */
2582 HWTEST_F(UsbdTransferTest, RegBulkCallback004, TestSize.Level1)
2583 {
2584     struct UsbDev dev = dev_;
2585     uint8_t interfaceId = INTERFACEID_OK;
2586     uint8_t pointid = POINTID_BULK_OUT;
2587     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2588     pipe.intfId = PIPE_INTERFACEID_INVALID;
2589     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2590     if (usbdBulkCallback == nullptr) {
2591         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2592         exit(0);
2593     }
2594     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2595     HDF_LOGI("UsbdTransferTest::RegBulkCallback004 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2596     ASSERT_NE(ret, 0);
2597 }
2598 
2599 /**
2600  * @tc.name: RegBulkCallback005
2601  * @tc.desc: Test functions to int32_t RegBulkCallback(const UsbDev &dev, const UsbPipe &pipe,
2602  * const sptr<IUsbdBulkCallback> &cb)
2603  * @tc.desc: Negative test: parameters exception, cb error
2604  * @tc.type: FUNC
2605  */
2606 HWTEST_F(UsbdTransferTest, RegBulkCallback005, TestSize.Level1)
2607 {
2608     struct UsbDev dev = dev_;
2609     uint8_t interfaceId = INTERFACEID_OK;
2610     uint8_t pointid = POINTID_BULK_OUT;
2611     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2612     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, nullptr);
2613     HDF_LOGI("UsbdTransferTest::RegBulkCallback005 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2614     ASSERT_NE(ret, 0);
2615 }
2616 
2617 /**
2618  * @tc.name: UnRegBulkCallback001
2619  * @tc.desc: Test functions to int32_t UnRegBulkCallback(const UsbDev &dev, const UsbPipe &pipe)
2620  * @tc.desc: Positive test: parameters correctly
2621  * @tc.type: FUNC
2622  */
2623 HWTEST_F(UsbdTransferTest, UnRegBulkCallback001, TestSize.Level1)
2624 {
2625     struct UsbDev dev = dev_;
2626     uint8_t interfaceId = INTERFACEID_OK;
2627     uint8_t pointid = POINTID_BULK_OUT;
2628     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2629     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2630     if (usbdBulkCallback == nullptr) {
2631         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2632         exit(0);
2633     }
2634     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2635     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback001 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2636     ASSERT_EQ(ret, 0);
2637     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2638     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback001 %{public}d UnRegBulkCallback=%{public}d", __LINE__, ret);
2639     ASSERT_EQ(ret, 0);
2640 }
2641 
2642 /**
2643  * @tc.name: UnRegBulkCallback002
2644  * @tc.desc: Test functions to int32_t UnRegBulkCallback(const UsbDev &dev, const UsbPipe &pipe)
2645  * @tc.desc: Negative test: parameters exception, devAddr error
2646  * @tc.type: FUNC
2647  */
2648 HWTEST_F(UsbdTransferTest, UnRegBulkCallback002, TestSize.Level1)
2649 {
2650     struct UsbDev dev = dev_;
2651     uint8_t interfaceId = INTERFACEID_OK;
2652     uint8_t pointid = POINTID_BULK_OUT;
2653     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2654     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2655     if (usbdBulkCallback == nullptr) {
2656         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2657         exit(0);
2658     }
2659     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2660     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback002 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2661     ASSERT_EQ(ret, 0);
2662     dev.devAddr = DEV_ADDR_INVALID;
2663     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2664     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback002 %{public}d UnRegBulkCallback=%{public}d", __LINE__, ret);
2665     ASSERT_NE(ret, 0);
2666     dev = dev_;
2667     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2668     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback002 %{public}d again UnRegBulkCallback=%{public}d", __LINE__, ret);
2669     ASSERT_EQ(ret, 0);
2670 }
2671 
2672 /**
2673  * @tc.name: UnRegBulkCallback003
2674  * @tc.desc: Test functions to int32_t UnRegBulkCallback(const UsbDev &dev, const UsbPipe &pipe)
2675  * @tc.desc: Negative test: parameters exception, intfId error
2676  * @tc.type: FUNC
2677  */
2678 HWTEST_F(UsbdTransferTest, UnRegBulkCallback003, TestSize.Level1)
2679 {
2680     struct UsbDev dev = dev_;
2681     uint8_t interfaceId = INTERFACEID_OK;
2682     uint8_t pointid = POINTID_BULK_OUT;
2683     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2684     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2685     if (usbdBulkCallback == nullptr) {
2686         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2687         exit(0);
2688     }
2689     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2690     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback003 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2691     ASSERT_EQ(ret, 0);
2692     pipe.intfId = PIPE_INTERFACEID_INVALID;
2693     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2694     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback003 %{public}d UnRegBulkCallback=%{public}d", __LINE__, ret);
2695     ASSERT_NE(ret, 0);
2696     pipe = {interfaceId, pointid};
2697     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2698     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback003 %{public}d again UnRegBulkCallback=%{public}d", __LINE__, ret);
2699     ASSERT_EQ(ret, 0);
2700 }
2701 
2702 /**
2703  * @tc.name: UnRegBulkCallback004
2704  * @tc.desc: Test functions to int32_t UnRegBulkCallback(const UsbDev &dev, const UsbPipe &pipe)
2705  * @tc.desc: Positive test: call again
2706  * @tc.type: FUNC
2707  */
2708 HWTEST_F(UsbdTransferTest, UnRegBulkCallback004, TestSize.Level1)
2709 {
2710     struct UsbDev dev = dev_;
2711     uint8_t interfaceId = INTERFACEID_OK;
2712     uint8_t pointid = POINTID_BULK_OUT;
2713     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2714     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2715     if (usbdBulkCallback == nullptr) {
2716         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2717         exit(0);
2718     }
2719     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2720     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback004 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2721     ASSERT_EQ(ret, 0);
2722     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2723     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback004 %{public}d UnRegBulkCallback=%{public}d", __LINE__, ret);
2724     ASSERT_EQ(ret, 0);
2725     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2726     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback004 %{public}d again UnRegBulkCallback=%{public}d", __LINE__, ret);
2727     ASSERT_EQ(ret, 0);
2728 }
2729 
2730 /**
2731  * @tc.name: UnRegBulkCallback005
2732  * @tc.desc: Test functions to int32_t UnRegBulkCallback(const UsbDev &dev, const UsbPipe &pipe)
2733  * @tc.desc: Positive test: no register
2734  * @tc.type: FUNC
2735  */
2736 HWTEST_F(UsbdTransferTest, UnRegBulkCallback005, TestSize.Level1)
2737 {
2738     struct UsbDev dev = dev_;
2739     uint8_t interfaceId = INTERFACEID_OK;
2740     uint8_t pointid = POINTID_BULK_OUT;
2741     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointid};
2742     auto ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2743     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback005 %{public}d UnRegBulkCallback=%{public}d", __LINE__, ret);
2744     ASSERT_EQ(ret, 0);
2745 }
2746 
2747 /**
2748  * @tc.name: UnbindUsbdSubscriber001
2749  * @tc.desc: Test functions to int32_t UnbindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber_)
2750  * @tc.desc: Positive test: parameters correctly
2751  * @tc.type: FUNC
2752  */
2753 HWTEST_F(UsbdTransferTest, UnbindUsbdSubscriber001, TestSize.Level1)
2754 {
2755     sptr<UsbSubscriberTest> subscriber_ = new UsbSubscriberTest();
2756     if (subscriber_ == nullptr) {
2757         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2758         exit(0);
2759     }
2760     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2761     HDF_LOGI("UsbdTransferTest::UnbindUsbdSubscriber001 %{public}d first BindUsbdSubscriber=%{public}d", __LINE__, ret);
2762     ASSERT_EQ(0, ret);
2763     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2764     HDF_LOGI("UsbdTransferTest::UnbindUsbdSubscriber001 %{public}d UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2765     ASSERT_EQ(0, ret);
2766 }
2767 
2768 /**
2769  * @tc.name: UnbindUsbdSubscriber002
2770  * @tc.desc: Test functions to int32_t UnbindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber_)
2771  * @tc.desc: Negative test: no bind first
2772  * @tc.type: FUNC
2773  */
2774 HWTEST_F(UsbdTransferTest, UnbindUsbdSubscriber002, TestSize.Level1)
2775 {
2776     sptr<UsbSubscriberTest> subscriber_ = new UsbSubscriberTest();
2777     if (subscriber_ == nullptr) {
2778         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2779         exit(0);
2780     }
2781     auto ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2782     HDF_LOGI("UsbdTransferTest::UnbindUsbdSubscriber002 %{public}d UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2783     ASSERT_NE(0, ret);
2784 }
2785 
2786 /**
2787  * @tc.name: UnbindUsbdSubscriber003
2788  * @tc.desc: Test functions to int32_t UnbindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber_)
2789  * @tc.desc: Positive test: no bind first, unbind failed; then bind, unbind success
2790  * @tc.type: FUNC
2791  */
2792 HWTEST_F(UsbdTransferTest, UnbindUsbdSubscriber003, TestSize.Level1)
2793 {
2794     sptr<UsbSubscriberTest> subscriber_ = new UsbSubscriberTest();
2795     if (subscriber_ == nullptr) {
2796         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2797         exit(0);
2798     }
2799     auto ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2800     HDF_LOGI("UsbdTransferTest::UnbindUsbdSubscriber003 %{public}d UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2801     ASSERT_NE(0, ret);
2802     ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2803     HDF_LOGI("UsbdTransferTest::UnbindUsbdSubscriber003 %{public}d first BindUsbdSubscriber=%{public}d", __LINE__, ret);
2804     ASSERT_EQ(0, ret);
2805     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2806     HDF_LOGI(
2807         "UsbdTransferTest::UnbindUsbdSubscriber003 %{public}d again UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2808     ASSERT_EQ(0, ret);
2809 }
2810 
2811 /**
2812  * @tc.name: UnbindUsbdSubscriber004
2813  * @tc.desc: Test functions to int32_t UnbindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber_)
2814  * @tc.desc: Negative test: call twice
2815  * @tc.type: FUNC
2816  */
2817 HWTEST_F(UsbdTransferTest, UnbindUsbdSubscriber004, TestSize.Level1)
2818 {
2819     sptr<UsbSubscriberTest> subscriber_ = new UsbSubscriberTest();
2820     if (subscriber_ == nullptr) {
2821         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2822         exit(0);
2823     }
2824     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2825     HDF_LOGI("UsbdTransferTest::UnbindUsbdSubscriber004 %{public}d first BindUsbdSubscriber=%{public}d", __LINE__, ret);
2826     ASSERT_EQ(0, ret);
2827     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2828     HDF_LOGI(
2829         "UsbdTransferTest::UnbindUsbdSubscriber004 %{public}d first UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2830     ASSERT_EQ(0, ret);
2831     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2832     HDF_LOGI(
2833         "UsbdTransferTest::UnbindUsbdSubscriber004 %{public}d again UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2834     ASSERT_NE(0, ret);
2835 }
2836 
2837 /**
2838  * @tc.name: UnbindUsbdSubscriber005
2839  * @tc.desc: Test functions to int32_t UnbindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber_)
2840  * @tc.desc: Positive test: test repeatedly
2841  * @tc.type: FUNC
2842  */
2843 HWTEST_F(UsbdTransferTest, UnbindUsbdSubscriber005, TestSize.Level1)
2844 {
2845     sptr<UsbSubscriberTest> subscriber_ = new UsbSubscriberTest();
2846     if (subscriber_ == nullptr) {
2847         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2848         exit(0);
2849     }
2850     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2851     HDF_LOGI("UsbdTransferTest::UnbindUsbdSubscriber005 %{public}d first BindUsbdSubscriber=%{public}d", __LINE__, ret);
2852     ASSERT_EQ(0, ret);
2853     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2854     HDF_LOGI(
2855         "UsbdTransferTest::UnbindUsbdSubscriber005 %{public}d first UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2856     ASSERT_EQ(0, ret);
2857     ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2858     HDF_LOGI("UsbdTransferTest::UnbindUsbdSubscriber005 %{public}d again BindUsbdSubscriber=%{public}d", __LINE__, ret);
2859     ASSERT_EQ(0, ret);
2860     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2861     HDF_LOGI(
2862         "UsbdTransferTest::UnbindUsbdSubscriber005 %{public}d again UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2863     ASSERT_EQ(0, ret);
2864 }
2865 
2866 /**
2867  * @tc.name: BindUsbdSubscriber001
2868  * @tc.desc: Test functions to int32_t BindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber_)
2869  * @tc.desc: Positive test: parameters correctly
2870  * @tc.type: FUNC
2871  */
2872 HWTEST_F(UsbdTransferTest, BindUsbdSubscriber001, TestSize.Level1)
2873 {
2874     sptr<UsbSubscriberTest> subscriber_ = new UsbSubscriberTest();
2875     if (subscriber_ == nullptr) {
2876         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2877         exit(0);
2878     }
2879     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2880     HDF_LOGI("UsbdTransferTest::BindUsbdSubscriber001 %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2881     ASSERT_EQ(0, ret);
2882 }
2883 
2884 /**
2885  * @tc.name: BindUsbdSubscriber002
2886  * @tc.desc: Test functions to int32_t BindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber_)
2887  * @tc.desc: Positive test: bind different
2888  * @tc.type: FUNC
2889  */
2890 HWTEST_F(UsbdTransferTest, BindUsbdSubscriber002, TestSize.Level1)
2891 {
2892     sptr<UsbSubscriberTest> subscriber_ = new UsbSubscriberTest();
2893     if (subscriber_ == nullptr) {
2894         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2895         exit(0);
2896     }
2897     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2898     HDF_LOGI("UsbdTransferTest::BindUsbdSubscriber002 %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2899     ASSERT_EQ(0, ret);
2900     sptr<UsbSubscriberTest> subscriber2 = new UsbSubscriberTest();
2901     if (subscriber_ == nullptr) {
2902         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2903         exit(0);
2904     }
2905     ret = g_usbInterface->BindUsbdSubscriber(subscriber2);
2906     HDF_LOGI("UsbdTransferTest::BindUsbdSubscriber002 %{public}d again BindUsbdSubscriber=%{public}d", __LINE__, ret);
2907     ASSERT_EQ(0, ret);
2908 }
2909 
2910 /**
2911  * @tc.name: BindUsbdSubscriber003
2912  * @tc.desc: Test functions to int32_t BindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber_)
2913  * @tc.desc: Positive test: bind same
2914  * @tc.type: FUNC
2915  */
2916 HWTEST_F(UsbdTransferTest, BindUsbdSubscriber003, TestSize.Level1)
2917 {
2918     sptr<UsbSubscriberTest> subscriber_ = new UsbSubscriberTest();
2919     if (subscriber_ == nullptr) {
2920         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2921         exit(0);
2922     }
2923     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2924     HDF_LOGI("UsbdTransferTest::BindUsbdSubscriber003 %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2925     ASSERT_EQ(0, ret);
2926     ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2927     HDF_LOGI("UsbdTransferTest::BindUsbdSubscriber003 %{public}d again BindUsbdSubscriber=%{public}d", __LINE__, ret);
2928     ASSERT_EQ(0, ret);
2929 }
2930 
2931 /**
2932  * @tc.name: BindUsbdSubscriber004
2933  * @tc.desc: Test functions to int32_t BindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber_)
2934  * @tc.desc: Positive test: bind and unbind, then bind another
2935  * @tc.type: FUNC
2936  */
2937 HWTEST_F(UsbdTransferTest, BindUsbdSubscriber004, TestSize.Level1)
2938 {
2939     sptr<UsbSubscriberTest> subscriber_ = new UsbSubscriberTest();
2940     if (subscriber_ == nullptr) {
2941         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2942         exit(0);
2943     }
2944     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2945     HDF_LOGI("UsbdTransferTest::BindUsbdSubscriber004 %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2946     ASSERT_EQ(0, ret);
2947     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2948     HDF_LOGI("UsbdTransferTest::bindUsbdSubscriber005 %{public}d UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2949     ASSERT_EQ(0, ret);
2950     sptr<UsbSubscriberTest> subscriber2 = new UsbSubscriberTest();
2951     if (subscriber_ == nullptr) {
2952         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2953         exit(0);
2954     }
2955     ret = g_usbInterface->BindUsbdSubscriber(subscriber2);
2956     HDF_LOGI("UsbdTransferTest::BindUsbdSubscriber004 again %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2957     ASSERT_EQ(0, ret);
2958 }
2959 
2960 /**
2961  * @tc.name: BindUsbdSubscriber005
2962  * @tc.desc: Test functions to int32_t BindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber_)
2963  * @tc.desc: Positive test: bind again after unbind
2964  * @tc.type: FUNC
2965  */
2966 HWTEST_F(UsbdTransferTest, BindUsbdSubscriber005, TestSize.Level1)
2967 {
2968     sptr<UsbSubscriberTest> subscriber_ = new UsbSubscriberTest();
2969     if (subscriber_ == nullptr) {
2970         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2971         exit(0);
2972     }
2973     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2974     HDF_LOGI("UsbdTransferTest::BindUsbdSubscriber005 %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2975     ASSERT_EQ(0, ret);
2976     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2977     HDF_LOGI("UsbdTransferTest::bindUsbdSubscriber005 %{public}d UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2978     ASSERT_EQ(0, ret);
2979     ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2980     HDF_LOGI("UsbdTransferTest::bindUsbdSubscriber005 %{public}d again BindUsbdSubscriber=%{public}d", __LINE__, ret);
2981     ASSERT_EQ(0, ret);
2982 }
2983 } // namespace
2984