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