1 /*
2 * Copyright (c) 2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "usbd_request_test.h"
17 #include <iostream>
18 #include <vector>
19 #include "hdf_log.h"
20 #include "usb_param.h"
21 #include "usbd_client.h"
22
23 using namespace testing::ext;
24 using namespace OHOS;
25 using namespace OHOS::USB;
26 using namespace std;
27
28 const int SLEEP_TIME = 3;
29 const uint8_t BUS_NUM_1 = 1;
30 const uint8_t DEV_ADDR_2 = 2;
31 const uint8_t BUS_NUM_255 = 255;
32 const uint8_t DEV_ADDR_255 = 255;
33 const uint8_t BUS_NUM_222 = 222;
34 const uint8_t DEV_ADDR_222 = 222;
35 const uint32_t LENGTH_NUM_255 = 255;
36 const uint32_t TAG_LENGTH_NUM_1000 = 1000;
37 const int TAG_NUM_10 = 10;
38 const int TAG_NUM_11 = 11;
39 const uint8_t INTERFACEID_1 = 1;
40 const uint8_t POINTID_1 = 1;
41 const uint8_t POINTID_129 = 129;
42
SetUpTestCase(void)43 void UsbdRequestTest::SetUpTestCase(void)
44 {
45 auto ret = UsbdClient::GetInstance().SetPortRole(1, 1, 1);
46 sleep(SLEEP_TIME);
47 HDF_LOGI("UsbdFunctionTest::[Device] %{public}d SetPortRole=%{public}d", __LINE__, ret);
48 ASSERT_TRUE(ret == 0);
49 if (ret != 0) {
50 exit(0);
51 }
52 std::cout << "please connect device, press enter to continue" << std::endl;
53 int c;
54 while ((c = getchar()) != '\n' && c != EOF) {
55 }
56 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
57 ret = UsbdClient::GetInstance().OpenDevice(dev);
58 HDF_LOGI("UsbdRequestTest:: %{public}d OpenDevice=%{public}d", __LINE__, ret);
59 ASSERT_TRUE(ret == 0);
60 }
61
TearDownTestCase(void)62 void UsbdRequestTest::TearDownTestCase(void)
63 {
64 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
65 auto ret = UsbdClient::GetInstance().CloseDevice(dev);
66 HDF_LOGI("UsbdRequestTest:: %{public}d Close=%{public}d", __LINE__, ret);
67 ASSERT_TRUE(ret == 0);
68 }
69
SetUp(void)70 void UsbdRequestTest::SetUp(void) {}
71
TearDown(void)72 void UsbdRequestTest::TearDown(void) {}
73
74 /**
75 * @tc.name: UsbdConfig001
76 * @tc.desc: Test functions to SetConfig
77 * @tc.desc: int32_t SetConfig(const UsbDev &dev, uint8_t configIndex);
78 * @tc.type: FUNC
79 */
80 HWTEST_F(UsbdRequestTest, UsbdSetConfig001, Function | MediumTest | Level1)
81 {
82 uint8_t busNum = 1;
83 uint8_t devAddr = 2;
84 uint8_t configIndex = 1;
85 struct UsbDev dev = {busNum, devAddr};
86 auto ret = UsbdClient::GetInstance().SetConfig(dev, configIndex);
87 HDF_LOGI("UsbdRequestTest::UsbdSetConfigConfig001 %{public}d SetConfig=%{public}d", __LINE__, ret);
88 ASSERT_TRUE(ret == 0);
89 }
90
91 /**
92 * @tc.name: UsbdConfig002
93 * @tc.desc: Test functions to SetConfig
94 * @tc.desc: int32_t SetConfig(const UsbDev &dev, uint8_t configIndex);
95 * @tc.type: FUNC
96 */
97 HWTEST_F(UsbdRequestTest, UsbdSetConfig002, Function | MediumTest | Level1)
98 {
99 uint8_t busNum = BUS_NUM_222;
100 uint8_t devAddr = 2;
101 uint8_t configIndex = 1;
102 struct UsbDev dev = {busNum, devAddr};
103 auto ret = UsbdClient::GetInstance().SetConfig(dev, configIndex);
104 HDF_LOGI("UsbdRequestTest::UsbdSetConfig002 %{public}d SetConfig=%{public}d", __LINE__, ret);
105 ASSERT_TRUE(ret != 0);
106 }
107
108 /**
109 * @tc.name: UsbdConfig001
110 * @tc.desc: Test functions to GetConfig
111 * @tc.desc: int32_t GetConfig(const UsbDev &dev, uint8_t &configIndex);
112 * @tc.desc: 正向测试:参数正确
113 * @tc.type: FUNC
114 */
115 HWTEST_F(UsbdRequestTest, UsbdGetConfig001, Function | MediumTest | Level1)
116 {
117 uint8_t busNum = 1;
118 uint8_t devAddr = 2;
119 uint8_t configIndex = 1;
120 struct UsbDev dev = {busNum, devAddr};
121 auto ret = UsbdClient::GetInstance().GetConfig(dev, configIndex);
122 HDF_LOGI("UsbdRequestTest::UsbdGetConfig001 %{public}d GetConfig=%{public}d", __LINE__, ret);
123 ASSERT_TRUE(ret == 0);
124 }
125
126 /**
127 * @tc.name: UsbdConfig002
128 * @tc.desc: Test functions to GetConfig
129 * @tc.desc: int32_t GetConfig(const UsbDev &dev, uint8_t &configIndex);
130 * @tc.type: FUNC
131 */
132 HWTEST_F(UsbdRequestTest, UsbdGetConfig002, Function | MediumTest | Level1)
133 {
134 uint8_t busNum = BUS_NUM_222;
135 uint8_t devAddr = 2;
136 uint8_t configIndex = 1;
137 struct UsbDev dev = {busNum, devAddr};
138 auto ret = UsbdClient::GetInstance().GetConfig(dev, configIndex);
139 HDF_LOGI("UsbdRequestTest::UsbdGetConfig002 %{public}d GetConfig=%{public}d", __LINE__, ret);
140 ASSERT_TRUE(ret != 0);
141 }
142
143 /**
144 * @tc.name: UsbdClaimInterface001
145 * @tc.desc: Test functions to ClaimInterface
146 * @tc.desc: int32_t ClaimInterface(const UsbDev &dev, uint8_t interfaceId);
147 * @tc.type: FUNC
148 */
149 HWTEST_F(UsbdRequestTest, UsbdClaimInterface001, Function | MediumTest | Level1)
150 {
151 uint8_t busNum = 1;
152 uint8_t devAddr = 2;
153 uint8_t interfaceId = INTERFACEID_1;
154 struct UsbDev dev = {busNum, devAddr};
155 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
156 HDF_LOGI("UsbdRequestTest::UsbdClaimInterface001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
157 ASSERT_TRUE(ret == 0);
158 }
159
160 /**
161 * @tc.name: UsbdClaimInterface002
162 * @tc.desc: Test functions to ClaimInterface
163 * @tc.desc: int32_t ClaimInterface(const UsbDev &dev, uint8_t interfaceId);
164 * @tc.type: FUNC
165 */
166 HWTEST_F(UsbdRequestTest, UsbdClaimInterface002, Function | MediumTest | Level1)
167 {
168 uint8_t busNum = 1;
169 uint8_t devAddr = 2;
170 uint8_t interfaceId = INTERFACEID_1;
171 struct UsbDev dev = {busNum, devAddr};
172 dev.busNum = 20;
173 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
174 HDF_LOGI("UsbdRequestTest::UsbdClaimInterface002 %{public}d ret=%{public}d", __LINE__, ret);
175 ASSERT_TRUE(ret != 0);
176 }
177
178 /**
179 * @tc.name: UsbdSetInterface001
180 * @tc.desc: Test functions to SetInterface
181 * @tc.desc: int32_t SetInterface(const UsbDev &dev, uint8_t interfaceId, uint8_t altIndex);
182 * @tc.type: FUNC
183 */
184 HWTEST_F(UsbdRequestTest, UsbdSetInterface001, Function | MediumTest | Level1)
185 {
186 uint8_t busNum = 1;
187 uint8_t devAddr = 2;
188 uint8_t interfaceId = INTERFACEID_1;
189 uint8_t altIndex = 0;
190
191 struct UsbDev dev = {busNum, devAddr};
192
193 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
194 HDF_LOGI("UsbdRequestTest::UsbdClaimInterface001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
195 ASSERT_TRUE(ret == 0);
196 ret = UsbdClient::GetInstance().SetInterface(dev, interfaceId, altIndex);
197 HDF_LOGI("UsbdRequestTest::UsbdSetInterface001 %{public}d ret=%{public}d", __LINE__, ret);
198 ASSERT_TRUE(ret == 0);
199 }
200
201 /**
202 * @tc.name: UsbdSetInterface002
203 * @tc.desc: Test functions to SetInterface
204 * @tc.desc: int32_t SetInterface(const UsbDev &dev, uint8_t interfaceId, uint8_t altIndex);
205 * @tc.type: FUNC
206 */
207 HWTEST_F(UsbdRequestTest, UsbdSetInterface002, Function | MediumTest | Level1)
208 {
209 uint8_t busNum = 1;
210 uint8_t devAddr = 2;
211 uint8_t interfaceId = INTERFACEID_1;
212
213 uint8_t altIndex = 0;
214 struct UsbDev dev = {busNum, devAddr};
215
216
217 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
218 HDF_LOGI("UsbdRequestTest::UsbdSetInterface002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
219 ASSERT_TRUE(ret == 0);
220 dev.busNum = BUS_NUM_222;
221 ret = UsbdClient::GetInstance().SetInterface(dev, interfaceId, altIndex);
222 HDF_LOGI("UsbdRequestTest::UsbdSetInterface002 %{public}d ret=%{public}d", __LINE__, ret);
223 ASSERT_TRUE(ret != 0);
224 }
225
226 /**
227 * @tc.name: UsbdDescriptor001
228 * @tc.desc: Test functions to GetDeviceDescriptor
229 * @tc.desc: int32_t GetDeviceDescriptor(const UsbDev &dev, std::vector<uint8_t> &decriptor);
230 * @tc.type: FUNC
231 */
232 HWTEST_F(UsbdRequestTest, UsbdGetDeviceDescriptor001, Function | MediumTest | Level1)
233 {
234 uint8_t busNum = 1;
235 uint8_t devAddr = 2;
236 uint32_t length = LENGTH_NUM_255;
237 uint8_t buffer[LENGTH_NUM_255] = {0};
238 struct UsbDev dev = {busNum, devAddr};
239 std::vector<uint8_t> devdata(buffer, buffer + length);
240 auto ret = UsbdClient::GetInstance().GetDeviceDescriptor(dev, devdata);
241 HDF_LOGI("UsbdRequestTest::UsbdGetDeviceDescriptor001 %{public}d ret=%{public}d", __LINE__, ret);
242 HDF_LOGI("UsbdRequestTest::UsbdGetDeviceDescriptor001 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
243 devdata.size(), sizeof(devdata));
244 ASSERT_TRUE(ret == 0);
245 }
246
247 /**
248 * @tc.name: UsbdDescriptor002
249 * @tc.desc: Test functions to GetDeviceDescriptor
250 * @tc.desc: int32_t GetDeviceDescriptor(const UsbDev &dev, std::vector<uint8_t> &decriptor);
251 * @tc.type: FUNC
252 */
253 HWTEST_F(UsbdRequestTest, UsbdGetDeviceDescriptor002, Function | MediumTest | Level1)
254 {
255 uint8_t busNum = BUS_NUM_222;
256 uint8_t devAddr = 2;
257 uint8_t buffer[LENGTH_NUM_255] = {0};
258 uint32_t length = LENGTH_NUM_255;
259 struct UsbDev dev = {busNum, devAddr};
260 std::vector<uint8_t> devdata(buffer, buffer + length);
261 auto ret = UsbdClient::GetInstance().GetDeviceDescriptor(dev, devdata);
262 HDF_LOGI("UsbdRequestTest::UsbdGetDeviceDescriptor002 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
263 devdata.size(), sizeof(devdata));
264 HDF_LOGI("UsbdRequestTest::UsbdGetDeviceDescriptor002 %{public}d ret=%{public}d", __LINE__, ret);
265 ASSERT_TRUE(ret != 0);
266 }
267
268 /**
269 * @tc.name: UsbdDescriptor004
270 * @tc.desc: Test functions to GetDeviceDescriptor
271 * @tc.desc: int32_t GetDeviceDescriptor(const UsbDev &dev, std::vector<uint8_t> &decriptor);
272 * @tc.type: FUNC
273 */
274 HWTEST_F(UsbdRequestTest, UsbdGetDeviceDescriptor004, Function | MediumTest | Level1)
275 {
276 uint8_t busNum = 1;
277 uint8_t devAddr = 2;
278 uint8_t buffer[LENGTH_NUM_255] = {};
279 uint32_t length = 0;
280 struct UsbDev dev = {busNum, devAddr};
281 std::vector<uint8_t> devdata(buffer, buffer + length);
282 auto ret = UsbdClient::GetInstance().GetDeviceDescriptor(dev, devdata);
283 HDF_LOGI("UsbdRequestTest::UsbdGetDeviceDescriptor004 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
284 devdata.size(), sizeof(devdata));
285 HDF_LOGI("UsbdRequestTest::UsbdGetDeviceDescriptor004 %{public}d ret=%{public}d", __LINE__, ret);
286 ASSERT_TRUE(ret == 0);
287 }
288
289 /**
290 * @tc.name: UsbdDescriptor001
291 * @tc.desc: Test functions to GetStringDescriptor
292 * @tc.desc: int32_t GetStringDescriptor(const UsbDev &dev, uint8_t descId, std::vector<uint8_t> &decriptor);
293 * @tc.type: FUNC
294 */
295 HWTEST_F(UsbdRequestTest, UsbdGetStringDescriptor001, Function | MediumTest | Level1)
296 {
297 uint8_t busNum = 1;
298 uint8_t devAddr = 2;
299 uint8_t stringId = 0;
300 uint8_t buffer[LENGTH_NUM_255] = {0};
301 uint32_t length = LENGTH_NUM_255;
302 struct UsbDev dev = {busNum, devAddr};
303 std::vector<uint8_t> devdata(buffer, buffer + length);
304 auto ret = UsbdClient::GetInstance().GetStringDescriptor(dev, stringId, devdata);
305 HDF_LOGI("UsbdRequestTest::UsbdGetStringDescriptor001 %{public}d ret=%{public}d", __LINE__, ret);
306 HDF_LOGI("UsbdRequestTest::UsbdGetStringDescriptor001 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
307 devdata.size(), sizeof(devdata));
308 ASSERT_TRUE(ret == 0);
309 }
310
311 /**
312 * @tc.name: UsbdDescriptor002
313 * @tc.desc: Test functions to GetStringDescriptor
314 * @tc.desc: int32_t GetStringDescriptor(const UsbDev &dev, uint8_t descId, std::vector<uint8_t> &decriptor);
315 * @tc.type: FUNC
316 */
317 HWTEST_F(UsbdRequestTest, UsbdGetStringDescriptor002, Function | MediumTest | Level1)
318 {
319 uint8_t busNum = 1;
320 uint8_t devAddr = 2;
321 uint8_t stringId = 1;
322 uint8_t buffer[LENGTH_NUM_255] = {0};
323 uint32_t length = LENGTH_NUM_255;
324 struct UsbDev dev = {busNum, devAddr};
325 std::vector<uint8_t> devdata(buffer, buffer + length);
326 auto ret = UsbdClient::GetInstance().GetStringDescriptor(dev, stringId, devdata);
327 HDF_LOGI("UsbdRequestTest::UsbdGetStringDescriptor002 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
328 devdata.size(), sizeof(devdata));
329 HDF_LOGI("UsbdRequestTest::UsbdGetStringDescriptor002 %{public}d ret=%{public}d", __LINE__, ret);
330 ASSERT_TRUE(ret == 0);
331 }
332
333 /**
334 * @tc.name: UsbdDescriptor003
335 * @tc.desc: Test functions to GetStringDescriptor
336 * @tc.desc: int32_t GetStringDescriptor(const UsbDev &dev, uint8_t descId, std::vector<uint8_t> &decriptor);
337 * @tc.type: FUNC
338 */
339 HWTEST_F(UsbdRequestTest, UsbdGetStringDescriptor003, Function | MediumTest | Level1)
340 {
341 uint8_t busNum = 1;
342 uint8_t devAddr = 2;
343 uint8_t stringId = 222;
344 uint8_t buffer[LENGTH_NUM_255] = {0};
345 uint32_t length = LENGTH_NUM_255;
346 struct UsbDev dev = {busNum, devAddr};
347 std::vector<uint8_t> devdata(buffer, buffer + length);
348 auto ret = UsbdClient::GetInstance().GetStringDescriptor(dev, stringId, devdata);
349 HDF_LOGI("UsbdRequestTest::UsbdGetStringDescriptor003 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
350 devdata.size(), sizeof(devdata));
351 HDF_LOGI("UsbdRequestTest::UsbdGetStringDescriptor003 %{public}d ret=%{public}d", __LINE__, ret);
352 ASSERT_TRUE(ret == 0);
353 }
354
355 /**
356 * @tc.name: UsbdDescriptor004
357 * @tc.desc: Test functions to GetStringDescriptor
358 * @tc.desc: int32_t GetStringDescriptor(const UsbDev &dev, uint8_t descId, std::vector<uint8_t> &decriptor);
359 * @tc.type: FUNC
360 */
361 HWTEST_F(UsbdRequestTest, UsbdGetStringDescriptor004, Function | MediumTest | Level1)
362 {
363 uint8_t busNum = 1;
364 uint8_t devAddr = 255;
365 uint8_t stringId = 0;
366 uint8_t buffer[LENGTH_NUM_255] = {0};
367 uint32_t length = 8;
368 struct UsbDev dev = {busNum, devAddr};
369 std::vector<uint8_t> devdata(buffer, buffer + length);
370 auto ret = UsbdClient::GetInstance().GetStringDescriptor(dev, stringId, devdata);
371 HDF_LOGI("UsbdRequestTest::UsbdGetStringDescriptor004 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
372 devdata.size(), sizeof(devdata));
373 HDF_LOGI("UsbdRequestTest::UsbdGetStringDescriptor004 %{public}d ret=%{public}d", __LINE__, ret);
374 ASSERT_TRUE(ret != 0);
375 }
376
377 /**
378 * @tc.name: UsbdDescriptor001
379 * @tc.desc: Test functions to GetConfigDescriptor
380 * @tc.desc: int32_t GetConfigDescriptor(const UsbDev &dev, uint8_t descId, std::vector<uint8_t> &decriptor);
381 * @tc.type: FUNC
382 */
383 HWTEST_F(UsbdRequestTest, UsbdGetConfigDescriptor001, Function | MediumTest | Level1)
384 {
385 uint8_t busNum = 1;
386 uint8_t devAddr = 2;
387 uint8_t configId = 0;
388 uint8_t buffer[LENGTH_NUM_255] = {};
389 uint32_t length = LENGTH_NUM_255;
390 struct UsbDev dev = {busNum, devAddr};
391 std::vector<uint8_t> devdata(buffer, buffer + length);
392 auto ret = UsbdClient::GetInstance().GetConfigDescriptor(dev, configId, devdata);
393 HDF_LOGI("UsbdRequestTest::UsbdGetConfigDescriptor001 %{public}d ret=%{public}d", __LINE__, ret);
394 HDF_LOGI("UsbdRequestTest::UsbdGetConfigDescriptor001 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
395 devdata.size(), sizeof(devdata));
396 ASSERT_TRUE(ret == 0);
397 }
398
399 /**
400 * @tc.name: UsbdDescriptor002
401 * @tc.desc: Test functions to GetConfigDescriptor
402 * @tc.desc: int32_t GetConfigDescriptor(const UsbDev &dev, uint8_t descId, std::vector<uint8_t> &decriptor);
403 * @tc.type: FUNC
404 */
405 HWTEST_F(UsbdRequestTest, UsbdGetConfigDescriptor002, Function | MediumTest | Level1)
406 {
407 uint8_t busNum = BUS_NUM_222;
408 uint8_t devAddr = 2;
409 uint8_t configId = 1;
410 uint8_t buffer[LENGTH_NUM_255] = {};
411 uint32_t length = LENGTH_NUM_255;
412 struct UsbDev dev = {busNum, devAddr};
413 std::vector<uint8_t> devdata(buffer, buffer + length);
414 auto ret = UsbdClient::GetInstance().GetConfigDescriptor(dev, configId, devdata);
415 HDF_LOGI("UsbdRequestTest::UsbdGetConfigDescriptor002 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
416 devdata.size(), sizeof(devdata));
417 HDF_LOGI("UsbdRequestTest::UsbdGetConfigDescriptor002 %{public}d ret=%{public}d", __LINE__, ret);
418 ASSERT_TRUE(ret != 0);
419 }
420
421 /**
422 * @tc.name: UsbdDescriptor004
423 * @tc.desc: Test functions to GetConfigDescriptor
424 * @tc.desc: int32_t GetConfigDescriptor(const UsbDev &dev, uint8_t descId, std::vector<uint8_t> &decriptor);
425 * @tc.type: FUNC
426 */
427 HWTEST_F(UsbdRequestTest, UsbdGetConfigDescriptor004, Function | MediumTest | Level1)
428 {
429 uint8_t busNum = 1;
430 uint8_t devAddr = 2;
431 uint8_t configId = 1;
432 uint8_t buffer[LENGTH_NUM_255] = {};
433 uint32_t length = LENGTH_NUM_255;
434 struct UsbDev dev = {busNum, devAddr};
435 std::vector<uint8_t> devdata(buffer, buffer + length);
436 auto ret = UsbdClient::GetInstance().GetConfigDescriptor(dev, configId, devdata);
437 HDF_LOGI("UsbdRequestTest::UsbdGetConfigDescriptor004 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
438 devdata.size(), sizeof(devdata));
439 HDF_LOGI("UsbdRequestTest::UsbdGetConfigDescriptor004 %{public}d ret=%{public}d", __LINE__, ret);
440 ASSERT_TRUE(ret == 0);
441 }
442
443 /**
444 * @tc.name: UsbdGetRawDescriptor001
445 * @tc.desc: Test functions to GetRawDescriptor
446 * @tc.desc: int32_t GetRawDescriptor(const UsbDev &dev, std::vector<uint8_t> &decriptor);
447 * @tc.type: FUNC
448 */
449 HWTEST_F(UsbdRequestTest, UsbdGetRawDescriptor001, Function | MediumTest | Level1)
450 {
451 uint8_t busNum = 1;
452 uint8_t devAddr = 2;
453 struct UsbDev dev = {busNum, devAddr};
454 std::vector<uint8_t> rawData;
455 auto ret = UsbdClient::GetInstance().GetRawDescriptor(dev, rawData);
456 HDF_LOGI("UsbdRequestTest::UsbdGetRawDescriptor001 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
457 rawData.size(), sizeof(rawData));
458 HDF_LOGI("UsbdRequestTest::UsbdGetRawDescriptor001 %{public}d ret=%{public}d", __LINE__, ret);
459 ASSERT_TRUE(ret == 0);
460 }
461
462 /**
463 * @tc.name: UsbdGetRawDescriptor002
464 * @tc.desc: Test functions to GetRawDescriptor
465 * @tc.desc: int32_t GetRawDescriptor(const UsbDev &dev, std::vector<uint8_t> &decriptor);
466 * @tc.type: FUNC
467 */
468 HWTEST_F(UsbdRequestTest, UsbdGetRawDescriptor002, Function | MediumTest | Level1)
469 {
470 uint8_t busNum = BUS_NUM_222;
471 uint8_t devAddr = 2;
472 struct UsbDev dev = {busNum, devAddr};
473 std::vector<uint8_t> rawData;
474 auto ret = UsbdClient::GetInstance().GetRawDescriptor(dev, rawData);
475 HDF_LOGI("UsbdRequestTest::UsbdGetRawDescriptor002 %{public}d length=%{public}d buffer=%{public}d", __LINE__,
476 rawData.size(), sizeof(rawData));
477 HDF_LOGI("UsbdRequestTest::UsbdGetRawDescriptor002 %{public}d ret=%{public}d", __LINE__, ret);
478 ASSERT_TRUE(ret != 0);
479 }
480
481 /**
482 * @tc.name: GetFileDescriptor001
483 * @tc.desc: Test functions to GetFileDescriptor
484 * @tc.desc: int32_t GetFileDescriptor(const UsbDev &dev, int32_t &fd);
485 * @tc.type: FUNC
486 */
487 HWTEST_F(UsbdRequestTest, GetFileDescriptor001, Function | MediumTest | Level1)
488 {
489 uint8_t busNum = 1;
490 uint8_t devAddr = 2;
491 struct UsbDev dev = {busNum, devAddr};
492 int32_t fd = 0;
493 auto ret = UsbdClient::GetInstance().GetFileDescriptor(dev, fd);
494 HDF_LOGI("UsbdRequestTest::GetFileDescriptor001 %{public}d GetFileDescriptor=%{public}d", __LINE__, ret);
495 HDF_LOGI("UsbdRequestTest::GetFileDescriptor001 %{public}d fd=%{public}d", __LINE__, fd);
496 ASSERT_TRUE(ret == 0);
497 }
498
499 /**
500 * @tc.name: GetFileDescriptor002
501 * @tc.desc: Test functions to GetFileDescriptor
502 * @tc.desc: int32_t GetFileDescriptor(const UsbDev &dev, int32_t &fd);
503 * @tc.type: FUNC
504 */
505 HWTEST_F(UsbdRequestTest, GetFileDescriptor002, Function | MediumTest | Level1)
506 {
507 uint8_t busNum = BUS_NUM_222;
508 uint8_t devAddr = 2;
509 struct UsbDev dev = {busNum, devAddr};
510 int32_t fd = 0;
511 auto ret = UsbdClient::GetInstance().GetFileDescriptor(dev, fd);
512 HDF_LOGI("UsbdRequestTest::GetFileDescriptor002 %{public}d GetFileDescriptor=%{public}d", __LINE__, ret);
513 HDF_LOGI("UsbdRequestTest::GetFileDescriptor002 %{public}d fd=%{public}d", __LINE__, fd);
514 ASSERT_TRUE(ret != 0);
515 }
516
517 /**
518 * @tc.name: GetFileDescriptor003
519 * @tc.desc: Test functions to GetFileDescriptor
520 * @tc.desc: int32_t GetFileDescriptor(const UsbDev &dev, int32_t &fd);
521 * @tc.type: FUNC
522 */
523 HWTEST_F(UsbdRequestTest, GetFileDescriptor003, Function | MediumTest | Level1)
524 {
525 uint8_t busNum = 1;
526 uint8_t devAddr = DEV_ADDR_222;
527 struct UsbDev dev = {busNum, devAddr};
528 int32_t fd = 0;
529 auto ret = UsbdClient::GetInstance().GetFileDescriptor(dev, fd);
530 HDF_LOGI("UsbdRequestTest::GetFileDescriptor003 %{public}d GetFileDescriptor=%{public}d", __LINE__, ret);
531 HDF_LOGI("UsbdRequestTest::GetFileDescriptor003 %{public}d fd=%{public}d", __LINE__, fd);
532 ASSERT_TRUE(ret != 0);
533 }
534
535 /**
536 * @tc.name: GetFileDescriptor004
537 * @tc.desc: Test functions to GetFileDescriptor
538 * @tc.desc: int32_t GetFileDescriptor(const UsbDev &dev, int32_t &fd);
539 * @tc.type: FUNC
540 */
541 HWTEST_F(UsbdRequestTest, GetFileDescriptor004, Function | MediumTest | Level1)
542 {
543 uint8_t busNum = 1;
544 uint8_t devAddr = 2;
545 struct UsbDev dev = {busNum, devAddr};
546 int32_t fd = LENGTH_NUM_255;
547 auto ret = UsbdClient::GetInstance().GetFileDescriptor(dev, fd);
548 HDF_LOGI("UsbdRequestTest::GetFileDescriptor004 %{public}d GetFileDescriptor=%{public}d", __LINE__, ret);
549 HDF_LOGI("UsbdRequestTest::GetFileDescriptor004 %{public}d fd=%{public}d", __LINE__, fd);
550 ASSERT_TRUE(ret == 0);
551 }
552
553 /**
554 * @tc.name: UsbdRequest001
555 * @tc.desc: Test functions to RequestQueue
556 * @tc.desc: int32_t RequestQueue(const UsbDev &dev, const UsbPipe &pipe, std::vector<uint8_t> &clientData,
557 std::vector<uint8_t> &buffer);
558 * @tc.type: FUNC
559 */
560 HWTEST_F(UsbdRequestTest, UsbdRequestQueue001, Function | MediumTest | Level1)
561 {
562 uint8_t pointid = POINTID_129;
563 uint8_t interfaceId = INTERFACEID_1;
564 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
565 dev.busNum = BUS_NUM_1;
566 dev.devAddr = DEV_ADDR_2;
567 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
568 HDF_LOGI("UsbdRequestTest::UsbdRequestQueue001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
569 ASSERT_TRUE(ret == 0);
570 uint8_t tag[TAG_LENGTH_NUM_1000] = "queue read";
571 uint8_t buffer[LENGTH_NUM_255] = {0};
572 uint32_t length = LENGTH_NUM_255;
573 struct UsbPipe pipe = {interfaceId, pointid};
574 std::vector<uint8_t> clientdata = {tag, tag + TAG_NUM_10};
575 std::vector<uint8_t> bufferdata = {buffer, buffer + length};
576 ret = UsbdClient::GetInstance().RequestQueue(dev, pipe, clientdata, bufferdata);
577 HDF_LOGI("UsbdRequestTest::UsbdRequestQueue001 %{public}d interfaceId=%{public}d pointid=%{public}d", __LINE__,
578 interfaceId, pointid);
579 HDF_LOGI("UsbdRequestTest::UsbdRequestQueue001 %{public}d RequestQueue=%{public}d", __LINE__, ret);
580 ASSERT_TRUE(ret == 0);
581 }
582
583 /**
584 * @tc.name: UsbdRequest002
585 * @tc.desc: Test functions to RequestQueue
586 * @tc.desc: int32_t RequestQueue(const UsbDev &dev, const UsbPipe &pipe, std::vector<uint8_t> &clientData,
587 std::vector<uint8_t> &buffer);
588 * @tc.type: FUNC
589 */
590 HWTEST_F(UsbdRequestTest, UsbdRequestQueue002, Function | MediumTest | Level1)
591 {
592 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
593 dev.devAddr = DEV_ADDR_2;
594 dev.busNum = BUS_NUM_1;
595 uint8_t pointid = POINTID_129;
596 uint8_t interfaceId = INTERFACEID_1;
597 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
598 HDF_LOGI("UsbdRequestTest::UsbdRequestQueue002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
599 ASSERT_TRUE(ret == 0);
600 uint8_t tag[TAG_LENGTH_NUM_1000] = "queue read";
601 uint8_t buffer[LENGTH_NUM_255] = {0};
602 uint32_t length = LENGTH_NUM_255;
603 dev = {222, 222};
604 struct UsbPipe pipe = {interfaceId, pointid};
605 std::vector<uint8_t> clientdata = {tag, tag + TAG_NUM_10};
606 std::vector<uint8_t> bufferdata = {buffer, buffer + length};
607 ret = UsbdClient::GetInstance().RequestQueue(dev, pipe, clientdata, bufferdata);
608 HDF_LOGI("UsbdRequestTest::UsbdRequestQueue002 %{public}d interfaceId=%{public}d pointid=%{public}d", __LINE__,
609 interfaceId, pointid);
610 HDF_LOGI("UsbdRequestTest::UsbdRequestQueue002 %{public}d RequestQueue=%{public}d", __LINE__, ret);
611 ASSERT_TRUE(ret != 0);
612 }
613
614 /**
615 * @tc.name: UsbdRequest007
616 * @tc.desc: Test functions to RequestQueue
617 * @tc.desc: int32_t RequestQueue(const UsbDev &dev, const UsbPipe &pipe, std::vector<uint8_t> &clientData,
618 std::vector<uint8_t> &buffer);
619 * @tc.type: FUNC
620 */
621 HWTEST_F(UsbdRequestTest, UsbdRequestQueue007, Function | MediumTest | Level1)
622 {
623 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
624 dev.busNum = BUS_NUM_1;
625 dev.devAddr = DEV_ADDR_2;
626 uint8_t buffer[LENGTH_NUM_255] = "request 007";
627 uint32_t length = LENGTH_NUM_255;
628 uint8_t pointid = POINTID_1;
629 uint8_t interfaceId = INTERFACEID_1;
630 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
631 HDF_LOGI("UsbdRequestTest::UsbdRequestQueue007 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
632 ASSERT_TRUE(ret == 0);
633 uint8_t tag[TAG_LENGTH_NUM_1000] = "queue write";
634 struct UsbPipe pipe = {interfaceId, pointid};
635 std::vector<uint8_t> clientdata = {tag, tag + TAG_NUM_11};
636 std::vector<uint8_t> bufferdata = {buffer, buffer + length};
637 ret = UsbdClient::GetInstance().RequestQueue(dev, pipe, clientdata, bufferdata);
638 HDF_LOGI("UsbdRequestTest::UsbdRequestQueue007 %{public}d RequestQueue=%{public}d", __LINE__, ret);
639 ASSERT_TRUE(ret == 0);
640 }
641
642 /**
643 * @tc.name: UsbdRequest001
644 * @tc.desc: Test functions to RequestWait
645 * @tc.desc: int32_t RequestWait(const UsbDev &dev, std::vector<uint8_t> &clientData, std::vector<uint8_t> &buffer,
646 * int32_t timeout);
647 * @tc.type: FUNC
648 */
649 HWTEST_F(UsbdRequestTest, UsbdRequestWait001, Function | MediumTest | Level1)
650 {
651 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
652 dev.busNum = BUS_NUM_1;
653 dev.devAddr = DEV_ADDR_2;
654 uint8_t pointid = POINTID_129;
655 uint8_t interfaceId = INTERFACEID_1;
656 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
657 HDF_LOGI("UsbdRequestTest::UsbdRequestWait001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
658 ASSERT_TRUE(ret == 0);
659 uint8_t buffer[LENGTH_NUM_255] = {};
660 uint32_t length = LENGTH_NUM_255;
661 uint8_t tag[TAG_LENGTH_NUM_1000] = "queue read";
662 struct UsbPipe pipe = {interfaceId, pointid};
663 std::vector<uint8_t> clientdata = {tag, tag + TAG_NUM_10};
664 std::vector<uint8_t> bufferdata = {buffer, buffer + length};
665 ret = UsbdClient::GetInstance().RequestQueue(dev, pipe, clientdata, bufferdata);
666 HDF_LOGI("UsbdRequestTest::UsbdRequestWait001 %{public}d RequestQueue=%{public}d", __LINE__, ret);
667 ASSERT_TRUE(ret == 0);
668 uint8_t *clientObj = new uint8_t[10];
669 std::vector<uint8_t> waitdata = {clientObj, clientObj + 10};
670 ret = UsbdClient::GetInstance().RequestWait(dev, waitdata, bufferdata, 10000);
671 HDF_LOGI("UsbdRequestTest::UsbdRequestWait001 %{public}d RequestWait=%{public}d", __LINE__, ret);
672 ASSERT_TRUE(ret == 0);
673 delete[] clientObj;
674 clientObj = nullptr;
675 }
676
677 /**
678 * @tc.name: UsbdRequest002
679 * @tc.desc: Test functions to RequestWait
680 * @tc.desc: int32_t RequestWait(const UsbDev &dev, std::vector<uint8_t> &clientData, std::vector<uint8_t> &buffer,
681 * int32_t timeout);
682 * @tc.type: FUNC
683 */
684 HWTEST_F(UsbdRequestTest, UsbdRequestWait002, Function | MediumTest | Level1)
685 {
686 uint8_t pointid = POINTID_129;
687 uint8_t interfaceId = INTERFACEID_1;
688 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
689 dev.busNum = BUS_NUM_1;
690 dev.devAddr = DEV_ADDR_2;
691 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
692 HDF_LOGI("UsbdRequestTest::UsbdRequestWait002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
693 ASSERT_TRUE(ret == 0);
694 uint8_t buffer[LENGTH_NUM_255] = {};
695 uint32_t length = LENGTH_NUM_255;
696 uint8_t tag[TAG_LENGTH_NUM_1000] = "queue read";
697 std::vector<uint8_t> clientdata = {tag, tag + TAG_NUM_10};
698 std::vector<uint8_t> bufferdata = {buffer, buffer + length};
699 struct UsbPipe pipe = {interfaceId, pointid};
700 ret = UsbdClient::GetInstance().RequestQueue(dev, pipe, clientdata, bufferdata);
701 HDF_LOGI("UsbdRequestTest::UsbdRequestWait002 %{public}d RequestQueue=%{public}d", __LINE__, ret);
702 ASSERT_TRUE(ret == 0);
703 dev.busNum = BUS_NUM_222;
704 uint8_t *clientObj = new uint8_t[10];
705 std::vector<uint8_t> waitdata = {clientObj, clientObj + 10};
706 ret = UsbdClient::GetInstance().RequestWait(dev, waitdata, bufferdata, 10000);
707 HDF_LOGI("UsbdRequestTest::UsbdRequestWait002 %{public}d RequestWait=%{public}d", __LINE__, ret);
708 ASSERT_TRUE(ret != 0);
709 delete[] clientObj;
710 clientObj = nullptr;
711 }
712
713 /**
714 * @tc.name: UsbdRequest004
715 * @tc.desc: Test functions to RequestWait
716 * @tc.desc: int32_t RequestWait(const UsbDev &dev, std::vector<uint8_t> &clientData, std::vector<uint8_t> &buffer,
717 * int32_t timeout);
718 * @tc.type: FUNC
719 */
720 HWTEST_F(UsbdRequestTest, UsbdRequestWait004, Function | MediumTest | Level1)
721 {
722 uint8_t pointid = POINTID_129;
723 uint8_t interfaceId = INTERFACEID_1;
724 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
725 dev.busNum = BUS_NUM_1;
726 dev.devAddr = DEV_ADDR_2;
727 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
728 HDF_LOGI("UsbdRequestTest::UsbdRequestWait004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
729 ASSERT_TRUE(ret == 0);
730 uint8_t buffer[LENGTH_NUM_255] = {};
731 uint8_t tag[TAG_LENGTH_NUM_1000] = "queue read";
732 uint32_t length = LENGTH_NUM_255;
733 std::vector<uint8_t> clientdata = {tag, tag + TAG_NUM_10};
734 struct UsbPipe pipe = {interfaceId, pointid};
735 std::vector<uint8_t> bufferdata = {buffer, buffer + length};
736 ret = UsbdClient::GetInstance().RequestQueue(dev, pipe, clientdata, bufferdata);
737 HDF_LOGI("UsbdRequestTest::UsbdRequestWait004 %{public}d RequestQueue=%{public}d", __LINE__, ret);
738 ASSERT_TRUE(ret == 0);
739 uint8_t *clientObj = new uint8_t[10];
740 std::vector<uint8_t> waitdata = {clientObj, clientObj + 10};
741 ret = UsbdClient::GetInstance().RequestWait(dev, waitdata, bufferdata, -10000);
742 HDF_LOGI("UsbdRequestTest::UsbdRequestWait004 %{public}d RequestWait=%{public}d", __LINE__, ret);
743 ASSERT_TRUE(ret == 0);
744 delete[] clientObj;
745 clientObj = nullptr;
746 }
747
748 /**
749 * @tc.name: UsbdRequest005
750 * @tc.desc: Test functions to RequestWait
751 * @tc.desc: int32_t RequestWait(const UsbDev &dev, std::vector<uint8_t> &clientData, std::vector<uint8_t> &buffer,
752 * int32_t timeout);
753 * @tc.type: FUNC
754 */
755 HWTEST_F(UsbdRequestTest, UsbdRequestWait005, Function | MediumTest | Level1)
756 {
757 uint8_t pointid = POINTID_129;
758 uint8_t interfaceId = INTERFACEID_1;
759 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
760 dev.busNum = BUS_NUM_1;
761 dev.devAddr = DEV_ADDR_2;
762 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
763 HDF_LOGI("UsbdRequestTest::UsbdRequestWait005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
764 ASSERT_TRUE(ret == 0);
765 uint32_t length = LENGTH_NUM_255;
766 uint8_t tag[TAG_LENGTH_NUM_1000] = "queue read";
767 uint8_t buffer[LENGTH_NUM_255] = {};
768 struct UsbPipe pipe = {interfaceId, pointid};
769 std::vector<uint8_t> clientdata = {tag, tag + TAG_NUM_10};
770 std::vector<uint8_t> bufferdata = {buffer, buffer + length};
771 ret = UsbdClient::GetInstance().RequestQueue(dev, pipe, clientdata, bufferdata);
772 HDF_LOGI("UsbdRequestTest::UsbdRequestWait005 %{public}d RequestQueue=%{public}d", __LINE__, ret);
773 ASSERT_TRUE(ret == 0);
774 uint8_t *clientObj = new uint8_t[10];
775 std::vector<uint8_t> waitdata = {clientObj, clientObj + 10};
776 dev.devAddr = DEV_ADDR_255;
777 dev.busNum = BUS_NUM_255;
778 ret = UsbdClient::GetInstance().RequestWait(dev, waitdata, bufferdata, 10000);
779 HDF_LOGI("UsbdRequestTest::UsbdRequestWait005 %{public}d RequestWait=%{public}d", __LINE__, ret);
780 ASSERT_TRUE(ret != 0);
781 delete[] clientObj;
782 clientObj = nullptr;
783 }
784
785 /**
786 * @tc.name: UsbdRequest001
787 * @tc.desc: Test functions to RequestCancel
788 * @tc.desc: int32_t RequestCancel(const UsbDev &dev, const UsbPipe &pipe);
789 * @tc.type: FUNC
790 */
791 HWTEST_F(UsbdRequestTest, UsbdRequestCancel001, Function | MediumTest | Level1)
792 {
793 uint8_t pointid = POINTID_129;
794 uint8_t interfaceId = INTERFACEID_1;
795 uint8_t tag[TAG_LENGTH_NUM_1000] = "queue read";
796 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
797 dev.busNum = BUS_NUM_1;
798 dev.devAddr = DEV_ADDR_2;
799 uint8_t buffer[LENGTH_NUM_255] = "request001";
800 uint32_t length = LENGTH_NUM_255;
801 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
802 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
803 EXPECT_TRUE(ret == 0);
804 struct UsbPipe pipe = {interfaceId, pointid};
805 std::vector<uint8_t> clientdata = {tag, tag + TAG_NUM_10};
806 std::vector<uint8_t> bufferdata = {buffer, buffer + length};
807 ret = UsbdClient::GetInstance().RequestQueue(dev, pipe, clientdata, bufferdata);
808 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel001 %{public}d RequestQueue=%{public}d", __LINE__, ret);
809 ASSERT_TRUE(ret == 0);
810 ret = UsbdClient::GetInstance().RequestCancel(dev, pipe);
811 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel001 %{public}d RequestCancel=%{public}d", __LINE__, ret);
812 ASSERT_TRUE(ret == 0);
813 }
814
815 /**
816 * @tc.name: UsbdRequest002
817 * @tc.desc: Test functions to RequestCancel
818 * @tc.desc: int32_t RequestCancel(const UsbDev &dev, const UsbPipe &pipe);
819 * @tc.type: FUNC
820 */
821 HWTEST_F(UsbdRequestTest, UsbdRequestCancel002, Function | MediumTest | Level1)
822 {
823 uint8_t tag[TAG_LENGTH_NUM_1000] = "queue read";
824 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
825 dev.busNum = BUS_NUM_1;
826 dev.devAddr = DEV_ADDR_2;
827 uint32_t length = LENGTH_NUM_255;
828 uint8_t pointid = POINTID_129;
829 uint8_t interfaceId = INTERFACEID_1;
830 uint8_t buffer[LENGTH_NUM_255] = "request002";
831 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
832 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
833 EXPECT_TRUE(ret == 0);
834 struct UsbPipe pipe = {interfaceId, pointid};
835 std::vector<uint8_t> clientdata = {tag, tag + TAG_NUM_10};
836 std::vector<uint8_t> bufferdata = {buffer, buffer + length};
837 ;
838 ret = UsbdClient::GetInstance().RequestQueue(dev, pipe, clientdata, bufferdata);
839 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel002 %{public}d RequestQueue=%{public}d", __LINE__, ret);
840 ASSERT_TRUE(ret == 0);
841 dev.busNum = BUS_NUM_222;
842 ret = UsbdClient::GetInstance().RequestCancel(dev, pipe);
843 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel002 %{public}d RequestCancel=%{public}d", __LINE__, ret);
844 ASSERT_TRUE(ret != 0);
845 dev.busNum = BUS_NUM_1;
846 ret = UsbdClient::GetInstance().RequestCancel(dev, pipe);
847 ASSERT_TRUE(ret == 0);
848 }
849
850 /**
851 * @tc.name: UsbdRequest004
852 * @tc.desc: Test functions to RequestCancel
853 * @tc.desc: int32_t RequestCancel(const UsbDev &dev, const UsbPipe &pipe);
854 * @tc.type: FUNC
855 */
856 HWTEST_F(UsbdRequestTest, UsbdRequestCancel004, Function | MediumTest | Level1)
857 {
858 uint8_t tag[TAG_LENGTH_NUM_1000] = "queue read";
859 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
860 dev.busNum = BUS_NUM_1;
861 dev.devAddr = DEV_ADDR_2;
862 uint32_t length = LENGTH_NUM_255;
863 uint8_t buffer[LENGTH_NUM_255] = "request004";
864 uint8_t pointid = POINTID_129;
865 uint8_t interfaceId = INTERFACEID_1;
866 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
867 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
868 EXPECT_TRUE(ret == 0);
869 struct UsbPipe pipe = {interfaceId, pointid};
870 std::vector<uint8_t> clientdata = {tag, tag + TAG_NUM_10};
871 std::vector<uint8_t> bufferdata = {buffer, buffer + length};
872 ret = UsbdClient::GetInstance().RequestQueue(dev, pipe, clientdata, bufferdata);
873 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel004 %{public}d RequestQueue=%{public}d", __LINE__, ret);
874 ASSERT_TRUE(ret == 0);
875 pipe.interfaceId = 222;
876 pipe.endpointId = 222;
877 ret = UsbdClient::GetInstance().RequestCancel(dev, pipe);
878 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel004 %{public}d RequestCancel=%{public}d", __LINE__, ret);
879 ASSERT_TRUE(ret == 0);
880 }
881
882 /**
883 * @tc.name: UsbdRequest005
884 * @tc.desc: Test functions to RequestCancel
885 * @tc.desc: int32_t RequestCancel(const UsbDev &dev, const UsbPipe &pipe);
886 * @tc.type: FUNC
887 */
888 HWTEST_F(UsbdRequestTest, UsbdRequestCancel005, Function | MediumTest | Level1)
889 {
890 struct UsbDev dev = {BUS_NUM_1, DEV_ADDR_2};
891 dev.busNum = BUS_NUM_1;
892 dev.devAddr = DEV_ADDR_2;
893 uint8_t buffer[LENGTH_NUM_255] = "request005";
894 uint32_t length = LENGTH_NUM_255;
895 uint8_t pointid = POINTID_1;
896 uint8_t interfaceId = INTERFACEID_1;
897 auto ret = UsbdClient::GetInstance().ClaimInterface(dev, interfaceId, true);
898 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
899 EXPECT_TRUE(ret == 0);
900 struct UsbPipe pipe = {interfaceId, pointid};
901 uint8_t tag[TAG_LENGTH_NUM_1000] = "queue Write";
902 std::vector<uint8_t> clientdata = {tag, tag + TAG_NUM_11};
903 std::vector<uint8_t> bufferdata = {buffer, buffer + length};
904 ret = UsbdClient::GetInstance().RequestQueue(dev, pipe, clientdata, bufferdata);
905 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel005 %{public}d RequestQueue=%{public}d", __LINE__, ret);
906 ASSERT_TRUE(ret == 0);
907 ret = UsbdClient::GetInstance().RequestCancel(dev, pipe);
908 HDF_LOGI("UsbdRequestTest::UsbdRequestCancel005 %{public}d RequestCancel=%{public}d", __LINE__, ret);
909 ASSERT_TRUE(ret == 0);
910 }
911
912 /**
913 * @tc.name: UsbdReleaseInterface001
914 * @tc.desc: Test functions to ReleaseInterface
915 * @tc.desc: int32_t ReleaseInterface(const UsbDev &dev, uint8_t interfaceId);
916 * @tc.type: FUNC
917 */
918 HWTEST_F(UsbdRequestTest, UsbdReleaseInterface001, Function | MediumTest | Level1)
919 {
920 uint8_t busNum = 1;
921 uint8_t devAddr = 2;
922 uint8_t interfaceId = INTERFACEID_1;
923 struct UsbDev dev = {busNum, devAddr};
924 auto ret = UsbdClient::GetInstance().ReleaseInterface(dev, interfaceId);
925 HDF_LOGI("UsbdRequestTest::UsbdReleaseInterface001 %{public}d ret=%{public}d", __LINE__, ret);
926 ASSERT_TRUE(ret == 0);
927 }
928
929 /**
930 * @tc.name: UsbdReleaseInterface002
931 * @tc.desc: Test functions to ReleaseInterface
932 * @tc.desc: int32_t ReleaseInterface(const UsbDev &dev, uint8_t interfaceId);
933 * @tc.type: FUNC
934 */
935 HWTEST_F(UsbdRequestTest, UsbdReleaseInterface002, Function | MediumTest | Level1)
936 {
937 uint8_t busNum = 25;
938 uint8_t devAddr = 2;
939 uint8_t interfaceId = INTERFACEID_1;
940 struct UsbDev dev = {busNum, devAddr};
941 auto ret = UsbdClient::GetInstance().ReleaseInterface(dev, interfaceId);
942 HDF_LOGI("UsbdRequestTest::UsbdReleaseInterface002 %{public}d ret=%{public}d", __LINE__, ret);
943 ASSERT_TRUE(ret != 0);
944 }
945