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