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