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