1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include <iostream>
16 #include <vector>
17 
18 #include "hdf_log.h"
19 #include "securec.h"
20 #include "usbd_transfer_test.h"
21 #include "v1_0/iusb_interface.h"
22 #include "v1_0/usb_types.h"
23 
24 const int SLEEP_TIME = 3;
25 const uint32_t MAX_BUFFER_LENGTH = 255;
26 const uint8_t SAMPLE_DATA_1 = 1;
27 const uint8_t SAMPLE_DATA_2 = 2;
28 const uint8_t SAMPLE_DATA_3 = 3;
29 const uint8_t INTERFACEID_OK = 1;
30 const int32_t TRANSFER_TIME_OUT = 1000;
31 const uint8_t POINTID_BULK_OUT = USB_ENDPOINT_DIR_OUT | 1;
32 const uint8_t POINTID_BULK_IN = USB_ENDPOINT_DIR_IN | 2;
33 const uint8_t PIPE_ENDPOINTID_INVALID = 244;
34 const int32_t ASHMEM_MAX_SIZE = 1024;
35 
36 using namespace testing::ext;
37 using namespace OHOS;
38 using namespace OHOS::USB;
39 using namespace std;
40 using namespace OHOS::HDI::Usb::V1_0;
41 
42 UsbDev UsbdTransferTestAdditional::dev_ = {0, 0};
43 sptr<UsbSubscriberTest> UsbdTransferTestAdditional::subscriber_ = nullptr;
44 
45 namespace {
46 sptr<IUsbInterface> g_usbInterface = nullptr;
47 
InitAshmemOne(sptr<Ashmem> &asmptr, int32_t asmSize, uint8_t rflg)48 int32_t InitAshmemOne(sptr<Ashmem> &asmptr, int32_t asmSize, uint8_t rflg)
49 {
50     asmptr = Ashmem::CreateAshmem("ttashmem000", asmSize);
51     if (asmptr == nullptr) {
52         HDF_LOGE("InitAshmemOne CreateAshmem failed\n");
53         return HDF_FAILURE;
54     }
55 
56     asmptr->MapReadAndWriteAshmem();
57 
58     if (rflg == 0) {
59         uint8_t tdata[ASHMEM_MAX_SIZE];
60         int32_t offset = 0;
61         int32_t tlen = 0;
62 
63         int32_t retSafe = memset_s(tdata, sizeof(tdata), 'Y', ASHMEM_MAX_SIZE);
64         if (retSafe != EOK) {
65             HDF_LOGE("InitAshmemOne memset_s failed\n");
66             return HDF_FAILURE;
67         }
68         while (offset < asmSize) {
69             tlen = (asmSize - offset) < ASHMEM_MAX_SIZE ? (asmSize - offset) : ASHMEM_MAX_SIZE;
70             asmptr->WriteToAshmem(tdata, tlen, offset);
71             offset += tlen;
72         }
73     }
74     return HDF_SUCCESS;
75 }
76 
SwitchErrCode(int32_t ret)77 int32_t SwitchErrCode(int32_t ret)
78 {
79     return ret == HDF_ERR_NOT_SUPPORT ? HDF_SUCCESS : ret;
80 }
81 
SetUpTestCase(void)82 void UsbdTransferTestAdditional::SetUpTestCase(void)
83 {
84     g_usbInterface = IUsbInterface::Get();
85     if (g_usbInterface == nullptr) {
86         HDF_LOGE("%{public}s:IUsbInterface::Get() failed.", __func__);
87         exit(0);
88     }
89     const int32_t DEFAULT_PORT_ID = 1;
90     const int32_t DEFAULT_ROLE_HOST = 1;
91     auto ret = g_usbInterface->SetPortRole(DEFAULT_PORT_ID, DEFAULT_ROLE_HOST, DEFAULT_ROLE_HOST);
92     sleep(SLEEP_TIME);
93     HDF_LOGI("UsbdTransferTestAdditional::[Device] %{public}d SetPortRole=%{public}d", __LINE__, ret);
94     ret = SwitchErrCode(ret);
95     ASSERT_EQ(0, ret);
96     if (ret != 0) {
97         exit(0);
98     }
99 
100     subscriber_ = new UsbSubscriberTest();
101     if (subscriber_ == nullptr) {
102         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
103         exit(0);
104     }
105     if (g_usbInterface->BindUsbdSubscriber(subscriber_) != HDF_SUCCESS) {
106         HDF_LOGE("%{public}s: bind usbd subscriber_ failed\n", __func__);
107         exit(0);
108     }
109 
110     std::cout << "please connect device, press enter to continue" << std::endl;
111     int c;
112     while ((c = getchar()) != '\n' && c != EOF) {
113     }
114 
115     dev_ = {subscriber_->busNum_, subscriber_->devAddr_};
116     ret = g_usbInterface->OpenDevice(dev_);
117     HDF_LOGI("UsbdTransferTestAdditional:: %{public}d OpenDevice=%{public}d", __LINE__, ret);
118     ASSERT_EQ(0, ret);
119 }
120 
TearDownTestCase(void)121 void UsbdTransferTestAdditional::TearDownTestCase(void)
122 {
123     g_usbInterface->UnbindUsbdSubscriber(subscriber_);
124     dev_ = {subscriber_->busNum_, subscriber_->devAddr_};
125     auto ret = g_usbInterface->CloseDevice(dev_);
126     HDF_LOGI("UsbdTransferTestAdditional:: %{public}d Close=%{public}d", __LINE__, ret);
127     ASSERT_EQ(0, ret);
128 }
129 
SetUp(void)130 void UsbdTransferTestAdditional::SetUp(void) {}
131 
TearDown(void)132 void UsbdTransferTestAdditional::TearDown(void) {}
133 
134 /**
135  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_0100
136  * @tc.name: testHdiUsbTransferTestBulkTransferWrite001
137  * @tc.desc: Writes data on a specified endpoint during bulk transfer.
138  * bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', ','}.
139  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferWrite001, TestSize.Level1)140 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferWrite001, TestSize.Level1)
141 {
142     struct UsbDev dev = dev_;
143     uint8_t interfaceId = INTERFACEID_OK;
144     uint8_t pointId = POINTID_BULK_OUT;
145     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
146     ASSERT_EQ(0, ret);
147     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
148     std::vector<uint8_t> bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', ','};
149     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
150     ASSERT_EQ(0, ret);
151 }
152 
153 /**
154  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_0200
155  * @tc.name: testHdiUsbTransferTestBulkTransferWrite002
156  * @tc.desc: Writes data on a specified endpoint during bulk transfer.
157  * bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '!'}.
158  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferWrite002, TestSize.Level1)159 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferWrite002, TestSize.Level1)
160 {
161     struct UsbDev dev = dev_;
162     uint8_t interfaceId = INTERFACEID_OK;
163     uint8_t pointId = POINTID_BULK_OUT;
164     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
165     ASSERT_EQ(0, ret);
166     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
167     std::vector<uint8_t> bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '!'};
168     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
169     ASSERT_EQ(0, ret);
170 }
171 
172 /**
173  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_0300
174  * @tc.name: testHdiUsbTransferTestBulkTransferWrite003
175  * @tc.desc: Writes data on a specified endpoint during bulk transfer.
176  * bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '~'}.
177  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferWrite003, TestSize.Level1)178 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferWrite003, TestSize.Level1)
179 {
180     struct UsbDev dev = dev_;
181     uint8_t interfaceId = INTERFACEID_OK;
182     uint8_t pointId = POINTID_BULK_OUT;
183     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
184     ASSERT_EQ(0, ret);
185     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
186     std::vector<uint8_t> bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '~'};
187     ret = g_usbInterface->BulkTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
188     ASSERT_EQ(0, ret);
189 }
190 
191 /**
192  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_0400
193  * @tc.name: testHdiUsbTransferTestBulkTransferRead001
194  * @tc.desc: Writes data on a specified endpoint during bulk transfer.
195  * bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '~'} Check if the read is correct.
196  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferRead001, TestSize.Level1)197 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferRead001, TestSize.Level1)
198 {
199     struct UsbDev dev = dev_;
200     uint8_t interfaceId = INTERFACEID_OK;
201     uint8_t pointId = POINTID_BULK_OUT;
202     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
203     ASSERT_EQ(0, ret);
204     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
205     std::vector<uint8_t> bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '~'};
206     std::vector<uint8_t> bufferData1(MAX_BUFFER_LENGTH);
207     ret = g_usbInterface->BulkTransferWrite(dev, pipe, -1, bufferData);
208     ASSERT_EQ(0, ret);
209     pipe = {interfaceId, POINTID_BULK_IN};
210     ret = g_usbInterface->BulkTransferRead(dev, pipe, -1, bufferData1);
211     ASSERT_EQ(0, ret);
212     for (uint8_t i = 0; i < bufferData1.size(); ++i) {
213         std::cout << bufferData1[i] << " ";
214     }
215     std::cout << std::endl;
216 }
217 
218 /**
219  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_0500
220  * @tc.name: testHdiUsbTransferTestBulkTransferRead002
221  * @tc.desc: Writes data on a specified endpoint during bulk transfer.
222  * bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '!'} Check if the read is correct.
223  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferRead002, TestSize.Level1)224 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferRead002, TestSize.Level1)
225 {
226     struct UsbDev dev = dev_;
227     uint8_t interfaceId = INTERFACEID_OK;
228     uint8_t pointId = POINTID_BULK_OUT;
229     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
230     ASSERT_EQ(0, ret);
231     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
232     std::vector<uint8_t> bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', '!'};
233     std::vector<uint8_t> bufferData1(MAX_BUFFER_LENGTH);
234     ret = g_usbInterface->BulkTransferWrite(dev, pipe, -1, bufferData);
235     ASSERT_EQ(0, ret);
236     pipe = {interfaceId, POINTID_BULK_IN};
237     ret = g_usbInterface->BulkTransferRead(dev, pipe, -1, bufferData1);
238     ASSERT_EQ(0, ret);
239     for (uint8_t i = 0; i < bufferData1.size(); ++i) {
240         std::cout << bufferData1[i] << " ";
241     }
242     std::cout << std::endl;
243 }
244 
245 /**
246  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_0600
247  * @tc.name: testHdiUsbTransferTestBulkTransferRead003
248  * @tc.desc: Writes data on a specified endpoint during bulk transfer.
249  * bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', ','} Check if the read is correct.
250  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferRead003, TestSize.Level1)251 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkTransferRead003, TestSize.Level1)
252 {
253     struct UsbDev dev = dev_;
254     uint8_t interfaceId = INTERFACEID_OK;
255     uint8_t pointId = POINTID_BULK_OUT;
256     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
257     ASSERT_EQ(0, ret);
258     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
259     std::vector<uint8_t> bufferData = {'B', 'u', 'l', 'k', 'w', 'r', 'i', 't', 'e', '0', ','};
260     std::vector<uint8_t> bufferData1(MAX_BUFFER_LENGTH);
261     ret = g_usbInterface->BulkTransferWrite(dev, pipe, -1, bufferData);
262     ASSERT_EQ(0, ret);
263     pipe = {interfaceId, POINTID_BULK_IN};
264     ret = g_usbInterface->BulkTransferRead(dev, pipe, -1, bufferData1);
265     ASSERT_EQ(0, ret);
266     for (uint8_t i = 0; i < bufferData1.size(); ++i) {
267         std::cout << bufferData1[i] << " ";
268     }
269     std::cout << std::endl;
270 }
271 
272 /**
273  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_0700
274  * @tc.name: testHdiUsbTransferTestInterruptTransferWrite001
275  * @tc.desc: Writes data on a specified endpoint during interrupt transfer.
276  * bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', ','}.
277  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferWrite001, TestSize.Level1)278 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferWrite001, TestSize.Level1)
279 {
280     struct UsbDev dev = dev_;
281     uint8_t interfaceId = INTERFACEID_OK;
282     uint8_t pointId = POINTID_BULK_OUT;
283     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
284     ASSERT_EQ(0, ret);
285     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
286     std::vector<uint8_t> bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', ','};
287     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
288     ASSERT_EQ(0, ret);
289 }
290 
291 /**
292  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_0800
293  * @tc.name: testHdiUsbTransferTestInterruptTransferWrite002
294  * @tc.desc: Writes data on a specified endpoint during interrupt transfer.
295  * bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '!'}.
296  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferWrite002, TestSize.Level1)297 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferWrite002, TestSize.Level1)
298 {
299     struct UsbDev dev = dev_;
300     uint8_t interfaceId = INTERFACEID_OK;
301     uint8_t pointId = POINTID_BULK_OUT;
302     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
303     ASSERT_EQ(0, ret);
304     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
305     std::vector<uint8_t> bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '!'};
306     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
307     ASSERT_EQ(0, ret);
308 }
309 
310 /**
311  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_0900
312  * @tc.name: testHdiUsbTransferTestInterruptTransferWrite003
313  * @tc.desc: Writes data on a specified endpoint during interrupt transfer.
314  * bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '~'}.
315  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferWrite003, TestSize.Level1)316 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferWrite003, TestSize.Level1)
317 {
318     struct UsbDev dev = dev_;
319     uint8_t interfaceId = INTERFACEID_OK;
320     uint8_t pointId = POINTID_BULK_OUT;
321     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
322     ASSERT_EQ(0, ret);
323     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
324     std::vector<uint8_t> bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '~'};
325     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, TRANSFER_TIME_OUT, bufferData);
326     ASSERT_EQ(0, ret);
327 }
328 
329 /**
330  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_1000
331  * @tc.name: testHdiUsbTransferTestInterruptTransferRead001
332  * @tc.desc: Reads data on a specified endpoint during interrupt transfer.
333  * bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '~'} Check if the read is correct.
334  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferRead001, TestSize.Level1)335 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferRead001, TestSize.Level1)
336 {
337     struct UsbDev dev = dev_;
338     uint8_t interfaceId = INTERFACEID_OK;
339     uint8_t pointId = POINTID_BULK_OUT;
340     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
341     ASSERT_EQ(0, ret);
342     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
343     std::vector<uint8_t> bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '~'};
344     std::vector<uint8_t> bufferData1(MAX_BUFFER_LENGTH);
345     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, -1, bufferData);
346     ASSERT_EQ(0, ret);
347     pipe = {interfaceId, POINTID_BULK_IN};
348     ret = g_usbInterface->InterruptTransferRead(dev, pipe, -1, bufferData1);
349     ASSERT_EQ(0, ret);
350     for (uint8_t i = 0; i < bufferData1.size(); ++i) {
351         std::cout << bufferData1[i] << " ";
352     }
353     std::cout << std::endl;
354 }
355 
356 /**
357  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_1100
358  * @tc.name: testHdiUsbTransferTestInterruptTransferRead002
359  * @tc.desc: Reads data on a specified endpoint during interrupt transfer.
360  * bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '!'} Check if the read is correct.
361  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferRead002, TestSize.Level1)362 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferRead002, TestSize.Level1)
363 {
364     struct UsbDev dev = dev_;
365     uint8_t interfaceId = INTERFACEID_OK;
366     uint8_t pointId = POINTID_BULK_OUT;
367     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
368     ASSERT_EQ(0, ret);
369     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
370     std::vector<uint8_t> bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', '!'};
371     std::vector<uint8_t> bufferData1(MAX_BUFFER_LENGTH);
372     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, -1, bufferData);
373     ASSERT_EQ(0, ret);
374     pipe = {interfaceId, POINTID_BULK_IN};
375     ret = g_usbInterface->InterruptTransferRead(dev, pipe, -1, bufferData1);
376     ASSERT_EQ(0, ret);
377     for (uint8_t i = 0; i < bufferData1.size(); ++i) {
378         std::cout << bufferData1[i] << " ";
379     }
380     std::cout << std::endl;
381 }
382 
383 /**
384  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_1200
385  * @tc.name: testHdiUsbTransferTestInterruptTransferRead003
386  * @tc.desc: Reads data on a specified endpoint during interrupt transfer.
387  * bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', ','} Check if the read is correct.
388  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferRead003, TestSize.Level1)389 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestInterruptTransferRead003, TestSize.Level1)
390 {
391     struct UsbDev dev = dev_;
392     uint8_t interfaceId = INTERFACEID_OK;
393     uint8_t pointId = POINTID_BULK_OUT;
394     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
395     ASSERT_EQ(0, ret);
396     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
397     std::vector<uint8_t> bufferData = {'I', 'n', 't', 'w', 'r', 'i', 't', 'e', '0', ','};
398     std::vector<uint8_t> bufferData1(MAX_BUFFER_LENGTH);
399     ret = g_usbInterface->InterruptTransferWrite(dev, pipe, -1, bufferData);
400     ASSERT_EQ(0, ret);
401     pipe = {interfaceId, POINTID_BULK_IN};
402     ret = g_usbInterface->InterruptTransferRead(dev, pipe, -1, bufferData1);
403     ASSERT_EQ(0, ret);
404     for (uint8_t i = 0; i < bufferData1.size(); ++i) {
405         std::cout << bufferData1[i] << " ";
406     }
407     std::cout << std::endl;
408 }
409 
410 /**
411  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_1300
412  * @tc.name: testHdiUsbTransferTestUnbindUsbdSubscriber001
413  * @tc.desc: Unbinds a subscriber twice.
414  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestUnbindUsbdSubscriber001, Function | MediumTest | Level2)415 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestUnbindUsbdSubscriber001, Function | MediumTest | Level2)
416 {
417     subscriber_ = new UsbSubscriberTest();
418     if (subscriber_ == nullptr) {
419         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
420         exit(0);
421     }
422     auto ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
423     ASSERT_NE(0, ret);
424     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
425     ASSERT_NE(0, ret);
426 }
427 
428 /**
429  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_1400
430  * @tc.name: testHdiUsbTransferTestUnbindUsbdSubscriber002
431  * @tc.desc: Unbinds a subscriber for twice.unbind and bind, then Unbind twice.
432  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestUnbindUsbdSubscriber002, Function | MediumTest | Level2)433 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestUnbindUsbdSubscriber002, Function | MediumTest | Level2)
434 {
435     subscriber_ = new UsbSubscriberTest();
436     if (subscriber_ == nullptr) {
437         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
438         exit(0);
439     }
440     auto ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
441     ASSERT_NE(0, ret);
442     ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
443     ASSERT_EQ(0, ret);
444     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
445     ASSERT_EQ(0, ret);
446     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
447     ASSERT_NE(0, ret);
448 }
449 
450 /**
451  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_1500
452  * @tc.name: testHdiUsbTransferTestUnbindUsbdSubscriber003
453  * @tc.desc: Unbinds a subscriber twice.then unbind and bind.
454  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestUnbindUsbdSubscriber003, Function | MediumTest | Level2)455 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestUnbindUsbdSubscriber003, Function | MediumTest | Level2)
456 {
457     subscriber_ = new UsbSubscriberTest();
458     if (subscriber_ == nullptr) {
459         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
460         exit(0);
461     }
462     auto ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
463     ASSERT_NE(0, ret);
464     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
465     ASSERT_NE(0, ret);
466     ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
467     ASSERT_EQ(0, ret);
468     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
469     ASSERT_EQ(0, ret);
470 }
471 
472 /**
473  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_1600
474  * @tc.name: testHdiUsbTransferTestbindUsbdSubscriber001
475  * @tc.desc: Binds a subscriber.unbind and bind twice.
476  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestbindUsbdSubscriber001, Function | MediumTest | Level1)477 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestbindUsbdSubscriber001, Function | MediumTest | Level1)
478 {
479     subscriber_ = new UsbSubscriberTest();
480     if (subscriber_ == nullptr) {
481         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
482         exit(0);
483     }
484     auto ret = g_usbInterface->BindUsbdSubscriber(subscriber_);
485     ASSERT_EQ(0, ret);
486     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber_);
487     ASSERT_EQ(0, ret);
488 
489     sptr<UsbSubscriberTest> subscriber2 = new UsbSubscriberTest();
490     if (subscriber_ == nullptr) {
491         HDF_LOGE("%{public}s:UsbSubscriberTest new failed.", __func__);
492         exit(0);
493     }
494     ret = g_usbInterface->BindUsbdSubscriber(subscriber2);
495     ASSERT_EQ(0, ret);
496     ret = g_usbInterface->UnbindUsbdSubscriber(subscriber2);
497     ASSERT_EQ(0, ret);
498 }
499 
500 /**
501  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_1700
502  * @tc.name: testHdiUsbTransferTestControlTransferRead001
503  * @tc.desc: Performs control transfer for endpoint 0 of the device. dev = (0,0).see if bufferData is equal to
504  * bufferData1.
505  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestControlTransferRead001, Function | MediumTest | Level1)506 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestControlTransferRead001, Function | MediumTest | Level1)
507 {
508     struct UsbDev dev = dev_;
509     std::vector<uint8_t> bufferData = {'r', 'e', 'a', 'd', 't', 'e', 's', 't', '0', '1'};
510     std::vector<uint8_t> bufferData1(MAX_BUFFER_LENGTH);
511     bufferData.push_back(SAMPLE_DATA_1);
512     bufferData.push_back(SAMPLE_DATA_2);
513     bufferData.push_back(SAMPLE_DATA_3);
514     struct UsbCtrlTransfer ctrlparmas = {USB_ENDPOINT_DIR_OUT, USB_DDK_REQ_GET_CONFIGURATION, 0, 0, -1};
515     auto ret = g_usbInterface->ControlTransferWrite(dev, ctrlparmas, bufferData);
516     ASSERT_EQ(0, ret);
517     ctrlparmas = {USB_ENDPOINT_DIR_IN, USB_DDK_REQ_GET_CONFIGURATION, 0, 0, -1};
518     ret = g_usbInterface->ControlTransferRead(dev, ctrlparmas, bufferData1);
519     ASSERT_EQ(0, ret);
520     for (uint8_t i = 0; i < bufferData1.size(); ++i) {
521         std::cout << bufferData1[i] << " ";
522     }
523     std::cout << std::endl;
524 }
525 
526 /**
527  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_1800
528  * @tc.name: testHdiUsbTransferTestIsoTransferWrite001
529  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.timeout = 1.
530  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite001, Function | MediumTest | Level1)531 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite001, Function | MediumTest | Level1)
532 {
533     struct UsbDev dev = dev_;
534     uint8_t interfaceId = INTERFACEID_OK;
535     uint8_t pointId = POINTID_BULK_OUT;
536     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
537     ASSERT_EQ(0, ret);
538     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
539     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '0', '1'};
540     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 1, bufferData);
541     ASSERT_EQ(0, ret);
542 }
543 
544 /**
545  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_1900
546  * @tc.name: testHdiUsbTransferTestIsoTransferWrite002
547  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.timeout = 50.
548  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite002, Function | MediumTest | Level1)549 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite002, Function | MediumTest | Level1)
550 {
551     struct UsbDev dev = dev_;
552     uint8_t interfaceId = INTERFACEID_OK;
553     uint8_t pointId = POINTID_BULK_OUT;
554     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
555     ASSERT_EQ(0, ret);
556     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
557     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '0', '2'};
558     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 50, bufferData);
559     ASSERT_EQ(0, ret);
560 }
561 
562 /**
563  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_2000
564  * @tc.name: testHdiUsbTransferTestIsoTransferWrite003
565  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.timeout = 100.
566  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite003, Function | MediumTest | Level1)567 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite003, Function | MediumTest | Level1)
568 {
569     struct UsbDev dev = dev_;
570     uint8_t interfaceId = INTERFACEID_OK;
571     uint8_t pointId = POINTID_BULK_OUT;
572     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
573     ASSERT_EQ(0, ret);
574     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
575     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '0', '3'};
576     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 100, bufferData);
577     ASSERT_EQ(0, ret);
578 }
579 
580 /**
581  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_2100
582  * @tc.name: testHdiUsbTransferTestIsoTransferWrite004
583  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.timeout = 255.
584  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite004, Function | MediumTest | Level1)585 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite004, Function | MediumTest | Level1)
586 {
587     struct UsbDev dev = dev_;
588     uint8_t interfaceId = INTERFACEID_OK;
589     uint8_t pointId = POINTID_BULK_OUT;
590     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
591     ASSERT_EQ(0, ret);
592     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
593     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '0', '4'};
594     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 255, bufferData);
595     ASSERT_EQ(0, ret);
596 }
597 
598 /**
599  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_2200
600  * @tc.name: testHdiUsbTransferTestIsoTransferWrite005
601  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255} timeout = 1.
602  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite005, Function | MediumTest | Level2)603 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite005, Function | MediumTest | Level2)
604 {
605     struct UsbDev dev = dev_;
606     uint8_t interfaceId = INTERFACEID_OK;
607     uint8_t pointId = POINTID_BULK_OUT;
608     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
609     ASSERT_EQ(0, ret);
610     dev = {255, 255};
611     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
612     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '0', '5'};
613     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 1, bufferData);
614     ASSERT_NE(0, ret);
615 }
616 
617 /**
618  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_2300
619  * @tc.name: testHdiUsbTransferTestIsoTransferWrite006
620  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255} timeout = 50.
621  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite006, Function | MediumTest | Level2)622 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite006, Function | MediumTest | Level2)
623 {
624     struct UsbDev dev = dev_;
625     uint8_t interfaceId = INTERFACEID_OK;
626     uint8_t pointId = POINTID_BULK_OUT;
627     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
628     ASSERT_EQ(0, ret);
629     dev = {255, 255};
630     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
631     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '0', '6'};
632     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 50, bufferData);
633     ASSERT_NE(0, ret);
634 }
635 
636 /**
637  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_2400
638  * @tc.name: testHdiUsbTransferTestIsoTransferWrite007
639  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255} timeout = 100.
640  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite007, Function | MediumTest | Level2)641 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite007, Function | MediumTest | Level2)
642 {
643     struct UsbDev dev = dev_;
644     uint8_t interfaceId = INTERFACEID_OK;
645     uint8_t pointId = POINTID_BULK_OUT;
646     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
647     ASSERT_EQ(0, ret);
648     dev = {255, 255};
649     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
650     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '0', '7'};
651     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 100, bufferData);
652     ASSERT_NE(0, ret);
653 }
654 
655 /**
656  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_2500
657  * @tc.name: testHdiUsbTransferTestIsoTransferWrite008
658  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255} timeout = 255.
659  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite008, Function | MediumTest | Level2)660 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite008, Function | MediumTest | Level2)
661 {
662     struct UsbDev dev = dev_;
663     uint8_t interfaceId = INTERFACEID_OK;
664     uint8_t pointId = POINTID_BULK_OUT;
665     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
666     ASSERT_EQ(0, ret);
667     dev = {255, 255};
668     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
669     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '0', '8'};
670     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 255, bufferData);
671     ASSERT_NE(0, ret);
672 }
673 
674 /**
675  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_2600
676  * @tc.name: testHdiUsbTransferTestIsoTransferWrite009
677  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} timeout = 1.
678  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite009, Function | MediumTest | Level2)679 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite009, Function | MediumTest | Level2)
680 {
681     struct UsbDev dev = dev_;
682     uint8_t interfaceId = INTERFACEID_OK;
683     uint8_t pointId = POINTID_BULK_OUT;
684     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
685     ASSERT_EQ(0, ret);
686     dev = {0, 255};
687     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
688     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '0', '9'};
689     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 1, bufferData);
690     ASSERT_NE(0, ret);
691 }
692 
693 /**
694  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_2700
695  * @tc.name: testHdiUsbTransferTestIsoTransferWrite010
696  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} timeout = 50.
697  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite010, Function | MediumTest | Level2)698 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite010, Function | MediumTest | Level2)
699 {
700     struct UsbDev dev = dev_;
701     uint8_t interfaceId = INTERFACEID_OK;
702     uint8_t pointId = POINTID_BULK_OUT;
703     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
704     ASSERT_EQ(0, ret);
705     dev = {0, 255};
706     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
707     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '1', '0'};
708     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 50, bufferData);
709     ASSERT_NE(0, ret);
710 }
711 
712 /**
713  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_2800
714  * @tc.name: testHdiUsbTransferTestIsoTransferWrite011
715  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} timeout = 100.
716  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite011, Function | MediumTest | Level2)717 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite011, Function | MediumTest | Level2)
718 {
719     struct UsbDev dev = dev_;
720     uint8_t interfaceId = INTERFACEID_OK;
721     uint8_t pointId = POINTID_BULK_OUT;
722     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
723     ASSERT_EQ(0, ret);
724     dev = {0, 255};
725     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
726     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '1', '1'};
727     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 100, bufferData);
728     ASSERT_NE(0, ret);
729 }
730 
731 /**
732  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_2900
733  * @tc.name: testHdiUsbTransferTestIsoTransferWrite012
734  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} timeout = 255.
735  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite012, Function | MediumTest | Level2)736 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite012, Function | MediumTest | Level2)
737 {
738     struct UsbDev dev = dev_;
739     uint8_t interfaceId = INTERFACEID_OK;
740     uint8_t pointId = POINTID_BULK_OUT;
741     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
742     ASSERT_EQ(0, ret);
743     dev = {0, 255};
744     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
745     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '1', '2'};
746     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 255, bufferData);
747     ASSERT_NE(0, ret);
748 }
749 
750 /**
751  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_3000
752  * @tc.name: testHdiUsbTransferTestIsoTransferWrite013
753  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} timeout = 1.
754  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite013, Function | MediumTest | Level2)755 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite013, Function | MediumTest | Level2)
756 {
757     struct UsbDev dev = dev_;
758     uint8_t interfaceId = INTERFACEID_OK;
759     uint8_t pointId = POINTID_BULK_OUT;
760     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
761     ASSERT_EQ(0, ret);
762     dev = {255, 0};
763     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
764     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '1', '3'};
765     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 1, bufferData);
766     ASSERT_NE(0, ret);
767 }
768 
769 /**
770  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_3100
771  * @tc.name: testHdiUsbTransferTestIsoTransferWrite014
772  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} timeout = 50.
773  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite014, Function | MediumTest | Level2)774 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite014, Function | MediumTest | Level2)
775 {
776     struct UsbDev dev = dev_;
777     uint8_t interfaceId = INTERFACEID_OK;
778     uint8_t pointId = POINTID_BULK_OUT;
779     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
780     ASSERT_EQ(0, ret);
781     dev = {255, 0};
782     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
783     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '1', '4'};
784     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 50, bufferData);
785     ASSERT_NE(0, ret);
786 }
787 
788 /**
789  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_3200
790  * @tc.name: testHdiUsbTransferTestIsoTransferWrite015
791  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} timeout = 100.
792  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite015, Function | MediumTest | Level2)793 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite015, Function | MediumTest | Level2)
794 {
795     struct UsbDev dev = dev_;
796     uint8_t interfaceId = INTERFACEID_OK;
797     uint8_t pointId = POINTID_BULK_OUT;
798     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
799     ASSERT_EQ(0, ret);
800     dev = {255, 0};
801     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
802     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '1', '5'};
803     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 100, bufferData);
804     ASSERT_NE(0, ret);
805 }
806 
807 /**
808  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_3300
809  * @tc.name: testHdiUsbTransferTestIsoTransferWrite016
810  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} timeout = 255.
811  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite016, Function | MediumTest | Level2)812 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite016, Function | MediumTest | Level2)
813 {
814     struct UsbDev dev = dev_;
815     uint8_t interfaceId = INTERFACEID_OK;
816     uint8_t pointId = POINTID_BULK_OUT;
817     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
818     ASSERT_EQ(0, ret);
819     dev = {255, 0};
820     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
821     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '1', '6'};
822     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 255, bufferData);
823     ASSERT_NE(0, ret);
824 }
825 
826 /**
827  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_3400
828  * @tc.name: testHdiUsbTransferTestIsoTransferWrite017
829  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255} timeout = 1 pipe = { 1,
830  * 244 }.
831  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite017, Function | MediumTest | Level2)832 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite017, Function | MediumTest | Level2)
833 {
834     struct UsbDev dev = dev_;
835     uint8_t interfaceId = INTERFACEID_OK;
836     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
837     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
838     ASSERT_EQ(0, ret);
839     dev = {255, 255};
840     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
841     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '1', '7'};
842     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 1, bufferData);
843     ASSERT_NE(ret, 0);
844 }
845 
846 /**
847  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_3500
848  * @tc.name: testHdiUsbTransferTestIsoTransferWrite018
849  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255} timeout = 50 pipe = { 1,
850  * 244 }.
851  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite018, Function | MediumTest | Level2)852 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite018, Function | MediumTest | Level2)
853 {
854     struct UsbDev dev = dev_;
855     uint8_t interfaceId = INTERFACEID_OK;
856     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
857     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
858     ASSERT_EQ(0, ret);
859     dev = {255, 255};
860     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
861     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '1', '8'};
862     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 50, bufferData);
863     ASSERT_NE(ret, 0);
864 }
865 
866 /**
867  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_3600
868  * @tc.name: testHdiUsbTransferTestIsoTransferWrite019
869  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255} timeout = 100 pipe = { 1,
870  * 244 }.
871  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite019, Function | MediumTest | Level2)872 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite019, Function | MediumTest | Level2)
873 {
874     struct UsbDev dev = dev_;
875     uint8_t interfaceId = INTERFACEID_OK;
876     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
877     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
878     ASSERT_EQ(0, ret);
879     dev = {255, 255};
880     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
881     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '1', '9'};
882     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 100, bufferData);
883     ASSERT_NE(ret, 0);
884 }
885 
886 /**
887  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_3700
888  * @tc.name: testHdiUsbTransferTestIsoTransferWrite020
889  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255} timeout = 255 pipe = { 1,
890  * 244 }.
891  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite020, Function | MediumTest | Level2)892 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite020, Function | MediumTest | Level2)
893 {
894     struct UsbDev dev = dev_;
895     uint8_t interfaceId = INTERFACEID_OK;
896     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
897     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
898     ASSERT_EQ(0, ret);
899     dev = {255, 255};
900     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
901     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '2', '0'};
902     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 255, bufferData);
903     ASSERT_NE(ret, 0);
904 }
905 
906 /**
907  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_3800
908  * @tc.name: testHdiUsbTransferTestIsoTransferWrite021
909  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} timeout = 1 pipe = { 1, 244
910  * }.
911  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite021, Function | MediumTest | Level2)912 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite021, Function | MediumTest | Level2)
913 {
914     struct UsbDev dev = dev_;
915     uint8_t interfaceId = INTERFACEID_OK;
916     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
917     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
918     ASSERT_EQ(0, ret);
919     dev = {0, 255};
920     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
921     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '2', '1'};
922     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 1, bufferData);
923     ASSERT_NE(ret, 0);
924 }
925 
926 /**
927  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_3900
928  * @tc.name: testHdiUsbTransferTestIsoTransferWrite022
929  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} timeout = 50 pipe = { 1, 244
930  * }.
931  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite022, Function | MediumTest | Level2)932 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite022, Function | MediumTest | Level2)
933 {
934     struct UsbDev dev = dev_;
935     uint8_t interfaceId = INTERFACEID_OK;
936     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
937     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
938     ASSERT_EQ(0, ret);
939     dev = {0, 255};
940     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
941     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '2', '2'};
942     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 50, bufferData);
943     ASSERT_NE(ret, 0);
944 }
945 
946 /**
947  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_4000
948  * @tc.name: testHdiUsbTransferTestIsoTransferWrite023
949  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} timeout = 100 pipe = { 1,
950  * 244 }.
951  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite023, Function | MediumTest | Level2)952 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite023, Function | MediumTest | Level2)
953 {
954     struct UsbDev dev = dev_;
955     uint8_t interfaceId = INTERFACEID_OK;
956     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
957     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
958     ASSERT_EQ(0, ret);
959     dev = {0, 255};
960     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
961     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '2', '3'};
962     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 100, bufferData);
963     ASSERT_NE(ret, 0);
964 }
965 
966 /**
967  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_4100
968  * @tc.name: testHdiUsbTransferTestIsoTransferWrite024
969  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} timeout = 255 pipe = { 1,
970  * 244 }.
971  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite024, Function | MediumTest | Level2)972 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite024, Function | MediumTest | Level2)
973 {
974     struct UsbDev dev = dev_;
975     uint8_t interfaceId = INTERFACEID_OK;
976     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
977     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
978     ASSERT_EQ(0, ret);
979     dev = {0, 255};
980     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
981     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '2', '4'};
982     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 255, bufferData);
983     ASSERT_NE(ret, 0);
984 }
985 
986 /**
987  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_4200
988  * @tc.name: testHdiUsbTransferTestIsoTransferWrite025
989  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} timeout = 1 pipe = { 1, 244
990  * }.
991  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite025, Function | MediumTest | Level2)992 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite025, Function | MediumTest | Level2)
993 {
994     struct UsbDev dev = dev_;
995     uint8_t interfaceId = INTERFACEID_OK;
996     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
997     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
998     ASSERT_EQ(0, ret);
999     dev = {255, 0};
1000     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1001     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '2', '5'};
1002     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 1, bufferData);
1003     ASSERT_NE(ret, 0);
1004 }
1005 
1006 /**
1007  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_4300
1008  * @tc.name: testHdiUsbTransferTestIsoTransferWrite026
1009  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} timeout = 50 pipe = { 1, 244
1010  * }.
1011  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite026, Function | MediumTest | Level2)1012 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite026, Function | MediumTest | Level2)
1013 {
1014     struct UsbDev dev = dev_;
1015     uint8_t interfaceId = INTERFACEID_OK;
1016     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
1017     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1018     ASSERT_EQ(0, ret);
1019     dev = {255, 0};
1020     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1021     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '2', '6'};
1022     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 50, bufferData);
1023     ASSERT_NE(ret, 0);
1024 }
1025 
1026 /**
1027  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_4400
1028  * @tc.name: testHdiUsbTransferTestIsoTransferWrite027
1029  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} timeout = 100 pipe = { 1,
1030  * 244 }.
1031  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite027, Function | MediumTest | Level2)1032 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite027, Function | MediumTest | Level2)
1033 {
1034     struct UsbDev dev = dev_;
1035     uint8_t interfaceId = INTERFACEID_OK;
1036     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
1037     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1038     ASSERT_EQ(0, ret);
1039     dev = {255, 0};
1040     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1041     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '2', '7'};
1042     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 100, bufferData);
1043     ASSERT_NE(ret, 0);
1044 }
1045 
1046 /**
1047  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_4500
1048  * @tc.name: testHdiUsbTransferTestIsoTransferWrite028
1049  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} timeout = 255 pipe = { 1,
1050  * 244 }.
1051  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite028, Function | MediumTest | Level2)1052 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite028, Function | MediumTest | Level2)
1053 {
1054     struct UsbDev dev = dev_;
1055     uint8_t interfaceId = INTERFACEID_OK;
1056     uint8_t pointId = PIPE_ENDPOINTID_INVALID;
1057     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1058     ASSERT_EQ(0, ret);
1059     dev = {255, 0};
1060     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1061     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '2', '8'};
1062     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 255, bufferData);
1063     ASSERT_NE(ret, 0);
1064 }
1065 
1066 /**
1067  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_4600
1068  * @tc.name: testHdiUsbTransferTestIsoTransferWrite029
1069  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255}  pointId = POINTID_BULK_IN
1070  * timeout = 1.
1071  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite029, Function | MediumTest | Level2)1072 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite029, Function | MediumTest | Level2)
1073 {
1074     struct UsbDev dev = dev_;
1075     uint8_t interfaceId = INTERFACEID_OK;
1076     uint8_t pointId = POINTID_BULK_IN;
1077     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1078     ASSERT_EQ(0, ret);
1079     dev = {255, 255};
1080     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1081     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '2', '9'};
1082     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 1, bufferData);
1083     ASSERT_NE(0, ret);
1084 }
1085 
1086 /**
1087  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_4700
1088  * @tc.name: testHdiUsbTransferTestIsoTransferWrite030
1089  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255} pointId = POINTID_BULK_IN
1090  * timeout = 50.
1091  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite030, Function | MediumTest | Level2)1092 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite030, Function | MediumTest | Level2)
1093 {
1094     struct UsbDev dev = dev_;
1095     uint8_t interfaceId = INTERFACEID_OK;
1096     uint8_t pointId = POINTID_BULK_IN;
1097     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1098     ASSERT_EQ(0, ret);
1099     dev = {255, 255};
1100     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1101     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '3', '0'};
1102     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 50, bufferData);
1103     ASSERT_NE(0, ret);
1104 }
1105 
1106 /**
1107  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_4800
1108  * @tc.name: testHdiUsbTransferTestIsoTransferWrite031
1109  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255} pointId = POINTID_BULK_IN
1110  * timeout = 100.
1111  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite031, Function | MediumTest | Level2)1112 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite031, Function | MediumTest | Level2)
1113 {
1114     struct UsbDev dev = dev_;
1115     uint8_t interfaceId = INTERFACEID_OK;
1116     uint8_t pointId = POINTID_BULK_IN;
1117     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1118     ASSERT_EQ(0, ret);
1119     dev = {255, 255};
1120     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1121     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '3', '1'};
1122     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 100, bufferData);
1123     ASSERT_NE(0, ret);
1124 }
1125 
1126 /**
1127  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_4900
1128  * @tc.name: testHdiUsbTransferTestIsoTransferWrite032
1129  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 255} pointId = POINTID_BULK_IN
1130  * timeout = 255.
1131  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite032, Function | MediumTest | Level2)1132 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite032, Function | MediumTest | Level2)
1133 {
1134     struct UsbDev dev = dev_;
1135     uint8_t interfaceId = INTERFACEID_OK;
1136     uint8_t pointId = POINTID_BULK_IN;
1137     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1138     ASSERT_EQ(0, ret);
1139     dev = {255, 255};
1140     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1141     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '3', '2'};
1142     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 255, bufferData);
1143     ASSERT_NE(0, ret);
1144 }
1145 
1146 /**
1147  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_5000
1148  * @tc.name: testHdiUsbTransferTestIsoTransferWrite033
1149  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} pointId = POINTID_BULK_IN
1150  * timeout = 1.
1151  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite033, Function | MediumTest | Level2)1152 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite033, Function | MediumTest | Level2)
1153 {
1154     struct UsbDev dev = dev_;
1155     uint8_t interfaceId = INTERFACEID_OK;
1156     uint8_t pointId = POINTID_BULK_IN;
1157     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1158     ASSERT_EQ(0, ret);
1159     dev = {0, 255};
1160     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1161     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '3', '3'};
1162     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 1, bufferData);
1163     ASSERT_NE(0, ret);
1164 }
1165 
1166 /**
1167  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_5100
1168  * @tc.name: testHdiUsbTransferTestIsoTransferWrite034
1169  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} pointId = POINTID_BULK_IN
1170  * timeout = 50.
1171  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite034, Function | MediumTest | Level2)1172 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite034, Function | MediumTest | Level2)
1173 {
1174     struct UsbDev dev = dev_;
1175     uint8_t interfaceId = INTERFACEID_OK;
1176     uint8_t pointId = POINTID_BULK_IN;
1177     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1178     ASSERT_EQ(0, ret);
1179     dev = {0, 255};
1180     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1181     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '3', '4'};
1182     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 50, bufferData);
1183     ASSERT_NE(0, ret);
1184 }
1185 
1186 /**
1187  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_5200
1188  * @tc.name: testHdiUsbTransferTestIsoTransferWrite035
1189  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} pointId = POINTID_BULK_IN
1190  * timeout = 100.
1191  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite035, Function | MediumTest | Level2)1192 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite035, Function | MediumTest | Level2)
1193 {
1194     struct UsbDev dev = dev_;
1195     uint8_t interfaceId = INTERFACEID_OK;
1196     uint8_t pointId = POINTID_BULK_IN;
1197     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1198     ASSERT_EQ(0, ret);
1199     dev = {0, 255};
1200     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1201     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '3', '5'};
1202     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 100, bufferData);
1203     ASSERT_NE(0, ret);
1204 }
1205 
1206 /**
1207  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_5300
1208  * @tc.name: testHdiUsbTransferTestIsoTransferWrite036
1209  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {0, 255} pointId = POINTID_BULK_IN
1210  * timeout = 255.
1211  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite036, Function | MediumTest | Level2)1212 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite036, Function | MediumTest | Level2)
1213 {
1214     struct UsbDev dev = dev_;
1215     uint8_t interfaceId = INTERFACEID_OK;
1216     uint8_t pointId = POINTID_BULK_IN;
1217     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1218     ASSERT_EQ(0, ret);
1219     dev = {0, 255};
1220     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1221     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '3', '6'};
1222     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 255, bufferData);
1223     ASSERT_NE(0, ret);
1224 }
1225 
1226 /**
1227  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_5400
1228  * @tc.name: testHdiUsbTransferTestIsoTransferWrite037
1229  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} pointId = POINTID_BULK_IN
1230  * timeout = 1.
1231  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite037, Function | MediumTest | Level2)1232 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite037, Function | MediumTest | Level2)
1233 {
1234     struct UsbDev dev = dev_;
1235     uint8_t interfaceId = INTERFACEID_OK;
1236     uint8_t pointId = POINTID_BULK_IN;
1237     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1238     ASSERT_EQ(0, ret);
1239     dev = {255, 0};
1240     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1241     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '3', '7'};
1242     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 1, bufferData);
1243     ASSERT_NE(0, ret);
1244 }
1245 
1246 /**
1247  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_5500
1248  * @tc.name: testHdiUsbTransferTestIsoTransferWrite038
1249  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} pointId = POINTID_BULK_IN
1250  * timeout = 50.
1251  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite038, Function | MediumTest | Level2)1252 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite038, Function | MediumTest | Level2)
1253 {
1254     struct UsbDev dev = dev_;
1255     uint8_t interfaceId = INTERFACEID_OK;
1256     uint8_t pointId = POINTID_BULK_IN;
1257     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1258     ASSERT_EQ(0, ret);
1259     dev = {255, 0};
1260     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1261     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '3', '8'};
1262     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 50, bufferData);
1263     ASSERT_NE(0, ret);
1264 }
1265 
1266 /**
1267  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_5600
1268  * @tc.name: testHdiUsbTransferTestIsoTransferWrite039
1269  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} pointId = POINTID_BULK_IN
1270  * timeout = 100.
1271  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite039, Function | MediumTest | Level2)1272 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite039, Function | MediumTest | Level2)
1273 {
1274     struct UsbDev dev = dev_;
1275     uint8_t interfaceId = INTERFACEID_OK;
1276     uint8_t pointId = POINTID_BULK_IN;
1277     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1278     ASSERT_EQ(0, ret);
1279     dev = {255, 0};
1280     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1281     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '3', '9'};
1282     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 100, bufferData);
1283     ASSERT_NE(0, ret);
1284 }
1285 
1286 /**
1287  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_5700
1288  * @tc.name: testHdiUsbTransferTestIsoTransferWrite040
1289  * @tc.desc: Writes data on a specified endpoint during isochronous transfer.dev = {255, 0} pointId = POINTID_BULK_IN
1290  * timeout = 255.
1291  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite040, Function | MediumTest | Level2)1292 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferWrite040, Function | MediumTest | Level2)
1293 {
1294     struct UsbDev dev = dev_;
1295     uint8_t interfaceId = INTERFACEID_OK;
1296     uint8_t pointId = POINTID_BULK_IN;
1297     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1298     ASSERT_EQ(0, ret);
1299     dev = {255, 0};
1300     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1301     std::vector<uint8_t> bufferData = {'i', 's', 'o', 't', 'e', 's', 't', '0', '4', '0'};
1302     ret = g_usbInterface->IsoTransferWrite(dev, pipe, 255, bufferData);
1303     ASSERT_NE(0, ret);
1304 }
1305 
1306 /**
1307  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_5800
1308  * @tc.name: testHdiUsbTransferTestIsoTransferRead001
1309  * @tc.desc: Reads data on a specified endpoint during isochronous transfer.see if bufferData1 is equal to bufferData.
1310  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferRead001, Function | MediumTest | Level1)1311 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestIsoTransferRead001, Function | MediumTest | Level1)
1312 {
1313     struct UsbDev dev = dev_;
1314     uint8_t interfaceId = INTERFACEID_OK;
1315     uint8_t pointId = POINTID_BULK_OUT;
1316     std::vector<uint8_t> bufferData = {'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd'};
1317     std::vector<uint8_t> bufferData1(MAX_BUFFER_LENGTH);
1318     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1319     ASSERT_EQ(0, ret);
1320     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1321 
1322     ret = g_usbInterface->IsoTransferWrite(dev, pipe, -1, bufferData);
1323     ASSERT_EQ(0, ret);
1324     pipe = {interfaceId, POINTID_BULK_IN};
1325     ret = g_usbInterface->IsoTransferRead(dev, pipe, -1, bufferData1);
1326     ASSERT_EQ(0, ret);
1327     for (uint8_t i = 0; i < bufferData1.size(); ++i) {
1328         std::cout << bufferData1[i] << " ";
1329     }
1330     std::cout << std::endl;
1331 }
1332 
1333 /**
1334  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_5900
1335  * @tc.name: testHdiUsbTransferTestBulkRead001
1336  * @tc.desc: Reads data during isochronous bulk transfer. dev = {1, 255}.
1337  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkRead001, Function | MediumTest | Level2)1338 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkRead001, Function | MediumTest | Level2)
1339 {
1340     sptr<Ashmem> ashmem;
1341     uint8_t rflg = 0;
1342     int32_t asmSize = MAX_BUFFER_LENGTH;
1343     struct UsbDev dev = dev_;
1344     uint8_t interfaceId = INTERFACEID_OK;
1345     uint8_t pointId = POINTID_BULK_OUT;
1346     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1347     ASSERT_EQ(0, ret);
1348     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1349     dev = {1, 255};
1350     (void)InitAshmemOne(ashmem, asmSize, rflg);
1351     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
1352     ASSERT_NE(ret, 0);
1353 }
1354 
1355 /**
1356  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_6000
1357  * @tc.name: testHdiUsbTransferTestBulkRead002
1358  * @tc.desc: Reads data during isochronous bulk transfer. dev = {255, 1}.
1359  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkRead002, Function | MediumTest | Level2)1360 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkRead002, Function | MediumTest | Level2)
1361 {
1362     sptr<Ashmem> ashmem;
1363     uint8_t rflg = 0;
1364     int32_t asmSize = MAX_BUFFER_LENGTH;
1365     struct UsbDev dev = dev_;
1366     uint8_t interfaceId = INTERFACEID_OK;
1367     uint8_t pointId = POINTID_BULK_OUT;
1368     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1369     ASSERT_EQ(0, ret);
1370     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1371     dev = {255, 1};
1372     (void)InitAshmemOne(ashmem, asmSize, rflg);
1373     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
1374     ASSERT_NE(ret, 0);
1375 }
1376 
1377 /**
1378  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_6100
1379  * @tc.name: testHdiUsbTransferTestBulkRead003
1380  * @tc.desc: Reads data during isochronous bulk transfer. dev = {255, 255}.
1381  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkRead003, Function | MediumTest | Level2)1382 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkRead003, Function | MediumTest | Level2)
1383 {
1384     sptr<Ashmem> ashmem;
1385     uint8_t rflg = 0;
1386     int32_t asmSize = MAX_BUFFER_LENGTH;
1387     struct UsbDev dev = dev_;
1388     uint8_t interfaceId = INTERFACEID_OK;
1389     uint8_t pointId = POINTID_BULK_OUT;
1390     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1391     ASSERT_EQ(0, ret);
1392     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1393     dev = {255, 255};
1394     (void)InitAshmemOne(ashmem, asmSize, rflg);
1395     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
1396     ASSERT_NE(ret, 0);
1397 }
1398 
1399 /**
1400  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_6200
1401  * @tc.name: testHdiUsbTransferTestBulkRead004
1402  * @tc.desc: Reads data during isochronous bulk transfer. dev = {100, 255}.
1403  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkRead004, Function | MediumTest | Level2)1404 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkRead004, Function | MediumTest | Level2)
1405 {
1406     sptr<Ashmem> ashmem;
1407     uint8_t rflg = 0;
1408     int32_t asmSize = MAX_BUFFER_LENGTH;
1409     struct UsbDev dev = dev_;
1410     uint8_t interfaceId = INTERFACEID_OK;
1411     uint8_t pointId = POINTID_BULK_OUT;
1412     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1413     ASSERT_EQ(0, ret);
1414     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1415     dev = {100, 255};
1416     (void)InitAshmemOne(ashmem, asmSize, rflg);
1417     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
1418     ASSERT_NE(ret, 0);
1419 }
1420 
1421 /**
1422  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_6300
1423  * @tc.name: testHdiUsbTransferTestBulkRead005
1424  * @tc.desc: Reads data during isochronous bulk transfer. dev = {255, 100}.
1425  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkRead005, Function | MediumTest | Level2)1426 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkRead005, Function | MediumTest | Level2)
1427 {
1428     sptr<Ashmem> ashmem;
1429     uint8_t rflg = 0;
1430     int32_t asmSize = MAX_BUFFER_LENGTH;
1431     struct UsbDev dev = dev_;
1432     uint8_t interfaceId = INTERFACEID_OK;
1433     uint8_t pointId = POINTID_BULK_OUT;
1434     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1435     ASSERT_EQ(0, ret);
1436     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1437     dev = {255, 100};
1438     (void)InitAshmemOne(ashmem, asmSize, rflg);
1439     ret = g_usbInterface->BulkRead(dev, pipe, ashmem);
1440     ASSERT_NE(ret, 0);
1441 }
1442 
1443 /**
1444  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_6400
1445  * @tc.name: testHdiUsbTransferTestBulkWrite001
1446  * @tc.desc: Writes data during isochronous bulk transfer. dev = {1, 255}.
1447  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkWrite001, Function | MediumTest | Level2)1448 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkWrite001, Function | MediumTest | Level2)
1449 {
1450     sptr<Ashmem> ashmem;
1451     uint8_t rflg = 0;
1452     int32_t asmSize = MAX_BUFFER_LENGTH;
1453     struct UsbDev dev = dev_;
1454     uint8_t interfaceId = INTERFACEID_OK;
1455     uint8_t pointId = POINTID_BULK_OUT;
1456     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1457     ASSERT_EQ(0, ret);
1458     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1459     dev = {1, 255};
1460     (void)InitAshmemOne(ashmem, asmSize, rflg);
1461     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
1462     ASSERT_NE(ret, 0);
1463 }
1464 
1465 /**
1466  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_6500
1467  * @tc.name: testHdiUsbTransferTestBulkWrite002
1468  * @tc.desc: Writes data during isochronous bulk transfer. dev = {255, 1}.
1469  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkWrite002, Function | MediumTest | Level2)1470 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkWrite002, Function | MediumTest | Level2)
1471 {
1472     sptr<Ashmem> ashmem;
1473     uint8_t rflg = 0;
1474     int32_t asmSize = MAX_BUFFER_LENGTH;
1475     struct UsbDev dev = dev_;
1476     uint8_t interfaceId = INTERFACEID_OK;
1477     uint8_t pointId = POINTID_BULK_OUT;
1478     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1479     ASSERT_EQ(0, ret);
1480     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1481     dev = {255, 1};
1482     (void)InitAshmemOne(ashmem, asmSize, rflg);
1483     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
1484     ASSERT_NE(ret, 0);
1485 }
1486 
1487 /**
1488  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_6600
1489  * @tc.name: testHdiUsbTransferTestBulkWrite003
1490  * @tc.desc: Writes data during isochronous bulk transfer. dev = {255, 255}.
1491  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkWrite003, Function | MediumTest | Level2)1492 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkWrite003, Function | MediumTest | Level2)
1493 {
1494     sptr<Ashmem> ashmem;
1495     uint8_t rflg = 0;
1496     int32_t asmSize = MAX_BUFFER_LENGTH;
1497     struct UsbDev dev = dev_;
1498     uint8_t interfaceId = INTERFACEID_OK;
1499     uint8_t pointId = POINTID_BULK_OUT;
1500     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1501     ASSERT_EQ(0, ret);
1502     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1503     dev = {255, 255};
1504     (void)InitAshmemOne(ashmem, asmSize, rflg);
1505     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
1506     ASSERT_NE(ret, 0);
1507 }
1508 
1509 /**
1510  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_6700
1511  * @tc.name: testHdiUsbTransferTestBulkWrite004
1512  * @tc.desc: Writes data during isochronous bulk transfer. dev = {100, 255}.
1513  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkWrite004, Function | MediumTest | Level2)1514 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkWrite004, Function | MediumTest | Level2)
1515 {
1516     sptr<Ashmem> ashmem;
1517     uint8_t rflg = 0;
1518     int32_t asmSize = MAX_BUFFER_LENGTH;
1519     struct UsbDev dev = dev_;
1520     uint8_t interfaceId = INTERFACEID_OK;
1521     uint8_t pointId = POINTID_BULK_OUT;
1522     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1523     ASSERT_EQ(0, ret);
1524     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1525     dev = {100, 255};
1526     (void)InitAshmemOne(ashmem, asmSize, rflg);
1527     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
1528     ASSERT_NE(ret, 0);
1529 }
1530 
1531 /**
1532  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_6800
1533  * @tc.name: testHdiUsbTransferTestBulkWrite005
1534  * @tc.desc: Writes data during isochronous bulk transfer. dev = {255, 100}.
1535  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkWrite005, Function | MediumTest | Level2)1536 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestBulkWrite005, Function | MediumTest | Level2)
1537 {
1538     sptr<Ashmem> ashmem;
1539     uint8_t rflg = 0;
1540     int32_t asmSize = MAX_BUFFER_LENGTH;
1541     struct UsbDev dev = dev_;
1542     uint8_t interfaceId = INTERFACEID_OK;
1543     uint8_t pointId = POINTID_BULK_OUT;
1544     auto ret = g_usbInterface->ClaimInterface(dev, interfaceId, 1);
1545     ASSERT_EQ(0, ret);
1546     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1547     dev = {255, 100};
1548     (void)InitAshmemOne(ashmem, asmSize, rflg);
1549     ret = g_usbInterface->BulkWrite(dev, pipe, ashmem);
1550     ASSERT_NE(ret, 0);
1551 }
1552 
1553 /**
1554  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_6900
1555  * @tc.name: testHdiUsbTransferTestRegBulkCallback001
1556  * @tc.desc: Registers a callback for isochronous bulk transfer. dev = {1, 255}.
1557  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestRegBulkCallback001, Function | MediumTest | Level2)1558 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestRegBulkCallback001, Function | MediumTest | Level2)
1559 {
1560     struct UsbDev dev = dev_;
1561     uint8_t interfaceId = INTERFACEID_OK;
1562     uint8_t pointId = POINTID_BULK_OUT;
1563     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1564     dev = {1, 255};
1565     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
1566     if (usbdBulkCallback == nullptr) {
1567         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
1568         exit(0);
1569     }
1570     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
1571     ASSERT_NE(ret, 0);
1572 }
1573 
1574 /**
1575  * @tc.number: SUB_USB_HostManager_HDI_CompatibilityTransferAddTest_7000
1576  * @tc.name: testHdiUsbTransferTestUnRegBulkCallback001
1577  * @tc.desc: Unregisters the callback for isochronous bulk transfer. dev = {1, 255}.
1578  */
HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestUnRegBulkCallback001, Function | MediumTest | Level2)1579 HWTEST_F(UsbdTransferTestAdditional, testHdiUsbTransferTestUnRegBulkCallback001, Function | MediumTest | Level2)
1580 {
1581     struct UsbDev dev = dev_;
1582     uint8_t interfaceId = INTERFACEID_OK;
1583     uint8_t pointId = POINTID_BULK_OUT;
1584     OHOS::HDI::Usb::V1_0::UsbPipe pipe = {interfaceId, pointId};
1585     sptr<UsbdBulkCallbackTest> usbdBulkCallback = new UsbdBulkCallbackTest();
1586     if (usbdBulkCallback == nullptr) {
1587         HDF_LOGE("%{public}s:UsbdBulkCallbackTest new failed.", __func__);
1588         exit(0);
1589     }
1590     auto ret = g_usbInterface->RegBulkCallback(dev, pipe, usbdBulkCallback);
1591     ASSERT_EQ(ret, 0);
1592     dev = {1, 255};
1593     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
1594     ASSERT_NE(ret, 0);
1595     dev = dev_;
1596     ret = g_usbInterface->UnRegBulkCallback(dev, pipe);
1597     ASSERT_EQ(ret, 0);
1598 }
1599 } // namespace
1600