• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include <iostream>
16 #include <vector>
17 
18 #include "hdf_log.h"
19 #include "securec.h"
20 #include "usbd_transfer_test.h"
21 #include "v1_0/iusb_interface.h"
22 #include "v1_0/usb_types.h"
23 
24 const int SLEEP_TIME = 3;
25 const uint8_t BUS_NUM_INVALID = 255;
26 const uint8_t DEV_ADDR_INVALID = 255;
27 const uint32_t MAX_BUFFER_LENGTH = 255;
28 const uint8_t INTERFACEID_OK = 1;
29 const uint8_t PIPE_ENDPOINTID_INVALID = 244;
30 const uint8_t PIPE_INTERFACEID_INVALID = 244;
31 // data interface have 2 point : 1->bulk_out 2->bulk_in
32 const uint8_t POINTID_BULK_IN = USB_ENDPOINT_DIR_IN | 2;
33 const uint8_t POINTID_BULK_OUT = USB_ENDPOINT_DIR_OUT | 1;
34 const int32_t ASHMEM_MAX_SIZE = 1024;
35 const uint8_t SAMPLE_DATA_1 = 1;
36 const uint8_t SAMPLE_DATA_2 = 2;
37 const uint8_t SAMPLE_DATA_3 = 3;
38 const int32_t TRANSFER_TIME_OUT = 1000;
39 const int32_t CTL_VALUE = 0x100;
40 
41 using namespace testing::ext;
42 using namespace OHOS;
43 using namespace OHOS::USB;
44 using namespace std;
45 using namespace OHOS::HDI::Usb::V1_0;
46 
47 UsbDev UsbdTransferTest::dev_ = {0, 0};
48 sptr<UsbSubscriberTest> UsbdTransferTest::subscriber_ = nullptr;
49 
50 namespace {
51 sptr<IUsbInterface> g_usbInterface = nullptr;
52 
InitAshmemOne(sptr<Ashmem> & asmptr,int32_t asmSize,uint8_t rflg)53 int32_t InitAshmemOne(sptr<Ashmem> &asmptr, int32_t asmSize, uint8_t rflg)
54 {
55     asmptr = Ashmem::CreateAshmem("ttashmem000", asmSize);
56     if (asmptr == nullptr) {
57         HDF_LOGE("InitAshmemOne CreateAshmem failed\n");
58         return HDF_FAILURE;
59     }
60 
61     asmptr->MapReadAndWriteAshmem();
62 
63     if (rflg == 0) {
64         uint8_t tdata[ASHMEM_MAX_SIZE];
65         int32_t offset = 0;
66         int32_t tlen = 0;
67 
68         int32_t retSafe = memset_s(tdata, sizeof(tdata), 'Y', ASHMEM_MAX_SIZE);
69         if (retSafe != EOK) {
70             HDF_LOGE("InitAshmemOne memset_s failed\n");
71             return HDF_FAILURE;
72         }
73         while (offset < asmSize) {
74             tlen = (asmSize - offset) < ASHMEM_MAX_SIZE ? (asmSize - offset) : ASHMEM_MAX_SIZE;
75             asmptr->WriteToAshmem(tdata, tlen, offset);
76             offset += tlen;
77         }
78     }
79     return HDF_SUCCESS;
80 }
81 
SetUpTestCase(void)82 void UsbdTransferTest::SetUpTestCase(void)
83 {
84     g_usbInterface = IUsbInterface::Get();
85     if (g_usbInterface == nullptr) {
86         HDF_LOGE("%{public}s:IUsbInterface::Get() failed.", __func__);
87         exit(0);
88     }
89     const int32_t DEFAULT_PORT_ID = 1;
90     const int32_t DEFAULT_ROLE_HOST = 1;
91     auto ret = g_usbInterface->SetPortRole(DEFAULT_PORT_ID, DEFAULT_ROLE_HOST, DEFAULT_ROLE_HOST);
92     sleep(SLEEP_TIME);
93     HDF_LOGI("UsbdTransferTest::[Device] %{public}d SetPortRole=%{public}d", __LINE__, ret);
94     ASSERT_EQ(0, ret);
95     if (ret != 0) {
96         exit(0);
97     }
98 
99     subscriber_ = new UsbSubscriberTest();
100     if (subscriber_ == nullptr) {
101         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
102         exit(0);
103     }
104     if (g_usbInterface->BindUsbdSubscriber(subscriber_) != HDF_SUCCESS) {
105         HDF_LOGE("%{public}s: bind usbd subscriber_ failed\n", __func__);
106         exit(0);
107     }
108 
109     std::cout << "please connect device, press enter to continue" << std::endl;
110     int c;
111     while ((c = getchar()) != '\n' && c != EOF) {}
112 
113     dev_ = { subscriber_->busNum_, subscriber_->devAddr_ };
114     ret = g_usbInterface->OpenDevice(dev_);
115     HDF_LOGI("UsbdTransferTest:: %{public}d OpenDevice=%{public}d", __LINE__, ret);
116     ASSERT_EQ(0, ret);
117 }
118 
TearDownTestCase(void)119 void UsbdTransferTest::TearDownTestCase(void)
120 {
121     g_usbInterface->UnbindUsbdSubscriber(subscriber_);
122     dev_ = { subscriber_->busNum_, subscriber_->devAddr_ };
123     auto ret = g_usbInterface->CloseDevice(dev_);
124     HDF_LOGI("UsbdTransferTest:: %{public}d Close=%{public}d", __LINE__, ret);
125     ASSERT_EQ(0, ret);
126 }
127 
SetUp(void)128 void UsbdTransferTest::SetUp(void) {}
129 
TearDown(void)130 void UsbdTransferTest::TearDown(void) {}
131 
132 /**
133  * @tc.name: SUB_USB_HDI_0450
134  * @tc.desc: Test functions to ControlTransferRead
135  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
136  * @tc.desc: Positive test: parameters correctly, standard request: get configuration
137  * @tc.type: FUNC
138  */
139 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0450, Function | MediumTest | Level1)
140 {
141     struct UsbDev dev = dev_;
142     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
143     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
144     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
145     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0450 %{public}d ret=%{public}d", __LINE__, ret);
146     ASSERT_EQ(0, ret);
147 }
148 
149 /**
150  * @tc.name: SUB_USB_HDI_0460
151  * @tc.desc: Test functions to ControlTransferRead
152  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
153  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get configuration
154  * @tc.type: FUNC
155  */
156 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0460, Function | MediumTest | Level1)
157 {
158     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
159     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
160     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
161     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
162     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0460 %{public}d ret=%{public}d", __LINE__, ret);
163     ASSERT_NE(ret, 0);
164 }
165 
166 /**
167  * @tc.name: SUB_USB_HDI_0470
168  * @tc.desc: Test functions to ControlTransferRead
169  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
170  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get configuration
171  * @tc.type: FUNC
172  */
173 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0470, Function | MediumTest | Level1)
174 {
175     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
176     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
177     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
178     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
179     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0470 %{public}d ret=%{public}d", __LINE__, ret);
180     ASSERT_NE(ret, 0);
181 }
182 
183 /**
184  * @tc.name: SUB_USB_HDI_0480
185  * @tc.desc: Test functions to ControlTransferRead
186  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
187  * @tc.desc: Positive test: parameters correctly, standard request: get descriptor(device)
188  * @tc.type: FUNC
189  */
190 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0480, Function | MediumTest | Level1)
191 {
192     struct UsbDev dev = dev_;
193     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
194     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0,
195         TRANSFER_TIME_OUT};
196     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
197     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0480 %{public}d ret=%{public}d", __LINE__, ret);
198     ASSERT_EQ(0, ret);
199 }
200 
201 /**
202  * @tc.name: SUB_USB_HDI_0490
203  * @tc.desc: Test functions to ControlTransferRead
204  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
205  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get descriptor(device)
206  * @tc.type: FUNC
207  */
208 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0490, Function | MediumTest | Level1)
209 {
210     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
211     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
212     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0,
213         TRANSFER_TIME_OUT};
214     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
215     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0490 %{public}d ret=%{public}d", __LINE__, ret);
216     ASSERT_NE(ret, 0);
217 }
218 
219 /**
220  * @tc.name: SUB_USB_HDI_0500
221  * @tc.desc: Test functions to ControlTransferRead
222  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
223  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get descriptor(device)
224  * @tc.type: FUNC
225  */
226 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0500, Function | MediumTest | Level1)
227 {
228     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
229     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
230     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0,
231         TRANSFER_TIME_OUT};
232     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
233     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0500 %{public}d ret=%{public}d", __LINE__, ret);
234     ASSERT_NE(ret, 0);
235 }
236 
237 /**
238  * @tc.name: SUB_USB_HDI_0510
239  * @tc.desc: Test functions to ControlTransferRead
240  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
241  * @tc.desc: Positive test: parameters correctly, standard request: get interface
242  * @tc.type: FUNC
243  */
244 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0510, Function | MediumTest | Level1)
245 {
246     struct UsbDev dev = dev_;
247     int32_t intercafeidex = 0;
248     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
249     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE,
250         USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
251     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
252     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0510 %{public}d ret=%{public}d", __LINE__, ret);
253     ASSERT_EQ(0, ret);
254 }
255 
256 /**
257  * @tc.name: SUB_USB_HDI_0520
258  * @tc.desc: Test functions to ControlTransferRead
259  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
260  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get interface
261  * @tc.type: FUNC
262  */
263 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0520, Function | MediumTest | Level1)
264 {
265     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
266     int32_t intercafeidex = 0;
267     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
268     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE,
269         USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
270     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
271     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0520 %{public}d ret=%{public}d", __LINE__, ret);
272     ASSERT_NE(ret, 0);
273 }
274 
275 /**
276  * @tc.name: SUB_USB_HDI_0530
277  * @tc.desc: Test functions to ControlTransferRead
278  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
279  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get interface
280  * @tc.type: FUNC
281  */
282 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0530, Function | MediumTest | Level1)
283 {
284     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
285     int32_t intercafeidex = 0;
286     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
287     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE,
288         USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
289     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
290     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0530 %{public}d ret=%{public}d", __LINE__, ret);
291     ASSERT_NE(ret, 0);
292 }
293 
294 /**
295  * @tc.name: SUB_USB_HDI_0540
296  * @tc.desc: Test functions to ControlTransferRead
297  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
298  * @tc.desc: Positive test: parameters correctly, standard request: get status(recipient device)
299  * @tc.type: FUNC
300  */
301 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0540, Function | MediumTest | Level1)
302 {
303     struct UsbDev dev = dev_;
304     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
305     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, 0, 0, 0, TRANSFER_TIME_OUT};
306     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
307     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0540 %{public}d ret=%{public}d", __LINE__, ret);
308     ASSERT_EQ(0, ret);
309 }
310 
311 /**
312  * @tc.name: SUB_USB_HDI_0550
313  * @tc.desc: Test functions to ControlTransferRead
314  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
315  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get status(device)
316  * @tc.type: FUNC
317  */
318 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0550, Function | MediumTest | Level1)
319 {
320     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
321     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
322     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, 0, 0, 0, TRANSFER_TIME_OUT};
323     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
324     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0550 %{public}d ret=%{public}d", __LINE__, ret);
325     ASSERT_NE(ret, 0);
326 }
327 
328 /**
329  * @tc.name: SUB_USB_HDI_0560
330  * @tc.desc: Test functions to ControlTransferRead
331  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
332  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get status(device)
333  * @tc.type: FUNC
334  */
335 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0560, Function | MediumTest | Level1)
336 {
337     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
338     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
339     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN, 0, 0, 0, TRANSFER_TIME_OUT};
340     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
341     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0560 %{public}d ret=%{public}d", __LINE__, ret);
342     ASSERT_NE(ret, 0);
343 }
344 
345 /**
346  * @tc.name: SUB_USB_HDI_0570
347  * @tc.desc: Test functions to ControlTransferRead
348  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
349  * @tc.desc: Positive test: parameters correctly, standard request: get status(interface)
350  * @tc.type: FUNC
351  */
352 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0570, Function | MediumTest | Level1)
353 {
354     struct UsbDev dev = dev_;
355     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
356     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
357         TRANSFER_TIME_OUT};
358     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
359     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0570 %{public}d ret=%{public}d", __LINE__, ret);
360     ASSERT_EQ(0, ret);
361 }
362 
363 /**
364  * @tc.name: SUB_USB_HDI_0580
365  * @tc.desc: Test functions to ControlTransferRead
366  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
367  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get status(interface)
368  * @tc.type: FUNC
369  */
370 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0580, Function | MediumTest | Level1)
371 {
372     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
373     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
374     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
375         TRANSFER_TIME_OUT};
376     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
377     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0580 %{public}d ret=%{public}d", __LINE__, ret);
378     ASSERT_NE(ret, 0);
379 }
380 
381 /**
382  * @tc.name: SUB_USB_HDI_0590
383  * @tc.desc: Test functions to ControlTransferRead
384  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
385  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get status(interface)
386  * @tc.type: FUNC
387  */
388 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0590, Function | MediumTest | Level1)
389 {
390     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
391     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
392     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
393         TRANSFER_TIME_OUT};
394     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
395     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0590 %{public}d ret=%{public}d", __LINE__, ret);
396     ASSERT_NE(ret, 0);
397 }
398 
399 /**
400  * @tc.name: SUB_USB_HDI_0600
401  * @tc.desc: Test functions to ControlTransferRead
402  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
403  * @tc.desc: Positive test: parameters correctly, standard request: get status(endpoint)
404  * @tc.type: FUNC
405  */
406 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0600, Function | MediumTest | Level1)
407 {
408     struct UsbDev dev = dev_;
409     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
410     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
411         TRANSFER_TIME_OUT};
412     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
413     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0600 %{public}d ret=%{public}d", __LINE__, ret);
414     ASSERT_EQ(0, ret);
415 }
416 
417 /**
418  * @tc.name: SUB_USB_HDI_0610
419  * @tc.desc: Test functions to ControlTransferRead
420  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
421  * @tc.desc: Negative test: parameters exception, busNum error, standard request: get status(endpoint)
422  * @tc.type: FUNC
423  */
424 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0610, Function | MediumTest | Level1)
425 {
426     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
427     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
428     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
429         TRANSFER_TIME_OUT};
430     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
431     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0610 %{public}d ret=%{public}d", __LINE__, ret);
432     ASSERT_NE(ret, 0);
433 }
434 
435 /**
436  * @tc.name: SUB_USB_HDI_0620
437  * @tc.desc: Test functions to ControlTransferRead
438  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
439  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: get status(endpoint)
440  * @tc.type: FUNC
441  */
442 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0620, Function | MediumTest | Level1)
443 {
444     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
445     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
446     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
447         TRANSFER_TIME_OUT};
448     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
449     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0620 %{public}d ret=%{public}d", __LINE__, ret);
450     ASSERT_NE(ret, 0);
451 }
452 
453 /**
454  * @tc.name: SUB_USB_HDI_0630
455  * @tc.desc: Test functions to ControlTransferRead
456  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
457  * @tc.desc: Positive test: parameters correctly, standard request: sync frame
458  * @tc.type: FUNC
459  */
460 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0630, Function | MediumTest | Level1)
461 {
462     struct UsbDev dev = dev_;
463     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
464     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
465         0, 0, TRANSFER_TIME_OUT};
466     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
467     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0630 %{public}d ret=%{public}d", __LINE__, ret);
468     ASSERT_EQ(0, ret);
469 }
470 
471 /**
472  * @tc.name: SUB_USB_HDI_0640
473  * @tc.desc: Test functions to ControlTransferRead
474  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
475  * @tc.desc: Negative test: parameters exception, busNum error, standard request: sync frame
476  * @tc.type: FUNC
477  */
478 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0640, Function | MediumTest | Level1)
479 {
480     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
481     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
482     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
483         0, 0, TRANSFER_TIME_OUT};
484     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
485     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0640 %{public}d ret=%{public}d", __LINE__, ret);
486     ASSERT_NE(ret, 0);
487 }
488 
489 /**
490  * @tc.name: SUB_USB_HDI_0650
491  * @tc.desc: Test functions to ControlTransferRead
492  * @tc.desc: int32_t ControlTransferRead(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
493  * @tc.desc: Negative test: parameters exception, devAddr error, standard request: sync frame
494  * @tc.type: FUNC
495  */
496 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0650, Function | MediumTest | Level1)
497 {
498     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
499     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
500     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_IN | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
501         0, 0, TRANSFER_TIME_OUT};
502     auto ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData);
503     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0650 %{public}d ret=%{public}d", __LINE__, ret);
504     ASSERT_NE(ret, 0);
505 }
506 
507 /**
508  * @tc.name: SUB_USB_HDI_1780
509  * @tc.desc: Test functions to ControlTransferWrite
510  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
511  * @tc.desc: Positive test: parameters correctly
512  * @tc.type: FUNC
513  */
514 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1780, Function | MediumTest | Level1)
515 {
516     struct UsbDev dev = dev_;
517     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
518     bufferData.push_back(SAMPLE_DATA_1);
519     bufferData.push_back(SAMPLE_DATA_2);
520     bufferData.push_back(SAMPLE_DATA_3);
521     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT,
522         USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
523     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
524     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1780 %{public}d ret=%{public}d", __LINE__, ret);
525     ASSERT_EQ(0, ret);
526 }
527 
528 /**
529  * @tc.name: SUB_USB_HDI_1790
530  * @tc.desc: Test functions to ControlTransferWrite
531  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
532  * @tc.desc: Negative test: parameters exception, busNum error
533  * @tc.type: FUNC
534  */
535 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1790, Function | MediumTest | Level1)
536 {
537     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
538     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
539     bufferData.push_back(SAMPLE_DATA_1);
540     bufferData.push_back(SAMPLE_DATA_2);
541     bufferData.push_back(SAMPLE_DATA_3);
542     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE,
543         USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
544     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
545     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1790 %{public}d ret=%{public}d", __LINE__, ret);
546     ASSERT_NE(ret, 0);
547 }
548 
549 /**
550  * @tc.name: SUB_USB_HDI_1800
551  * @tc.desc: Test functions to ControlTransferWrite
552  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
553  * @tc.desc: Negative test: parameters exception, devAddr error
554  * @tc.type: FUNC
555  */
556 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1800, Function | MediumTest | Level1)
557 {
558     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
559     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
560     bufferData.push_back(SAMPLE_DATA_1);
561     bufferData.push_back(SAMPLE_DATA_2);
562     bufferData.push_back(SAMPLE_DATA_3);
563     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE,
564         USB_DDK_REQ_GET_CONFIGURATION, 0, 0, TRANSFER_TIME_OUT};
565     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
566     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1800 %{public}d ret=%{public}d", __LINE__, ret);
567     ASSERT_NE(ret, 0);
568 }
569 
570 /**
571  * @tc.name: SUB_USB_HDI_1810
572  * @tc.desc: Test functions to ControlTransferWrite
573  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
574  * @tc.desc: Positive test: parameters correctly
575  * @tc.type: FUNC
576  */
577 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1810, Function | MediumTest | Level1)
578 {
579     struct UsbDev dev = dev_;
580     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
581     bufferData.push_back(SAMPLE_DATA_1);
582     bufferData.push_back(SAMPLE_DATA_2);
583     bufferData.push_back(SAMPLE_DATA_3);
584     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT,
585         USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0, TRANSFER_TIME_OUT};
586     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
587     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1810 %{public}d ret=%{public}d", __LINE__, ret);
588     ASSERT_EQ(0, ret);
589 }
590 
591 /**
592  * @tc.name: SUB_USB_HDI_1820
593  * @tc.desc: Test functions to ControlTransferWrite
594  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
595  * @tc.desc: Negative test: parameters exception, busNum error
596  * @tc.type: FUNC
597  */
598 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1820, Function | MediumTest | Level1)
599 {
600     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
601     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
602     bufferData.push_back(SAMPLE_DATA_1);
603     bufferData.push_back(SAMPLE_DATA_2);
604     bufferData.push_back(SAMPLE_DATA_3);
605     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE,
606         USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0, TRANSFER_TIME_OUT};
607     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
608     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1820 %{public}d ret=%{public}d", __LINE__, ret);
609     ASSERT_NE(ret, 0);
610 }
611 
612 /**
613  * @tc.name: SUB_USB_HDI_1830
614  * @tc.desc: Test functions to ControlTransferWrite
615  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
616  * @tc.desc: Negative test: parameters exception, devAddr error
617  * @tc.type: FUNC
618  */
619 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1830, Function | MediumTest | Level1)
620 {
621     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
622     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
623     bufferData.push_back(SAMPLE_DATA_1);
624     bufferData.push_back(SAMPLE_DATA_2);
625     bufferData.push_back(SAMPLE_DATA_3);
626     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE,
627         USB_DDK_REQ_GET_DESCRIPTOR, CTL_VALUE, 0, TRANSFER_TIME_OUT};
628     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
629     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1830 %{public}d ret=%{public}d", __LINE__, ret);
630     ASSERT_NE(ret, 0);
631 }
632 
633 /**
634  * @tc.name: SUB_USB_HDI_1840
635  * @tc.desc: Test functions to ControlTransferWrite
636  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
637  * @tc.desc: Positive test: parameters correctly
638  * @tc.type: FUNC
639  */
640 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1840, Function | MediumTest | Level1)
641 {
642     struct UsbDev dev = dev_;
643     int32_t intercafeidex = 0;
644     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
645     bufferData.push_back(SAMPLE_DATA_1);
646     bufferData.push_back(SAMPLE_DATA_2);
647     bufferData.push_back(SAMPLE_DATA_3);
648     struct UsbCtrlTransfer ctrlparmas = {0, USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
649     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
650     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1840 %{public}d ret=%{public}d", __LINE__, ret);
651     ASSERT_EQ(0, ret);
652 }
653 
654 /**
655  * @tc.name: SUB_USB_HDI_1850
656  * @tc.desc: Test functions to ControlTransferWrite
657  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
658  * @tc.desc: Negative test: parameters exception, busNum error
659  * @tc.type: FUNC
660  */
661 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1850, Function | MediumTest | Level1)
662 {
663     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
664     int32_t intercafeidex = 0;
665     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
666     bufferData.push_back(SAMPLE_DATA_1);
667     bufferData.push_back(SAMPLE_DATA_2);
668     bufferData.push_back(SAMPLE_DATA_3);
669     struct UsbCtrlTransfer ctrlparmas = {0, USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
670     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
671     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1850 %{public}d ret=%{public}d", __LINE__, ret);
672     ASSERT_NE(ret, 0);
673 }
674 
675 /**
676  * @tc.name: SUB_USB_HDI_1860
677  * @tc.desc: Test functions to ControlTransferWrite
678  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
679  * @tc.desc: Negative test: parameters exception, devAddr error
680  * @tc.type: FUNC
681  */
682 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1860, Function | MediumTest | Level1)
683 {
684     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
685     int32_t intercafeidex = 0;
686     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
687     bufferData.push_back(SAMPLE_DATA_1);
688     bufferData.push_back(SAMPLE_DATA_2);
689     bufferData.push_back(SAMPLE_DATA_3);
690     struct UsbCtrlTransfer ctrlparmas = {0, USB_DDK_REQ_GET_INTERFACE, 0, intercafeidex, TRANSFER_TIME_OUT};
691     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
692     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1860 %{public}d ret=%{public}d", __LINE__, ret);
693     ASSERT_NE(ret, 0);
694 }
695 
696 /**
697  * @tc.name: SUB_USB_HDI_1870
698  * @tc.desc: Test functions to ControlTransferWrite
699  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
700  * @tc.desc: Positive test: parameters correctly
701  * @tc.type: FUNC
702  */
703 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1870, Function | MediumTest | Level1)
704 {
705     struct UsbDev dev = dev_;
706     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
707     bufferData.push_back(SAMPLE_DATA_1);
708     bufferData.push_back(SAMPLE_DATA_2);
709     bufferData.push_back(SAMPLE_DATA_3);
710     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT, USB_DDK_REQ_GET_DESCRIPTOR, 0, 0,
711         TRANSFER_TIME_OUT};
712     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
713     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1870 %{public}d ret=%{public}d", __LINE__, ret);
714     ASSERT_EQ(0, ret);
715 }
716 
717 /**
718  * @tc.name: SUB_USB_HDI_1880
719  * @tc.desc: Test functions to ControlTransferWrite
720  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
721  * @tc.desc: Negative test: parameters exception, busNum error
722  * @tc.type: FUNC
723  */
724 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1880, Function | MediumTest | Level1)
725 {
726     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
727     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
728     bufferData.push_back(SAMPLE_DATA_1);
729     bufferData.push_back(SAMPLE_DATA_2);
730     bufferData.push_back(SAMPLE_DATA_3);
731     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
732         TRANSFER_TIME_OUT};
733     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
734     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1880 %{public}d ret=%{public}d", __LINE__, ret);
735     ASSERT_NE(ret, 0);
736 }
737 
738 /**
739  * @tc.name: SUB_USB_HDI_1890
740  * @tc.desc: Test functions to ControlTransferWrite
741  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
742  * @tc.desc: Negative test: parameters exception, devAddr error
743  * @tc.type: FUNC
744  */
745 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1890, Function | MediumTest | Level1)
746 {
747     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
748     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
749     bufferData.push_back(SAMPLE_DATA_1);
750     bufferData.push_back(SAMPLE_DATA_2);
751     bufferData.push_back(SAMPLE_DATA_3);
752     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_INTERFACE, 0, 0, 0,
753         TRANSFER_TIME_OUT};
754     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
755     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1890 %{public}d ret=%{public}d", __LINE__, ret);
756     ASSERT_NE(ret, 0);
757 }
758 
759 /**
760  * @tc.name: SUB_USB_HDI_1900
761  * @tc.desc: Test functions to ControlTransferWrite
762  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
763  * @tc.desc: Positive test: parameters correctly
764  * @tc.type: FUNC
765  */
766 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1900, Function | MediumTest | Level1)
767 {
768     struct UsbDev dev = dev_;
769     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
770     bufferData.push_back(SAMPLE_DATA_1);
771     bufferData.push_back(SAMPLE_DATA_2);
772     bufferData.push_back(SAMPLE_DATA_3);
773     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT, USB_DDK_REQ_GET_INTERFACE, 0, 0, TRANSFER_TIME_OUT};
774     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
775     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1900 %{public}d ret=%{public}d", __LINE__, ret);
776     ASSERT_EQ(0, ret);
777 }
778 
779 /**
780  * @tc.name: SUB_USB_HDI_1910
781  * @tc.desc: Test functions to ControlTransferWrite
782  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
783  * @tc.desc: Negative test: parameters exception, busNum error
784  * @tc.type: FUNC
785  */
786 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1910, Function | MediumTest | Level1)
787 {
788     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
789     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
790     bufferData.push_back(SAMPLE_DATA_1);
791     bufferData.push_back(SAMPLE_DATA_2);
792     bufferData.push_back(SAMPLE_DATA_3);
793     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT, 0, 0, 0, TRANSFER_TIME_OUT};
794     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
795     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1910 %{public}d ret=%{public}d", __LINE__, ret);
796     ASSERT_NE(ret, 0);
797 }
798 
799 /**
800  * @tc.name: SUB_USB_HDI_1920
801  * @tc.desc: Test functions to ControlTransferWrite
802  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
803  * @tc.desc: Negative test: parameters exception, devAddr error
804  * @tc.type: FUNC
805  */
806 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1920, Function | MediumTest | Level1)
807 {
808     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
809     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
810     bufferData.push_back(SAMPLE_DATA_1);
811     bufferData.push_back(SAMPLE_DATA_2);
812     bufferData.push_back(SAMPLE_DATA_3);
813     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT, 0, 0, 0, TRANSFER_TIME_OUT};
814     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
815     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1920 %{public}d ret=%{public}d", __LINE__, ret);
816     ASSERT_NE(ret, 0);
817 }
818 
819 /**
820  * @tc.name: SUB_USB_HDI_1930
821  * @tc.desc: Test functions to ControlTransferWrite
822  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
823  * @tc.desc: Positive test: parameters correctly
824  * @tc.type: FUNC
825  */
826 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1930, Function | MediumTest | Level1)
827 {
828     struct UsbDev dev = dev_;
829     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
830     bufferData.push_back(SAMPLE_DATA_1);
831     bufferData.push_back(SAMPLE_DATA_2);
832     bufferData.push_back(SAMPLE_DATA_3);
833     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT, USB_DDK_REQ_GET_CONFIGURATION, 0, 0,
834         TRANSFER_TIME_OUT};
835     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
836     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1930 %{public}d ret=%{public}d", __LINE__, ret);
837     ASSERT_EQ(0, ret);
838 }
839 
840 /**
841  * @tc.name: SUB_USB_HDI_1940
842  * @tc.desc: Test functions to ControlTransferWrite
843  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
844  * @tc.desc: Negative test: parameters exception, busNum error
845  * @tc.type: FUNC
846  */
847 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1940, Function | MediumTest | Level1)
848 {
849     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
850     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
851     bufferData.push_back(SAMPLE_DATA_1);
852     bufferData.push_back(SAMPLE_DATA_2);
853     bufferData.push_back(SAMPLE_DATA_3);
854     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
855         TRANSFER_TIME_OUT};
856     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
857     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1940 %{public}d ret=%{public}d", __LINE__, ret);
858     ASSERT_NE(ret, 0);
859 }
860 
861 /**
862  * @tc.name: SUB_USB_HDI_1950
863  * @tc.desc: Test functions to ControlTransferWrite
864  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
865  * @tc.desc: Negative test: parameters exception, devAddr error
866  * @tc.type: FUNC
867  */
868 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1950, Function | MediumTest | Level1)
869 {
870     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
871     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
872     bufferData.push_back(SAMPLE_DATA_1);
873     bufferData.push_back(SAMPLE_DATA_2);
874     bufferData.push_back(SAMPLE_DATA_3);
875     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_ENDPOINT, 0, 0, 0,
876         TRANSFER_TIME_OUT};
877     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
878     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1950 %{public}d ret=%{public}d", __LINE__, ret);
879     ASSERT_NE(ret, 0);
880 }
881 
882 /**
883  * @tc.name: SUB_USB_HDI_1960
884  * @tc.desc: Test functions to ControlTransferWrite
885  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
886  * @tc.desc: Positive test: parameters correctly
887  * @tc.type: FUNC
888  */
889 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1960, Function | MediumTest | Level1)
890 {
891     struct UsbDev dev = dev_;
892     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
893     bufferData.push_back(SAMPLE_DATA_1);
894     bufferData.push_back(SAMPLE_DATA_2);
895     bufferData.push_back(SAMPLE_DATA_3);
896     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
897         0, 0, TRANSFER_TIME_OUT};
898     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
899     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1960 %{public}d ret=%{public}d", __LINE__, ret);
900     ASSERT_EQ(0, ret);
901 }
902 
903 /**
904  * @tc.name: SUB_USB_HDI_1970
905  * @tc.desc: Test functions to ControlTransferWrite
906  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
907  * @tc.desc: Negative test: parameters exception, busNum error
908  * @tc.type: FUNC
909  */
910 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1970, Function | MediumTest | Level1)
911 {
912     struct UsbDev dev = { BUS_NUM_INVALID, dev_.devAddr };
913     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
914     bufferData.push_back(SAMPLE_DATA_1);
915     bufferData.push_back(SAMPLE_DATA_2);
916     bufferData.push_back(SAMPLE_DATA_3);
917     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
918         0, 0, TRANSFER_TIME_OUT};
919     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
920     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1970 %{public}d ret=%{public}d", __LINE__, ret);
921     ASSERT_NE(ret, 0);
922 }
923 
924 /**
925  * @tc.name: SUB_USB_HDI_1980
926  * @tc.desc: Test functions to ControlTransferWrite
927  * @tc.desc: int32_t ControlTransferWrite(const UsbDev &dev, UsbCtrlTransfer &ctrl, std::vector<uint8_t> &data);
928  * @tc.desc: Negative test: parameters exception, devAddr error
929  * @tc.type: FUNC
930  */
931 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1980, Function | MediumTest | Level1)
932 {
933     struct UsbDev dev = { dev_.busNum, DEV_ADDR_INVALID };
934     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
935     bufferData.push_back(SAMPLE_DATA_1);
936     bufferData.push_back(SAMPLE_DATA_2);
937     bufferData.push_back(SAMPLE_DATA_3);
938     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT | USB_REQUEST_TARGET_ENDPOINT, USB_DDK_REQ_SYNCH_FRAME,
939         0, 0, TRANSFER_TIME_OUT};
940     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
941     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1980 %{public}d ret=%{public}d", __LINE__, ret);
942     ASSERT_NE(ret, 0);
943 }
944 
945 /**
946  * @tc.name: SUB_USB_HDI_0660
947  * @tc.desc: Test functions to BulkTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
948  * std::vector<uint8_t> &data);
949  * @tc.desc: Positive test: parameters correctly
950  * @tc.type: FUNC
951  */
952 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0660, Function | MediumTest | Level1)
953 {
954     struct UsbDev dev = dev_;
955     uint8_t interfaceId = INTERFACEID_OK;
956     uint8_t pointId = POINTID_BULK_IN;
957     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
958     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0660 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
959     ASSERT_EQ(0, ret);
960     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
961     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
962     ret = g_usbInterface->BulkTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
963     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0660 %{public}d UsbdBulkTransferRead=%{public}d", __LINE__, ret);
964     ASSERT_EQ(0, ret);
965 }
966 
967 /**
968  * @tc.name: SUB_USB_HDI_0670
969  * @tc.desc: Test functions to BulkTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
970  * std::vector<uint8_t> &data);
971  * @tc.desc: Negative test: parameters exception, busNum error
972  * @tc.type: FUNC
973  */
974 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0670, Function | MediumTest | Level1)
975 {
976     struct UsbDev dev = dev_;
977     uint8_t interfaceId = INTERFACEID_OK;
978     uint8_t pointId = POINTID_BULK_IN;
979     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
980     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0670 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
981     ASSERT_EQ(0, ret);
982     dev.busNum = BUS_NUM_INVALID;
983     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
984     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
985     ret = g_usbInterface->BulkTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
986     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0670 %{public}d UsbdBulkTransferRead=%{public}d", __LINE__, ret);
987     ASSERT_NE(ret, 0);
988 }
989 
990 /**
991  * @tc.name: SUB_USB_HDI_0680
992  * @tc.desc: Test functions to BulkTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
993  * std::vector<uint8_t> &data);
994  * @tc.desc: Negative test: parameters exception, devAddr error
995  * @tc.type: FUNC
996  */
997 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0680, Function | MediumTest | Level1)
998 {
999     struct UsbDev dev = dev_;
1000     uint8_t interfaceId = INTERFACEID_OK;
1001     uint8_t pointId = POINTID_BULK_IN;
1002     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1003     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0680 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1004     ASSERT_EQ(0, ret);
1005     dev.devAddr = DEV_ADDR_INVALID;
1006     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1007     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1008     ret = g_usbInterface->BulkTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1009     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0680 %{public}d UsbdBulkTransferRead=%{public}d", __LINE__, ret);
1010     ASSERT_NE(ret, 0);
1011 }
1012 
1013 /**
1014  * @tc.name: SUB_USB_HDI_0690
1015  * @tc.desc: Test functions to BulkTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1016  * std::vector<uint8_t> &data);
1017  * @tc.desc: Negative test: parameters exception, intfId error
1018  * @tc.type: FUNC
1019  */
1020 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0690, Function | MediumTest | Level1)
1021 {
1022     struct UsbDev dev = dev_;
1023     uint8_t interfaceId = INTERFACEID_OK;
1024     uint8_t pointId = POINTID_BULK_IN;
1025     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1026     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0690 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1027     ASSERT_EQ(0, ret);
1028     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1029     pipe.intfId = PIPE_INTERFACEID_INVALID;
1030     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1031     ret = g_usbInterface->BulkTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1032     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0690 %{public}d UsbdBulkTransferRead=%{public}d", __LINE__, ret);
1033     ASSERT_NE(ret, 0);
1034 }
1035 
1036 /**
1037  * @tc.name: SUB_USB_HDI_0700
1038  * @tc.desc: Test functions to BulkTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1039  * std::vector<uint8_t> &data);
1040  * @tc.desc: Negative test: parameters exception, endpointId error
1041  * @tc.type: FUNC
1042  */
1043 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0700, Function | MediumTest | Level1)
1044 {
1045     struct UsbDev dev = dev_;
1046     uint8_t interfaceId = INTERFACEID_OK;
1047     uint8_t pointId = POINTID_BULK_IN;
1048     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1049     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0700 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1050     ASSERT_EQ(0, ret);
1051     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1052     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
1053     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1054     ret = g_usbInterface->BulkTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1055     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0700 %{public}d UsbdBulkTransferRead=%{public}d", __LINE__, ret);
1056     ASSERT_NE(ret, 0);
1057 }
1058 
1059 /**
1060  * @tc.name: SUB_USB_HDI_0710
1061  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1062  * std::vector<uint8_t> &data);
1063  * @tc.desc: Positive test: parameters correctly
1064  * @tc.type: FUNC
1065  */
1066 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0710, Function | MediumTest | Level1)
1067 {
1068     struct UsbDev dev = dev_;
1069     uint8_t interfaceId = INTERFACEID_OK;
1070     uint8_t pointId = POINTID_BULK_OUT;
1071     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1072     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0710 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1073     ASSERT_EQ(0, ret);
1074     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1075     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '1'};
1076     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1077     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0710 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1078     ASSERT_EQ(0, ret);
1079 }
1080 
1081 /**
1082  * @tc.name: SUB_USB_HDI_0720
1083  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1084  * std::vector<uint8_t> &data);
1085  * @tc.desc: Negative test: parameters exception, busNum error
1086  * @tc.type: FUNC
1087  */
1088 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0720, Function | MediumTest | Level1)
1089 {
1090     struct UsbDev dev = dev_;
1091     uint8_t interfaceId = INTERFACEID_OK;
1092     uint8_t pointId = POINTID_BULK_OUT;
1093     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1094     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0720 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1095     ASSERT_EQ(0, ret);
1096     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1097     dev.busNum = BUS_NUM_INVALID;
1098     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '2'};
1099     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1100     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0720 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1101     ASSERT_NE(ret, 0);
1102 }
1103 
1104 /**
1105  * @tc.name: SUB_USB_HDI_0730
1106  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1107  * std::vector<uint8_t> &data);
1108  * @tc.desc: Negative test: parameters exception, devAddr error
1109  * @tc.type: FUNC
1110  */
1111 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0730, Function | MediumTest | Level1)
1112 {
1113     struct UsbDev dev = dev_;
1114     uint8_t interfaceId = INTERFACEID_OK;
1115     uint8_t pointId = POINTID_BULK_OUT;
1116     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1117     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0730 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1118     ASSERT_EQ(0, ret);
1119     dev.devAddr = DEV_ADDR_INVALID;
1120     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1121     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '3'};
1122     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1123     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0730 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1124     ASSERT_NE(ret, 0);
1125 }
1126 
1127 /**
1128  * @tc.name: SUB_USB_HDI_0740
1129  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1130  * std::vector<uint8_t> &data);
1131  * @tc.desc: Negative test: parameters exception, intfId error
1132  * @tc.type: FUNC
1133  */
1134 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0740, Function | MediumTest | Level1)
1135 {
1136     struct UsbDev dev = dev_;
1137     uint8_t interfaceId = INTERFACEID_OK;
1138     uint8_t pointId = POINTID_BULK_OUT;
1139     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1140     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0740 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1141     ASSERT_EQ(0, ret);
1142     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1143     pipe.intfId = PIPE_INTERFACEID_INVALID;
1144     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '4'};
1145     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1146     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0740 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1147     ASSERT_NE(ret, 0);
1148 }
1149 
1150 /**
1151  * @tc.name: SUB_USB_HDI_0750
1152  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1153  * std::vector<uint8_t> &data);
1154  * @tc.desc: Negative test: parameters exception, endpointId error
1155  * @tc.type: FUNC
1156  */
1157 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0750, Function | MediumTest | Level1)
1158 {
1159     struct UsbDev dev = dev_;
1160     uint8_t interfaceId = INTERFACEID_OK;
1161     uint8_t pointId = POINTID_BULK_OUT;
1162     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1163     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0750 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1164     ASSERT_EQ(0, ret);
1165     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1166     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
1167     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '5'};
1168     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1169     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0750 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1170     ASSERT_NE(ret, 0);
1171 }
1172 
1173 /**
1174  * @tc.name: SUB_USB_HDI_0760
1175  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1176  * std::vector<uint8_t> &data);
1177  * @tc.desc: Negative test: parameters exception, busNum && devAddr error
1178  * @tc.type: FUNC
1179  */
1180 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0760, Function | MediumTest | Level1)
1181 {
1182     struct UsbDev dev = dev_;
1183     uint8_t interfaceId = INTERFACEID_OK;
1184     uint8_t pointId = POINTID_BULK_OUT;
1185     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1186     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0760 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1187     ASSERT_EQ(0, ret);
1188     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1189     dev.busNum = BUS_NUM_INVALID;
1190     dev.devAddr = DEV_ADDR_INVALID;
1191     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '6'};
1192     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1193     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0760 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1194     ASSERT_NE(ret, 0);
1195 }
1196 
1197 /**
1198  * @tc.name: SUB_USB_HDI_0770
1199  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1200  * std::vector<uint8_t> &data);
1201  * @tc.desc: Negative test: parameters exception, ClaimInterface failed first
1202  * @tc.type: FUNC
1203  */
1204 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0770, Function | MediumTest | Level1)
1205 {
1206     struct UsbDev dev = dev_;
1207     uint8_t interfaceId = INTERFACEID_OK;
1208     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
1209     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1210     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0770 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1211     ASSERT_EQ(0, ret);
1212     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1213     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '7'};
1214     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1215     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0770 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1216     ASSERT_NE(ret, 0);
1217 }
1218 
1219 /**
1220  * @tc.name: SUB_USB_HDI_0780
1221  * @tc.desc: Test functions to BulkTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1222  * std::vector<uint8_t> &data);
1223  * @tc.desc: Positive test: parameters correctly, different in timeout
1224  * @tc.type: FUNC
1225  */
1226 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_0780, Function | MediumTest | Level1)
1227 {
1228     struct UsbDev dev = dev_;
1229     uint8_t interfaceId = INTERFACEID_OK;
1230     uint8_t pointId = POINTID_BULK_OUT;
1231     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1232     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0780 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1233     ASSERT_EQ(0, ret);
1234     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1235     std::vector<uint8_t> bufferData = {'b', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '8'};
1236     ret = g_usbInterface->BulkTransferWrite(dev, pipe, -1, bufferData);
1237     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_0780 %{public}d BulkTransferWrite=%{public}d", __LINE__, ret);
1238     ASSERT_EQ(0, ret);
1239 }
1240 
1241 /**
1242  * @tc.name: SUB_USB_HDI_1440
1243  * @tc.desc: Test functions to InterruptTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1244  * std::vector<uint8_t> &data);
1245  * @tc.desc: Positive test: parameters correctly
1246  * @tc.type: FUNC
1247  */
1248 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1440, Function | MediumTest | Level1)
1249 {
1250     struct UsbDev dev = dev_;
1251     uint8_t interfaceId = INTERFACEID_OK;
1252     uint8_t pointId = POINTID_BULK_IN;
1253     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1254     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1440 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1255     ASSERT_EQ(0, ret);
1256     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1257     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1258     ret = g_usbInterface->InterruptTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1259     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1440 %{public}d UsbdInterruptTransferRead=%{public}d", __LINE__, ret);
1260     ASSERT_EQ(0, ret);
1261 }
1262 
1263 /**
1264  * @tc.name: SUB_USB_HDI_1450
1265  * @tc.desc: Test functions to InterruptTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1266  * std::vector<uint8_t> &data);
1267  * @tc.desc: Negative test: parameters exception, busNum error
1268  * @tc.type: FUNC
1269  */
1270 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1450, Function | MediumTest | Level1)
1271 {
1272     struct UsbDev dev = dev_;
1273     uint8_t interfaceId = INTERFACEID_OK;
1274     uint8_t pointId = POINTID_BULK_IN;
1275     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1276     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1450 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1277     ASSERT_EQ(0, ret);
1278     dev.busNum = BUS_NUM_INVALID;
1279     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1280     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1281     ret = g_usbInterface->InterruptTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1282     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1450 %{public}d UsbdInterruptTransferRead=%{public}d", __LINE__, ret);
1283     ASSERT_NE(ret, 0);
1284 }
1285 
1286 /**
1287  * @tc.name: SUB_USB_HDI_1460
1288  * @tc.desc: Test functions to InterruptTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1289  * std::vector<uint8_t> &data);
1290  * @tc.desc: Negative test: parameters exception, devAddr error
1291  * @tc.type: FUNC
1292  */
1293 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1460, Function | MediumTest | Level1)
1294 {
1295     struct UsbDev dev = dev_;
1296     uint8_t interfaceId = INTERFACEID_OK;
1297     uint8_t pointId = POINTID_BULK_IN;
1298     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1299     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1460 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1300     ASSERT_EQ(0, ret);
1301     dev.devAddr = DEV_ADDR_INVALID;
1302     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1303     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1304     ret = g_usbInterface->InterruptTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1305     ASSERT_NE(ret, 0);
1306 }
1307 
1308 /**
1309  * @tc.name: SUB_USB_HDI_1470
1310  * @tc.desc: Test functions to InterruptTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1311  * std::vector<uint8_t> &data);
1312  * @tc.desc: Negative test: parameters exception, intfId error
1313  * @tc.type: FUNC
1314  */
1315 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1470, Function | MediumTest | Level1)
1316 {
1317     struct UsbDev dev = dev_;
1318     uint8_t interfaceId = INTERFACEID_OK;
1319     uint8_t pointId = POINTID_BULK_IN;
1320     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1321     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1470 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1322     ASSERT_EQ(0, ret);
1323     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1324     pipe.intfId = PIPE_INTERFACEID_INVALID;
1325     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1326     ret = g_usbInterface->InterruptTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1327     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1470 %{public}d UsbdInterruptTransferRead=%{public}d", __LINE__, ret);
1328     ASSERT_NE(ret, 0);
1329 }
1330 
1331 /**
1332  * @tc.name: SUB_USB_HDI_1480
1333  * @tc.desc: Test functions to InterruptTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1334  * std::vector<uint8_t> &data);
1335  * @tc.desc: Negative test: parameters exception, endpointId error
1336  * @tc.type: FUNC
1337  */
1338 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1480, Function | MediumTest | Level1)
1339 {
1340     struct UsbDev dev = dev_;
1341     uint8_t interfaceId = INTERFACEID_OK;
1342     uint8_t pointId = POINTID_BULK_IN;
1343     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1344     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1480 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1345     ASSERT_EQ(0, ret);
1346     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1347     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
1348     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1349     ret = g_usbInterface->InterruptTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1350     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1480 %{public}d UsbdInterruptTransferRead=%{public}d", __LINE__, ret);
1351     ASSERT_NE(ret, 0);
1352 }
1353 
1354 /**
1355  * @tc.name: SUB_USB_HDI_1490
1356  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1357  * std::vector<uint8_t> &data);
1358  * @tc.desc: Positive test: parameters correctly
1359  * @tc.type: FUNC
1360  */
1361 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1490, Function | MediumTest | Level1)
1362 {
1363     struct UsbDev dev = dev_;
1364     uint8_t interfaceId = INTERFACEID_OK;
1365     uint8_t pointId = POINTID_BULK_OUT;
1366     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1367     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1490 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1368     ASSERT_EQ(0, ret);
1369     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1370     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '1'};
1371     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1372     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1490 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1373     ASSERT_EQ(0, ret);
1374 }
1375 
1376 /**
1377  * @tc.name: SUB_USB_HDI_1500
1378  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1379  * std::vector<uint8_t> &data);
1380  * @tc.desc: Negative test: parameters exception, busNum error
1381  * @tc.type: FUNC
1382  */
1383 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1500, Function | MediumTest | Level1)
1384 {
1385     struct UsbDev dev = dev_;
1386     uint8_t interfaceId = INTERFACEID_OK;
1387     uint8_t pointId = POINTID_BULK_OUT;
1388     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1389     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1500 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1390     ASSERT_EQ(0, ret);
1391     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1392     dev.busNum = BUS_NUM_INVALID;
1393     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '2'};
1394     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1395     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1500 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1396     ASSERT_NE(ret, 0);
1397 }
1398 
1399 /**
1400  * @tc.name: SUB_USB_HDI_1510
1401  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1402  * std::vector<uint8_t> &data);
1403  * @tc.desc: Negative test: parameters exception, devAddr error
1404  * @tc.type: FUNC
1405  */
1406 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1510, Function | MediumTest | Level1)
1407 {
1408     struct UsbDev dev = dev_;
1409     uint8_t interfaceId = INTERFACEID_OK;
1410     uint8_t pointId = POINTID_BULK_OUT;
1411     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1412     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1510 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1413     ASSERT_EQ(0, ret);
1414     dev.devAddr = DEV_ADDR_INVALID;
1415     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1416     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '3'};
1417     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1418     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1510 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1419     ASSERT_NE(ret, 0);
1420 }
1421 
1422 /**
1423  * @tc.name: SUB_USB_HDI_1520
1424  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1425  * std::vector<uint8_t> &data);
1426  * @tc.desc: Negative test: parameters exception, intfId error
1427  * @tc.type: FUNC
1428  */
1429 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1520, Function | MediumTest | Level1)
1430 {
1431     struct UsbDev dev = dev_;
1432     uint8_t interfaceId = INTERFACEID_OK;
1433     uint8_t pointId = POINTID_BULK_OUT;
1434     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1435     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1520 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1436     ASSERT_EQ(0, ret);
1437     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1438     pipe.intfId = PIPE_INTERFACEID_INVALID;
1439     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '4'};
1440     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1441     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1520 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1442     ASSERT_NE(ret, 0);
1443 }
1444 
1445 /**
1446  * @tc.name: SUB_USB_HDI_1530
1447  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1448  * std::vector<uint8_t> &data);
1449  * @tc.desc: Negative test: parameters exception, endpointId error
1450  * @tc.type: FUNC
1451  */
1452 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1530, Function | MediumTest | Level1)
1453 {
1454     struct UsbDev dev = dev_;
1455     uint8_t interfaceId = INTERFACEID_OK;
1456     uint8_t pointId = POINTID_BULK_OUT;
1457     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1458     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1530 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1459     ASSERT_EQ(0, ret);
1460     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1461     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
1462     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '5'};
1463     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1464     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1530 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1465     ASSERT_NE(ret, 0);
1466 }
1467 
1468 /**
1469  * @tc.name: SUB_USB_HDI_1540
1470  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1471  * std::vector<uint8_t> &data);
1472  * @tc.desc: Negative test: parameters exception, busNum && devAddr error
1473  * @tc.type: FUNC
1474  */
1475 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1540, Function | MediumTest | Level1)
1476 {
1477     struct UsbDev dev = dev_;
1478     uint8_t interfaceId = INTERFACEID_OK;
1479     uint8_t pointId = POINTID_BULK_OUT;
1480     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1481     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1540 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1482     ASSERT_EQ(0, ret);
1483     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1484     dev.busNum = BUS_NUM_INVALID;
1485     dev.devAddr = DEV_ADDR_INVALID;
1486     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '6'};
1487     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1488     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1540 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1489     ASSERT_NE(ret, 0);
1490 }
1491 
1492 /**
1493  * @tc.name: SUB_USB_HDI_1550
1494  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1495  * std::vector<uint8_t> &data);
1496  * @tc.desc: Negative test: parameters exception, ClaimInterface failed first
1497  * @tc.type: FUNC
1498  */
1499 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1550, Function | MediumTest | Level1)
1500 {
1501     struct UsbDev dev = dev_;
1502     uint8_t interfaceId = INTERFACEID_OK;
1503     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
1504     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1505     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1550 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1506     ASSERT_EQ(0, ret);
1507     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1508     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '7'};
1509     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1510     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1550 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1511     ASSERT_NE(ret, 0);
1512 }
1513 
1514 /**
1515  * @tc.name: SUB_USB_HDI_1560
1516  * @tc.desc: Test functions to InterruptTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1517  * std::vector<uint8_t> &data);
1518  * Positive test: parameters correctly, different in timeout
1519  * @tc.type: FUNC
1520  */
1521 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1560, Function | MediumTest | Level1)
1522 {
1523     struct UsbDev dev = dev_;
1524     uint8_t interfaceId = INTERFACEID_OK;
1525     uint8_t pointId = POINTID_BULK_OUT;
1526     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1527     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1560 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1528     ASSERT_EQ(0, ret);
1529     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1530     std::vector<uint8_t> bufferData = {'i', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '8'};
1531     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, -1, bufferData);
1532     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1560 %{public}d InterruptTransferWrite=%{public}d", __LINE__, ret);
1533     ASSERT_EQ(0, ret);
1534 }
1535 
1536 /**
1537  * @tc.name: SUB_USB_HDI_1570
1538  * @tc.desc: Test functions to IsoTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1539  * std::vector<uint8_t> &data);
1540  * @tc.desc: Positive test: parameters correctly
1541  * @tc.type: FUNC
1542  */
1543 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1570, Function | MediumTest | Level1)
1544 {
1545     struct UsbDev dev = dev_;
1546     uint8_t interfaceId = INTERFACEID_OK;
1547     uint8_t pointId = POINTID_BULK_IN;
1548     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1549     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1570 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1550     ASSERT_EQ(0, ret);
1551     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1552     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1553     ret = g_usbInterface->IsoTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1554     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1570 %{public}d UsbdIsoTransferRead=%{public}d", __LINE__, ret);
1555     ASSERT_EQ(0, ret);
1556 }
1557 
1558 /**
1559  * @tc.name: SUB_USB_HDI_1580
1560  * @tc.desc: Test functions to IsoTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1561  * std::vector<uint8_t> &data);
1562  * @tc.desc: Negative test: parameters exception, busNum error
1563  * @tc.type: FUNC
1564  */
1565 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1580, Function | MediumTest | Level1)
1566 {
1567     struct UsbDev dev = dev_;
1568     uint8_t interfaceId = INTERFACEID_OK;
1569     uint8_t pointId = POINTID_BULK_IN;
1570     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1580 %{public}d interfaceId=%{public}d", __LINE__, interfaceId);
1571     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1572     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1580 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1573     ASSERT_EQ(0, ret);
1574     dev.busNum = BUS_NUM_INVALID;
1575     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1576     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1577     ret = g_usbInterface->IsoTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1578     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1580 %{public}d UsbdIsoTransferRead=%{public}d", __LINE__, ret);
1579     ASSERT_NE(ret, 0);
1580 }
1581 
1582 /**
1583  * @tc.name: SUB_USB_HDI_1590
1584  * @tc.desc: Test functions to IsoTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1585  * std::vector<uint8_t> &data);
1586  * @tc.desc: Negative test: parameters exception, devAddr error
1587  * @tc.type: FUNC
1588  */
1589 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1590, Function | MediumTest | Level1)
1590 {
1591     struct UsbDev dev = dev_;
1592     uint8_t interfaceId = INTERFACEID_OK;
1593     uint8_t pointId = POINTID_BULK_IN;
1594     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1595     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1590 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1596     ASSERT_EQ(0, ret);
1597     dev.devAddr = DEV_ADDR_INVALID;
1598     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1599     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1600     ret = g_usbInterface->IsoTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1601     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1590 %{public}d UsbdIsoTransferRead=%{public}d", __LINE__, ret);
1602     ASSERT_NE(ret, 0);
1603 }
1604 
1605 /**
1606  * @tc.name: SUB_USB_HDI_1600
1607  * @tc.desc: Test functions to IsoTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1608  * std::vector<uint8_t> &data);
1609  * @tc.desc: Negative test: parameters exception, intfId error
1610  * @tc.type: FUNC
1611  */
1612 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1600, Function | MediumTest | Level1)
1613 {
1614     struct UsbDev dev = dev_;
1615     uint8_t interfaceId = INTERFACEID_OK;
1616     uint8_t pointId = POINTID_BULK_IN;
1617     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1618     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1600 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1619     ASSERT_EQ(0, ret);
1620     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1621     pipe.intfId = PIPE_INTERFACEID_INVALID;
1622     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1623     ret = g_usbInterface->IsoTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1624     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1600 %{public}d UsbdIsoTransferRead=%{public}d", __LINE__, ret);
1625     ASSERT_NE(ret, 0);
1626 }
1627 
1628 /**
1629  * @tc.name: SUB_USB_HDI_1610
1630  * @tc.desc: Test functions to IsoTransferRead(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1631  * std::vector<uint8_t> &data);
1632  * @tc.desc: Negative test: parameters exception, endpointId error
1633  * @tc.type: FUNC
1634  */
1635 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1610, Function | MediumTest | Level1)
1636 {
1637     struct UsbDev dev = dev_;
1638     uint8_t interfaceId = INTERFACEID_OK;
1639     uint8_t pointId = POINTID_BULK_IN;
1640     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1641     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1610 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1642     ASSERT_EQ(0, ret);
1643     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1644     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
1645     std::vector<uint8_t> bufferData(MAX_BUFFER_LENGTH);
1646     ret = g_usbInterface->IsoTransferRead(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1647     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1610 %{public}d UsbdIsoTransferRead=%{public}d", __LINE__, ret);
1648     ASSERT_NE(ret, 0);
1649 }
1650 
1651 /**
1652  * @tc.name: SUB_USB_HDI_1620
1653  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1654  * std::vector<uint8_t> &data);
1655  * @tc.desc: Positive test: parameters correctly
1656  * @tc.type: FUNC
1657  */
1658 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1620, Function | MediumTest | Level1)
1659 {
1660     struct UsbDev dev = dev_;
1661     uint8_t interfaceId = INTERFACEID_OK;
1662     uint8_t pointId = POINTID_BULK_OUT;
1663     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1664     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1620 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1665     ASSERT_EQ(0, ret);
1666     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1667     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '1'};
1668     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1669     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1620 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
1670     ASSERT_EQ(0, ret);
1671 }
1672 
1673 /**
1674  * @tc.name: SUB_USB_HDI_1630
1675  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1676  * std::vector<uint8_t> &data);
1677  * @tc.desc: Negative test: parameters exception, busNum error
1678  * @tc.type: FUNC
1679  */
1680 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1630, Function | MediumTest | Level1)
1681 {
1682     struct UsbDev dev = dev_;
1683     uint8_t interfaceId = INTERFACEID_OK;
1684     uint8_t pointId = POINTID_BULK_OUT;
1685     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1686     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1630 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1687     ASSERT_EQ(0, ret);
1688     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1689     dev.busNum = BUS_NUM_INVALID;
1690     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '2'};
1691     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1692     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1630 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
1693     ASSERT_NE(ret, 0);
1694 }
1695 
1696 /**
1697  * @tc.name: SUB_USB_HDI_1640
1698  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1699  * std::vector<uint8_t> &data);
1700  * @tc.desc: Negative test: parameters exception, devAddr error
1701  * @tc.type: FUNC
1702  */
1703 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1640, Function | MediumTest | Level1)
1704 {
1705     struct UsbDev dev = dev_;
1706     uint8_t interfaceId = INTERFACEID_OK;
1707     uint8_t pointId = POINTID_BULK_OUT;
1708     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1709     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1640 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1710     ASSERT_EQ(0, ret);
1711     dev.devAddr = DEV_ADDR_INVALID;
1712     uint32_t length = 100;
1713     uint8_t buffer[100] = "hello world Iso writ03";
1714     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1715     std::vector<uint8_t> bufferData = { buffer, buffer + length };
1716     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1717     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1640 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
1718     ASSERT_NE(ret, 0);
1719 }
1720 
1721 /**
1722  * @tc.name: SUB_USB_HDI_1650
1723  * @tc.desc: Test functions to IsoTransferWrite(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, SUB_USB_HDI_1650, Function | MediumTest | Level1)
1729 {
1730     struct UsbDev dev = dev_;
1731     uint8_t interfaceId = INTERFACEID_OK;
1732     uint8_t pointId = POINTID_BULK_OUT;
1733     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1734     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1650 %{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 = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '4'};
1739     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1740     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1650 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
1741     ASSERT_NE(ret, 0);
1742 }
1743 
1744 /**
1745  * @tc.name: SUB_USB_HDI_1660
1746  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1747  * std::vector<uint8_t> &data);
1748  * @tc.desc: Negative test: parameters exception, endpointId error
1749  * @tc.type: FUNC
1750  */
1751 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1660, Function | MediumTest | Level1)
1752 {
1753     struct UsbDev dev = dev_;
1754     uint8_t interfaceId = INTERFACEID_OK;
1755     uint8_t pointId = POINTID_BULK_OUT;
1756     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1757     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1660 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1758     ASSERT_EQ(0, ret);
1759     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1760     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
1761     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '5'};
1762     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1763     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1660 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
1764     ASSERT_NE(ret, 0);
1765 }
1766 
1767 /**
1768  * @tc.name: SUB_USB_HDI_1670
1769  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1770  * std::vector<uint8_t> &data);
1771  * @tc.desc: Negative test: parameters exception, busNum && devAddr error
1772  * @tc.type: FUNC
1773  */
1774 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1670, Function | MediumTest | Level1)
1775 {
1776     struct UsbDev dev = dev_;
1777     uint8_t interfaceId = INTERFACEID_OK;
1778     uint8_t pointId = POINTID_BULK_OUT;
1779     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1780     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1670 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1781     ASSERT_EQ(0, ret);
1782     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1783     dev.busNum = BUS_NUM_INVALID;
1784     dev.devAddr = DEV_ADDR_INVALID;
1785     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '6'};
1786     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1787     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1670 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
1788     ASSERT_NE(ret, 0);
1789 }
1790 
1791 /**
1792  * @tc.name: SUB_USB_HDI_1680
1793  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1794  * std::vector<uint8_t> &data);
1795  * @tc.desc: Negative test: parameters exception, endpointId error, ClaimInterface failed first
1796  * @tc.type: FUNC
1797  */
1798 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1680, Function | MediumTest | Level1)
1799 {
1800     struct UsbDev dev = dev_;
1801     uint8_t interfaceId = INTERFACEID_OK;
1802     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
1803     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1804     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1680 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1805     ASSERT_EQ(0, ret);
1806     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1807     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '7'};
1808     ret = g_usbInterface->IsoTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
1809     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1680 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
1810     ASSERT_NE(ret, 0);
1811 }
1812 
1813 /**
1814  * @tc.name: SUB_USB_HDI_1690
1815  * @tc.desc: Test functions to IsoTransferWrite(const UsbDev &dev, const UsbPipe &pipe, int32_t timeout,
1816  * std::vector<uint8_t> &data);
1817  * @tc.desc: Positive test: parameters correctly, different in timeout
1818  * @tc.type: FUNC
1819  */
1820 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_1690, Function | MediumTest | Level1)
1821 {
1822     struct UsbDev dev = dev_;
1823     uint8_t interfaceId = INTERFACEID_OK;
1824     uint8_t pointId = POINTID_BULK_OUT;
1825     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1826     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1690 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1827     ASSERT_EQ(0, ret);
1828     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1829     std::vector<uint8_t> bufferData = {'i', 's', 'o', 'w', 'r', 'i', 't', 'e', '0', '8'};
1830     ret = g_usbInterface->IsoTransferWrite(dev, pipe, -1, bufferData);
1831     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_1690 %{public}d IsoTransferWrite=%{public}d", __LINE__, ret);
1832     ASSERT_EQ(0, ret);
1833 }
1834 
1835 /**
1836  * @tc.name: SUB_USB_HDI_2040
1837  * @tc.desc: Test functions to int32_t BulkWrite(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
1838  * @tc.desc: Positive test: parameters correctly
1839  * @tc.type: FUNC
1840  */
1841 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2040, Function | MediumTest | Level1)
1842 {
1843     sptr<Ashmem> ashmem;
1844     uint8_t rflg = 0;
1845     int32_t asmSize = MAX_BUFFER_LENGTH;
1846     struct UsbDev dev = dev_;
1847     uint8_t interfaceId = INTERFACEID_OK;
1848     uint8_t pointId = POINTID_BULK_IN;
1849     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1850     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2040 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1851     ASSERT_EQ(0, ret);
1852     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1853     (void)InitAshmemOne(ashmem, asmSize, rflg);
1854     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
1855     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2040 %{public}d BulkWrite=%{public}d", __LINE__, ret);
1856     ASSERT_EQ(ret, 0);
1857 }
1858 
1859 /**
1860  * @tc.name: SUB_USB_HDI_2050
1861  * @tc.desc: Test functions to int32_t BulkWrite(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
1862  * @tc.desc: Negative test: parameters exception, busNum error
1863  * @tc.type: FUNC
1864  */
1865 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2050, Function | MediumTest | Level1)
1866 {
1867     sptr<Ashmem> ashmem;
1868     uint8_t rflg = 0;
1869     int32_t asmSize = MAX_BUFFER_LENGTH;
1870     struct UsbDev dev = dev_;
1871     uint8_t interfaceId = INTERFACEID_OK;
1872     uint8_t pointId = POINTID_BULK_OUT;
1873     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1874     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2050 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1875     ASSERT_EQ(0, ret);
1876     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1877     dev.busNum = BUS_NUM_INVALID;
1878     (void)InitAshmemOne(ashmem, asmSize, rflg);
1879     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
1880     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2050 %{public}d BulkWrite=%{public}d", __LINE__, ret);
1881     ASSERT_NE(ret, 0);
1882 }
1883 
1884 /**
1885  * @tc.name: SUB_USB_HDI_2060
1886  * @tc.desc: Test functions to int32_t BulkWrite(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
1887  * @tc.desc: Negative test: parameters exception, devAddr error
1888  * @tc.type: FUNC
1889  */
1890 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2060, Function | MediumTest | Level1)
1891 {
1892     sptr<Ashmem> ashmem;
1893     uint8_t rflg = 0;
1894     int32_t asmSize = MAX_BUFFER_LENGTH;
1895     struct UsbDev dev = dev_;
1896     uint8_t interfaceId = INTERFACEID_OK;
1897     uint8_t pointId = POINTID_BULK_OUT;
1898     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1899     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2060 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1900     ASSERT_EQ(0, ret);
1901     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1902     dev.devAddr = DEV_ADDR_INVALID;
1903     (void)InitAshmemOne(ashmem, asmSize, rflg);
1904     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
1905     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2060 %{public}d BulkWrite=%{public}d", __LINE__, ret);
1906     ASSERT_NE(ret, 0);
1907 }
1908 
1909 /**
1910  * @tc.name: SUB_USB_HDI_2070
1911  * @tc.desc: Test functions to int32_t BulkWrite(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
1912  * @tc.desc: Negative test: parameters exception, intfId error
1913  * @tc.type: FUNC
1914  */
1915 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2070, Function | MediumTest | Level1)
1916 {
1917     sptr<Ashmem> ashmem;
1918     uint8_t rflg = 0;
1919     int32_t asmSize = MAX_BUFFER_LENGTH;
1920     struct UsbDev dev = dev_;
1921     uint8_t interfaceId = INTERFACEID_OK;
1922     uint8_t pointId = POINTID_BULK_OUT;
1923     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1924     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2070 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1925     ASSERT_EQ(0, ret);
1926     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1927     pipe.intfId = PIPE_INTERFACEID_INVALID;
1928     (void)InitAshmemOne(ashmem, asmSize, rflg);
1929     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
1930     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2070 %{public}d BulkWrite=%{public}d", __LINE__, ret);
1931     ASSERT_NE(ret, 0);
1932 }
1933 
1934 /**
1935  * @tc.name: SUB_USB_HDI_2080
1936  * @tc.desc: Test functions to int32_t BulkWrite(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
1937  * @tc.desc: Negative test: parameters exception, endpointId error
1938  * @tc.type: FUNC
1939  */
1940 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2080, Function | MediumTest | Level1)
1941 {
1942     sptr<Ashmem> ashmem;
1943     uint8_t rflg = 0;
1944     int32_t asmSize = MAX_BUFFER_LENGTH;
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::SUB_USB_HDI_2080 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1950     ASSERT_EQ(0, ret);
1951     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1952     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
1953     (void)InitAshmemOne(ashmem, asmSize, rflg);
1954     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
1955     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2080 %{public}d BulkWrite=%{public}d", __LINE__, ret);
1956     ASSERT_NE(ret, 0);
1957 }
1958 
1959 /**
1960  * @tc.name: SUB_USB_HDI_2090
1961  * @tc.desc: Test functions to int32_t BulkRead(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
1962  * @tc.desc: Positive test: parameters correctly
1963  * @tc.type: FUNC
1964  */
1965 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2090, Function | MediumTest | Level1)
1966 {
1967     sptr<Ashmem> ashmem;
1968     uint8_t rflg = 0;
1969     int32_t asmSize = MAX_BUFFER_LENGTH;
1970     struct UsbDev dev = dev_;
1971     uint8_t interfaceId = INTERFACEID_OK;
1972     uint8_t pointId = POINTID_BULK_IN;
1973     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1974     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2090 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1975     ASSERT_EQ(0, ret);
1976     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
1977     (void)InitAshmemOne(ashmem, asmSize, rflg);
1978     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
1979     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2090 %{public}d BulkWrite=%{public}d", __LINE__, ret);
1980     ASSERT_EQ(ret, 0);
1981 }
1982 
1983 /**
1984  * @tc.name: SUB_USB_HDI_2100
1985  * @tc.desc: Test functions to int32_t BulkRead(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
1986  * @tc.desc: Negative test: parameters exception, busNum error
1987  * @tc.type: FUNC
1988  */
1989 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2100, Function | MediumTest | Level1)
1990 {
1991     sptr<Ashmem> ashmem;
1992     uint8_t rflg = 0;
1993     int32_t asmSize = MAX_BUFFER_LENGTH;
1994     struct UsbDev dev = dev_;
1995     uint8_t interfaceId = INTERFACEID_OK;
1996     uint8_t pointId = POINTID_BULK_OUT;
1997     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1998     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2100 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1999     ASSERT_EQ(0, ret);
2000     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
2001     dev.busNum = BUS_NUM_INVALID;
2002     (void)InitAshmemOne(ashmem, asmSize, rflg);
2003     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
2004     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2100 %{public}d BulkWrite=%{public}d", __LINE__, ret);
2005     ASSERT_NE(ret, 0);
2006 }
2007 
2008 /**
2009  * @tc.name: SUB_USB_HDI_2110
2010  * @tc.desc: Test functions to int32_t BulkRead(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2011  * @tc.desc: Negative test: parameters exception, devAddr error
2012  * @tc.type: FUNC
2013  */
2014 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2110, Function | MediumTest | Level1)
2015 {
2016     sptr<Ashmem> ashmem;
2017     uint8_t rflg = 0;
2018     int32_t asmSize = MAX_BUFFER_LENGTH;
2019     struct UsbDev dev = dev_;
2020     uint8_t interfaceId = INTERFACEID_OK;
2021     uint8_t pointId = POINTID_BULK_OUT;
2022     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2023     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2110 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2024     ASSERT_EQ(0, ret);
2025     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
2026     dev.devAddr = DEV_ADDR_INVALID;
2027     (void)InitAshmemOne(ashmem, asmSize, rflg);
2028     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
2029     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2110 %{public}d BulkWrite=%{public}d", __LINE__, ret);
2030     ASSERT_NE(ret, 0);
2031 }
2032 
2033 /**
2034  * @tc.name: SUB_USB_HDI_2120
2035  * @tc.desc: Test functions to int32_t BulkRead(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2036  * @tc.desc: Negative test: parameters exception, intfId error
2037  * @tc.type: FUNC
2038  */
2039 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2120, Function | MediumTest | Level1)
2040 {
2041     sptr<Ashmem> ashmem;
2042     uint8_t rflg = 0;
2043     int32_t asmSize = MAX_BUFFER_LENGTH;
2044     struct UsbDev dev = dev_;
2045     uint8_t interfaceId = INTERFACEID_OK;
2046     uint8_t pointId = POINTID_BULK_OUT;
2047     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2048     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2120 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2049     ASSERT_EQ(0, ret);
2050     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
2051     pipe.intfId = PIPE_INTERFACEID_INVALID;
2052     (void)InitAshmemOne(ashmem, asmSize, rflg);
2053     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
2054     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2120 %{public}d BulkWrite=%{public}d", __LINE__, ret);
2055     ASSERT_NE(ret, 0);
2056 }
2057 
2058 /**
2059  * @tc.name: SUB_USB_HDI_2130
2060  * @tc.desc: Test functions to int32_t BulkRead(const UsbDev &dev, const UsbPipe &pipe, const sptr<Ashmem> &ashmem)
2061  * @tc.desc: Negative test: parameters exception, endpointId error
2062  * @tc.type: FUNC
2063  */
2064 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2130, Function | MediumTest | Level1)
2065 {
2066     sptr<Ashmem> ashmem;
2067     uint8_t rflg = 0;
2068     int32_t asmSize = MAX_BUFFER_LENGTH;
2069     struct UsbDev dev = dev_;
2070     uint8_t interfaceId = INTERFACEID_OK;
2071     uint8_t pointId = POINTID_BULK_OUT;
2072     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
2073     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2130 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
2074     ASSERT_EQ(0, ret);
2075     OHOS::HDI::Usb::V1_0::UsbPipe pipe = { interfaceId, pointId };
2076     pipe.endpointId = PIPE_ENDPOINTID_INVALID;
2077     (void)InitAshmemOne(ashmem, asmSize, rflg);
2078     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
2079     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2130 %{public}d BulkWrite=%{public}d", __LINE__, ret);
2080     ASSERT_NE(ret, 0);
2081 }
2082 
2083 /**
2084  * @tc.name: SUB_USB_HDI_2240
2085  * @tc.desc: Test functions to RegBulkCallback
2086  * @tc.desc: int32_t RegBulkCallback(const UsbDev &dev, const UsbPipe &pipe, const sptr<IUsbdBulkCallback> &cb)
2087  * @tc.desc: Positive test: parameters correctly
2088  * @tc.type: FUNC
2089  */
2090 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2240, Function | MediumTest | Level1)
2091 {
2092     struct UsbDev dev = dev_;
2093     uint8_t interfaceId = INTERFACEID_OK;
2094     uint8_t pointId = POINTID_BULK_OUT;
2095     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
2096     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2097     if (usbdBulkCallback == nullptr) {
2098         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2099         exit(0);
2100     }
2101     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2102     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2240 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2103     ASSERT_EQ(ret, 0);
2104 }
2105 
2106 /**
2107  * @tc.name: SUB_USB_HDI_2250
2108  * @tc.desc: Test functions to RegBulkCallback
2109  * @tc.desc: int32_t RegBulkCallback(const UsbDev &dev, const UsbPipe &pipe, const sptr<IUsbdBulkCallback> &cb)
2110  * @tc.desc: Negative test: parameters exception, busNum error
2111  * @tc.type: FUNC
2112  */
2113 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2250, Function | MediumTest | Level1)
2114 {
2115     struct UsbDev dev = dev_;
2116     uint8_t interfaceId = INTERFACEID_OK;
2117     uint8_t pointId = POINTID_BULK_OUT;
2118     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
2119     dev.busNum = BUS_NUM_INVALID;
2120     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2121     if (usbdBulkCallback == nullptr) {
2122         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2123         exit(0);
2124     }
2125     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2126     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2250 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2127     ASSERT_NE(ret, 0);
2128 }
2129 
2130 /**
2131  * @tc.name: SUB_USB_HDI_2260
2132  * @tc.desc: Test functions to RegBulkCallback
2133  * @tc.desc: int32_t RegBulkCallback(const UsbDev &dev, const UsbPipe &pipe, const sptr<IUsbdBulkCallback> &cb)
2134  * @tc.desc: Negative test: parameters exception, devAddr error
2135  * @tc.type: FUNC
2136  */
2137 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2260, Function | MediumTest | Level1)
2138 {
2139     struct UsbDev dev = dev_;
2140     uint8_t interfaceId = INTERFACEID_OK;
2141     uint8_t pointId = POINTID_BULK_OUT;
2142     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
2143     dev.devAddr = DEV_ADDR_INVALID;
2144     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2145     if (usbdBulkCallback == nullptr) {
2146         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2147         exit(0);
2148     }
2149     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2150     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2260 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2151     ASSERT_NE(ret, 0);
2152 }
2153 
2154 /**
2155  * @tc.name: SUB_USB_HDI_2270
2156  * @tc.desc: Test functions to RegBulkCallback
2157  * @tc.desc: int32_t RegBulkCallback(const UsbDev &dev, const UsbPipe &pipe, const sptr<IUsbdBulkCallback> &cb)
2158  * @tc.desc: Negative test: parameters exception, intfId error
2159  * @tc.type: FUNC
2160  */
2161 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2270, Function | MediumTest | Level1)
2162 {
2163     struct UsbDev dev = dev_;
2164     uint8_t interfaceId = INTERFACEID_OK;
2165     uint8_t pointId = POINTID_BULK_OUT;
2166     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
2167     pipe.intfId = PIPE_INTERFACEID_INVALID;
2168     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2169     if (usbdBulkCallback == nullptr) {
2170         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2171         exit(0);
2172     }
2173     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2174     HDF_LOGI("UsbdTransferTest::RegBulkCallback004 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2175     ASSERT_NE(ret, 0);
2176 }
2177 
2178 /**
2179  * @tc.name: SUB_USB_HDI_2280
2180  * @tc.desc: Test functions to RegBulkCallback
2181  * @tc.desc: int32_t RegBulkCallback(const UsbDev &dev, const UsbPipe &pipe, const sptr<IUsbdBulkCallback> &cb)
2182  * @tc.desc: Negative test: parameters exception, cb error
2183  * @tc.type: FUNC
2184  */
2185 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2280, Function | MediumTest | Level1)
2186 {
2187     struct UsbDev dev = dev_;
2188     uint8_t interfaceId = INTERFACEID_OK;
2189     uint8_t pointId = POINTID_BULK_OUT;
2190     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
2191     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, nullptr);
2192     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2280 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2193     ASSERT_NE(ret, 0);
2194 }
2195 
2196 /**
2197  * @tc.name: SUB_USB_HDI_2290
2198  * @tc.desc: Test functions to int32_t UnRegBulkCallback(const UsbDev &dev, const UsbPipe &pipe)
2199  * @tc.desc: Positive test: parameters correctly
2200  * @tc.type: FUNC
2201  */
2202 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2290, Function | MediumTest | Level1)
2203 {
2204     struct UsbDev dev = dev_;
2205     uint8_t interfaceId = INTERFACEID_OK;
2206     uint8_t pointId = POINTID_BULK_OUT;
2207     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
2208     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2209     if (usbdBulkCallback == nullptr) {
2210         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2211         exit(0);
2212     }
2213     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2214     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2290 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2215     ASSERT_EQ(ret, 0);
2216     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2217     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2290 %{public}d UnRegBulkCallback=%{public}d", __LINE__, ret);
2218     ASSERT_EQ(ret, 0);
2219 }
2220 
2221 /**
2222  * @tc.name: SUB_USB_HDI_2300
2223  * @tc.desc: Test functions to int32_t UnRegBulkCallback(const UsbDev &dev, const UsbPipe &pipe)
2224  * @tc.desc: Negative test: parameters exception, devAddr error
2225  * @tc.type: FUNC
2226  */
2227 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2300, Function | MediumTest | Level1)
2228 {
2229     struct UsbDev dev = dev_;
2230     uint8_t interfaceId = INTERFACEID_OK;
2231     uint8_t pointId = POINTID_BULK_OUT;
2232     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
2233     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2234     if (usbdBulkCallback == nullptr) {
2235         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2236         exit(0);
2237     }
2238     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2239     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2300 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2240     ASSERT_EQ(ret, 0);
2241     dev.devAddr = DEV_ADDR_INVALID;
2242     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2243     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2300 %{public}d UnRegBulkCallback=%{public}d", __LINE__, ret);
2244     ASSERT_NE(ret, 0);
2245     dev = dev_;
2246     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2247     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2300 %{public}d again UnRegBulkCallback=%{public}d", __LINE__, ret);
2248     ASSERT_EQ(ret, 0);
2249 }
2250 
2251 /**
2252  * @tc.name: SUB_USB_HDI_2310
2253  * @tc.desc: Test functions to int32_t UnRegBulkCallback(const UsbDev &dev, const UsbPipe &pipe)
2254  * @tc.desc: Negative test: parameters exception, intfId error
2255  * @tc.type: FUNC
2256  */
2257 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2310, Function | MediumTest | Level1)
2258 {
2259     struct UsbDev dev = dev_;
2260     uint8_t interfaceId = INTERFACEID_OK;
2261     uint8_t pointId = POINTID_BULK_OUT;
2262     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
2263     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2264     if (usbdBulkCallback == nullptr) {
2265         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2266         exit(0);
2267     }
2268     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2269     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2310 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2270     ASSERT_EQ(ret, 0);
2271     pipe.intfId = PIPE_INTERFACEID_INVALID;
2272     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2273     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2310 %{public}d UnRegBulkCallback=%{public}d", __LINE__, ret);
2274     ASSERT_NE(ret, 0);
2275     pipe = {interfaceId, pointId};
2276     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2277     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2310 %{public}d again UnRegBulkCallback=%{public}d", __LINE__, ret);
2278     ASSERT_EQ(ret, 0);
2279 }
2280 
2281 /**
2282  * @tc.name: SUB_USB_HDI_2320
2283  * @tc.desc: Test functions to int32_t UnRegBulkCallback(const UsbDev &dev, const UsbPipe &pipe)
2284  * @tc.desc: Positive test: call again
2285  * @tc.type: FUNC
2286  */
2287 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2320, Function | MediumTest | Level1)
2288 {
2289     struct UsbDev dev = dev_;
2290     uint8_t interfaceId = INTERFACEID_OK;
2291     uint8_t pointId = POINTID_BULK_OUT;
2292     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
2293     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
2294     if (usbdBulkCallback == nullptr) {
2295         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
2296         exit(0);
2297     }
2298     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
2299     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2320 %{public}d RegBulkCallback=%{public}d", __LINE__, ret);
2300     ASSERT_EQ(ret, 0);
2301     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2302     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2320 %{public}d UnRegBulkCallback=%{public}d", __LINE__, ret);
2303     ASSERT_EQ(ret, 0);
2304     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2305     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2320 %{public}d again UnRegBulkCallback=%{public}d", __LINE__, ret);
2306     ASSERT_EQ(ret, 0);
2307 }
2308 
2309 /**
2310  * @tc.name: SUB_USB_HDI_2330
2311  * @tc.desc: Test functions to int32_t UnRegBulkCallback(const UsbDev &dev, const UsbPipe &pipe)
2312  * @tc.desc: Positive test: no register
2313  * @tc.type: FUNC
2314  */
2315 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2330, Function | MediumTest | Level1)
2316 {
2317     struct UsbDev dev = dev_;
2318     uint8_t interfaceId = INTERFACEID_OK;
2319     uint8_t pointId = POINTID_BULK_OUT;
2320     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
2321     auto ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
2322     HDF_LOGI("UsbdTransferTest::UnRegBulkCallback005 %{public}d UnRegBulkCallback=%{public}d", __LINE__, ret);
2323     ASSERT_EQ(ret, 0);
2324 }
2325 
2326 /**
2327  * @tc.name: SUB_USB_HDI_2140
2328  * @tc.desc: Test functions to int32_t BindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber)
2329  * @tc.desc: Positive test: parameters correctly
2330  * @tc.type: FUNC
2331  */
2332 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2140, Function | MediumTest | Level1)
2333 {
2334     subscriber_ = new UsbSubscriberTest();
2335     if (subscriber_ == nullptr) {
2336         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2337         exit(0);
2338     }
2339     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2340     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2140 %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2341     ASSERT_EQ(0, ret);
2342 }
2343 
2344 /**
2345  * @tc.name: SUB_USB_HDI_2150
2346  * @tc.desc: Test functions to int32_t BindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber)
2347  * @tc.desc: Positive test: bind different
2348  * @tc.type: FUNC
2349  */
2350 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2150, Function | MediumTest | Level1)
2351 {
2352     subscriber_ = new UsbSubscriberTest();
2353     if (subscriber_ == nullptr) {
2354         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2355         exit(0);
2356     }
2357     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2358     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2150 %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2359     ASSERT_EQ(0, ret);
2360     sptr<UsbSubscriberTest> subscriber2 = new UsbSubscriberTest();
2361     if (subscriber_ == nullptr) {
2362         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2363         exit(0);
2364     }
2365     ret = g_usbInterface->BindUsbdSubscriber(subscriber2);
2366     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2150 %{public}d again BindUsbdSubscriber=%{public}d", __LINE__, ret);
2367     ASSERT_EQ(0, ret);
2368 }
2369 
2370 /**
2371  * @tc.name: SUB_USB_HDI_2160
2372  * @tc.desc: Test functions to int32_t BindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber)
2373  * @tc.desc: Positive test: bind same
2374  * @tc.type: FUNC
2375  */
2376 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2160, Function | MediumTest | Level1)
2377 {
2378     subscriber_ = new UsbSubscriberTest();
2379     if (subscriber_ == nullptr) {
2380         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2381         exit(0);
2382     }
2383     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2384     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2160 %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2385     ASSERT_EQ(0, ret);
2386     ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2387     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2160 %{public}d again BindUsbdSubscriber=%{public}d", __LINE__, ret);
2388     ASSERT_EQ(0, ret);
2389 }
2390 
2391 /**
2392  * @tc.name: SUB_USB_HDI_2170
2393  * @tc.desc: Test functions to int32_t BindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber)
2394  * @tc.desc: Positive test: bind and unbind, then bind another
2395  * @tc.type: FUNC
2396  */
2397 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2170, Function | MediumTest | Level1)
2398 {
2399     subscriber_ = new UsbSubscriberTest();
2400     if (subscriber_ == nullptr) {
2401         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2402         exit(0);
2403     }
2404     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2405     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2170 %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2406     ASSERT_EQ(0, ret);
2407     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2408     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2170 %{public}d UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2409     ASSERT_EQ(0, ret);
2410     sptr<UsbSubscriberTest> subscriber2 = new UsbSubscriberTest();
2411     if (subscriber_ == nullptr) {
2412         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2413         exit(0);
2414     }
2415     ret = g_usbInterface->BindUsbdSubscriber(subscriber2);
2416     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2170 again %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2417     ASSERT_EQ(0, ret);
2418 }
2419 
2420 /**
2421  * @tc.name: SUB_USB_HDI_2180
2422  * @tc.desc: Test functions to int32_t BindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber)
2423  * @tc.desc: Positive test: bind again after unbind
2424  * @tc.type: FUNC
2425  */
2426 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2180, Function | MediumTest | Level1)
2427 {
2428     subscriber_ = new UsbSubscriberTest();
2429     if (subscriber_ == nullptr) {
2430         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2431         exit(0);
2432     }
2433     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2434     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2180 %{public}d BindUsbdSubscriber=%{public}d", __LINE__, ret);
2435     ASSERT_EQ(0, ret);
2436     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2437     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2180 %{public}d UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2438     ASSERT_EQ(0, ret);
2439     ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2440     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2180 %{public}d again BindUsbdSubscriber=%{public}d", __LINE__, ret);
2441     ASSERT_EQ(0, ret);
2442 }
2443 
2444 /**
2445  * @tc.name: SUB_USB_HDI_2190
2446  * @tc.desc: Test functions to int32_t UnbindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber)
2447  * @tc.desc: Positive test: parameters correctly
2448  * @tc.type: FUNC
2449  */
2450 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2190, Function | MediumTest | Level1)
2451 {
2452     subscriber_ = new UsbSubscriberTest();
2453     if (subscriber_ == nullptr) {
2454         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2455         exit(0);
2456     }
2457     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2458     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2190 %{public}d first BindUsbdSubscriber=%{public}d", __LINE__, ret);
2459     ASSERT_EQ(0, ret);
2460     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2461     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2190 %{public}d UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2462     ASSERT_EQ(0, ret);
2463 }
2464 
2465 /**
2466  * @tc.name: SUB_USB_HDI_2200
2467  * @tc.desc: Test functions to int32_t UnbindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber)
2468  * @tc.desc: Negative test: no bind first
2469  * @tc.type: FUNC
2470  */
2471 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2200, Function | MediumTest | Level1)
2472 {
2473     subscriber_ = new UsbSubscriberTest();
2474     if (subscriber_ == nullptr) {
2475         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2476         exit(0);
2477     }
2478     auto ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2479     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2200 %{public}d UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2480     ASSERT_NE(0, ret);
2481 }
2482 
2483 /**
2484  * @tc.name: SUB_USB_HDI_2210
2485  * @tc.desc: Test functions to int32_t UnbindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber)
2486  * @tc.desc: Positive test: no bind first, unbind failed; then bind, unbind success
2487  * @tc.type: FUNC
2488  */
2489 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2210, Function | MediumTest | Level1)
2490 {
2491     subscriber_ = new UsbSubscriberTest();
2492     if (subscriber_ == nullptr) {
2493         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2494         exit(0);
2495     }
2496     auto ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2497     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2210 %{public}d UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2498     ASSERT_NE(0, ret);
2499     ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2500     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2210 %{public}d first BindUsbdSubscriber=%{public}d", __LINE__, ret);
2501     ASSERT_EQ(0, ret);
2502     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2503     HDF_LOGI(
2504         "UsbdTransferTest::SUB_USB_HDI_2210 %{public}d again UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2505     ASSERT_EQ(0, ret);
2506 }
2507 
2508 /**
2509  * @tc.name: SUB_USB_HDI_2220
2510  * @tc.desc: Test functions to int32_t UnbindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber)
2511  * @tc.desc: Negative test: call twice
2512  * @tc.type: FUNC
2513  */
2514 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2220, Function | MediumTest | Level1)
2515 {
2516     subscriber_ = new UsbSubscriberTest();
2517     if (subscriber_ == nullptr) {
2518         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2519         exit(0);
2520     }
2521     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2522     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2220 %{public}d first BindUsbdSubscriber=%{public}d", __LINE__, ret);
2523     ASSERT_EQ(0, ret);
2524     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2525     HDF_LOGI(
2526         "UsbdTransferTest::SUB_USB_HDI_2220 %{public}d first UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2527     ASSERT_EQ(0, ret);
2528     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2529     HDF_LOGI(
2530         "UsbdTransferTest::SUB_USB_HDI_2220 %{public}d again UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2531     ASSERT_NE(0, ret);
2532 }
2533 
2534 /**
2535  * @tc.name: SUB_USB_HDI_2230
2536  * @tc.desc: Test functions to int32_t UnbindUsbdSubscriber(const sptr<IUsbdSubscriber> &subscriber)
2537  * @tc.desc: Positive test: test repeatedly
2538  * @tc.type: FUNC
2539  */
2540 HWTEST_F(UsbdTransferTest, SUB_USB_HDI_2230, Function | MediumTest | Level1)
2541 {
2542     subscriber_ = new UsbSubscriberTest();
2543     if (subscriber_ == nullptr) {
2544         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
2545         exit(0);
2546     }
2547     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2548     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2230 %{public}d first BindUsbdSubscriber=%{public}d", __LINE__, ret);
2549     ASSERT_EQ(0, ret);
2550     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2551     HDF_LOGI(
2552         "UsbdTransferTest::SUB_USB_HDI_2230 %{public}d first UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2553     ASSERT_EQ(0, ret);
2554     ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
2555     HDF_LOGI("UsbdTransferTest::SUB_USB_HDI_2230 %{public}d again BindUsbdSubscriber=%{public}d", __LINE__, ret);
2556     ASSERT_EQ(0, ret);
2557     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
2558     HDF_LOGI(
2559         "UsbdTransferTest::SUB_USB_HDI_2230 %{public}d again UnbindUsbdSubscriber=%{public}d", __LINE__, ret);
2560     ASSERT_EQ(0, ret);
2561 }
2562 } // namespace
2563