1 /*
2 * Copyright (c) 2021-2022 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 "usb_request_test.h"
17
18 #include <csignal>
19 #include <iostream>
20 #include <vector>
21
22 #include "if_system_ability_manager.h"
23 #include "ipc_skeleton.h"
24 #include "iservice_registry.h"
25 #include "iusb_srv.h"
26 #include "system_ability_definition.h"
27 #include "usb_common.h"
28 #include "usb_common_test.h"
29 #include "usb_device_pipe.h"
30 #include "usb_request.h"
31 #include "usb_srv_client.h"
32 #include "v1_0/usb_types.h"
33
34 using namespace testing::ext;
35 using namespace OHOS::USB;
36 using namespace OHOS;
37 using namespace std;
38 using namespace OHOS::USB::Common;
39
40 namespace OHOS {
41 namespace USB {
42 namespace Request {
43 constexpr int32_t SLEEP_TIME = 3;
44 constexpr int32_t TAG_SIZE = 50;
45 constexpr int32_t BUFFER_SIZE = 255;
46
SetUpTestCase(void)47 void UsbRequestTest::SetUpTestCase(void)
48 {
49 UsbCommonTest::GrantPermissionSysNative();
50 auto &srvClient = UsbSrvClient::GetInstance();
51 auto ret = srvClient.SetPortRole(1, 1, 1);
52 sleep(SLEEP_TIME);
53 USB_HILOGI(MODULE_USB_SERVICE, "UsbdRequestTest:: [Device] SetPortRole=%{public}d", ret);
54 ret = UsbCommonTest::SwitchErrCode(ret);
55 ASSERT_TRUE(ret == 0);
56 if (ret != 0) {
57 exit(0);
58 }
59 std::cout << "please connect device, press enter to continue" << std::endl;
60 int32_t c;
61 while ((c = getchar()) != '\n' && c != EOF) {
62 ;
63 }
64 USB_HILOGI(MODULE_USB_SERVICE, "Start UsbdRequestTest");
65 }
66
TearDownTestCase(void)67 void UsbRequestTest::TearDownTestCase(void)
68 {
69 USB_HILOGI(MODULE_USB_SERVICE, "End UsbdRequestTest");
70 }
71
SetUp(void)72 void UsbRequestTest::SetUp(void) {}
73
TearDown(void)74 void UsbRequestTest::TearDown(void) {}
75 /**
76 * @tc.name: UsbRequestInitialize001
77 * @tc.desc: Test functions of Initialize(const USBDevicePipe &pipe, const USBEndpoint &endpoint)
78 * @tc.type: FUNC
79 */
80 HWTEST_F(UsbRequestTest, UsbRequestInitialize001, TestSize.Level1)
81 {
82 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbRequestInitialize001 : Initialize");
83 vector<UsbDevice> delist;
84 auto &UsbSrvClient = UsbSrvClient::GetInstance();
85 auto ret = UsbSrvClient.GetDevices(delist);
86 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize001 %{public}d ret=%{public}d size:%{public}zu",
87 __LINE__, ret, delist.size());
88 ASSERT_EQ(ret, 0);
89 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
90 UsbDevice device;
91 bool hasDevice = false;
92 for (int32_t i = 0; i < delist.size(); i++) {
93 if (delist[i].GetClass() != 9) {
94 device = delist[i];
95 hasDevice = true;
96 }
97 }
98 EXPECT_TRUE(hasDevice);
99 UsbSrvClient.RequestRight(device.GetName());
100 USBDevicePipe pip;
101 ret = UsbSrvClient.OpenDevice(device, pip);
102 USB_HILOGI(
103 MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize001 %{public}d OpenDevice=%{public}d", __LINE__, ret);
104 ASSERT_EQ(ret, 0);
105 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
106 USBEndpoint point = interface.GetEndpoints().front();
107 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
108 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize001 %{public}d ClaimInterface=%{public}d",
109 __LINE__, ret);
110 ASSERT_EQ(ret, 0);
111 UsbRequest request;
112 uint8_t tag[TAG_SIZE] = "request read";
113 std::vector<uint8_t> cdata = {tag, tag + 12};
114 request.SetClientData(cdata);
115 ret = request.Initialize(pip, point);
116 USB_HILOGI(
117 MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize001 %{public}d Initialize=%{public}d ", __LINE__, ret);
118 ASSERT_EQ(ret, 0);
119 bool close = UsbSrvClient.Close(pip);
120 USB_HILOGI(
121 MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize001 %{public}d close=%{public}d", __LINE__, close);
122 EXPECT_TRUE(close);
123 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbRequestInitialize001 : Initialize");
124 }
125
126 /**
127 * @tc.name: UsbRequestInitialize002
128 * @tc.desc: Test functions of Initialize(const USBDevicePipe &pipe, const USBEndpoint &endpoint)
129 * @tc.type: FUNC
130 */
131 HWTEST_F(UsbRequestTest, UsbRequestInitialize002, TestSize.Level1)
132 {
133 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbRequestInitialize002 : Initialize");
134 vector<UsbDevice> delist;
135 auto &UsbSrvClient = UsbSrvClient::GetInstance();
136 auto ret = UsbSrvClient.GetDevices(delist);
137 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize002 %{public}d ret=%{public}d size:%{public}zu",
138 __LINE__, ret, delist.size());
139 ASSERT_EQ(ret, 0);
140 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
141 UsbDevice device;
142 bool hasDevice = false;
143 for (int32_t i = 0; i < delist.size(); i++) {
144 if (delist[i].GetClass() != 9) {
145 device = delist[i];
146 hasDevice = true;
147 }
148 }
149 EXPECT_TRUE(hasDevice);
150 UsbSrvClient.RequestRight(device.GetName());
151 USBDevicePipe pip;
152 ret = UsbSrvClient.OpenDevice(device, pip);
153 USB_HILOGI(
154 MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize002 %{public}d OpenDevice=%{public}d", __LINE__, ret);
155 ASSERT_EQ(ret, 0);
156 UsbRequest request;
157 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
158 USBEndpoint point = interface.GetEndpoints().at(1);
159 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
160 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize002 %{public}d ClaimInterface=%{public}d",
161 __LINE__, ret);
162 ASSERT_EQ(ret, 0);
163 uint8_t tag[TAG_SIZE] = "request write";
164 std::vector<uint8_t> cdata = {tag, tag + 13};
165 request.SetClientData(cdata);
166 uint8_t buffer[BUFFER_SIZE] = "usb request test!";
167 std::vector<uint8_t> bufferdata = {buffer, buffer + 17};
168 request.SetReqData(bufferdata);
169 ret = request.Initialize(pip, point);
170 USB_HILOGI(
171 MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize002 %{public}d Initialize=%{public}d ", __LINE__, ret);
172 ASSERT_EQ(ret, 0);
173 bool close = UsbSrvClient.Close(pip);
174 USB_HILOGI(
175 MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize002 %{public}d close=%{public}d", __LINE__, close);
176 EXPECT_TRUE(close);
177 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbRequestInitialize002 : Initialize");
178 }
179
180 /**
181 * @tc.name: UsbRequestInitialize003
182 * @tc.desc: Test functions of Initialize(const USBDevicePipe &pipe, const USBEndpoint &endpoint)
183 * @tc.type: FUNC
184 */
185 HWTEST_F(UsbRequestTest, UsbRequestInitialize003, TestSize.Level1)
186 {
187 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbRequestInitialize003 : Initialize");
188 vector<UsbDevice> delist;
189 auto &UsbSrvClient = UsbSrvClient::GetInstance();
190 auto ret = UsbSrvClient.GetDevices(delist);
191 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize003 %{public}d ret=%{public}d size:%{public}zu",
192 __LINE__, ret, delist.size());
193 ASSERT_EQ(ret, 0);
194 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
195 UsbDevice device;
196 bool hasDevice = false;
197 for (int32_t i = 0; i < delist.size(); i++) {
198 if (delist[i].GetClass() != 9) {
199 device = delist[i];
200 hasDevice = true;
201 }
202 }
203 EXPECT_TRUE(hasDevice);
204 UsbSrvClient.RequestRight(device.GetName());
205 USBDevicePipe pip;
206 ret = UsbSrvClient.OpenDevice(device, pip);
207 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize003 %{public}d ret=%{public}d ", __LINE__, ret);
208 ASSERT_EQ(ret, 0);
209 UsbRequest request;
210 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
211 USBEndpoint point = interface.GetEndpoints().at(0);
212 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
213 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize003 %{public}d ClaimInterface=%{public}d",
214 __LINE__, ret);
215 ASSERT_EQ(ret, 0);
216 uint8_t tag[TAG_SIZE] = "request read";
217 std::vector<uint8_t> cdata = {tag, tag + 12};
218 request.SetClientData(cdata);
219 pip.SetBusNum(BUFFER_SIZE);
220 ret = request.Initialize(pip, point);
221 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize003 %{public}d ret=%{public}d ", __LINE__, ret);
222 ASSERT_NE(ret, 0);
223 pip.SetBusNum(device.GetBusNum());
224 bool close = UsbSrvClient.Close(pip);
225 USB_HILOGI(
226 MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize003 %{public}d close=%{public}d", __LINE__, close);
227 EXPECT_TRUE(close);
228 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbRequestInitialize003 : Initialize");
229 }
230
231 /**
232 * @tc.name: UsbRequestInitialize004
233 * @tc.desc: Test functions of Initialize(const USBDevicePipe &pipe, const USBEndpoint &endpoint)
234 * @tc.type: FUNC
235 */
236 HWTEST_F(UsbRequestTest, UsbRequestInitialize004, TestSize.Level1)
237 {
238 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbRequestInitialize004 : Initialize");
239 vector<UsbDevice> delist;
240 auto &UsbSrvClient = UsbSrvClient::GetInstance();
241 auto ret = UsbSrvClient.GetDevices(delist);
242 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize004 %{public}d ret=%{public}d size:%{public}zu",
243 __LINE__, ret, delist.size());
244 ASSERT_EQ(ret, 0);
245 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
246 UsbDevice device;
247 bool hasDevice = false;
248 for (int32_t i = 0; i < delist.size(); i++) {
249 if (delist[i].GetClass() != 9) {
250 device = delist[i];
251 hasDevice = true;
252 }
253 }
254 EXPECT_TRUE(hasDevice);
255 UsbSrvClient.RequestRight(device.GetName());
256 USBDevicePipe pip;
257 ret = UsbSrvClient.OpenDevice(device, pip);
258 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize004 %{public}d ret=%{public}d ", __LINE__, ret);
259 ASSERT_EQ(ret, 0);
260 UsbRequest request;
261 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
262 USBEndpoint point = interface.GetEndpoints().at(0);
263 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
264 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize004 %{public}d ClaimInterface=%{public}d",
265 __LINE__, ret);
266 ASSERT_EQ(ret, 0);
267 uint8_t tag[TAG_SIZE] = "request read";
268 std::vector<uint8_t> cdata = {tag, tag + 12};
269 request.SetClientData(cdata);
270 pip.SetDevAddr(BUFFER_SIZE);
271 ret = request.Initialize(pip, point);
272 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize004 %{public}d ret=%{public}d ", __LINE__, ret);
273 ASSERT_NE(ret, 0);
274 pip.SetDevAddr(device.GetDevAddr());
275 bool close = UsbSrvClient.Close(pip);
276 USB_HILOGI(
277 MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize004 %{public}d close=%{public}d", __LINE__, close);
278 EXPECT_TRUE(close);
279 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbRequestInitialize004 : Initialize");
280 }
281
282 /**
283 * @tc.name: UsbRequestInitialize005
284 * @tc.desc: Test functions of Initialize(const USBDevicePipe &pipe, const USBEndpoint &endpoint)
285 * @tc.type: FUNC
286 */
287 HWTEST_F(UsbRequestTest, UsbRequestInitialize005, TestSize.Level1)
288 {
289 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbRequestInitialize005 : Initialize");
290 vector<UsbDevice> delist;
291 auto &UsbSrvClient = UsbSrvClient::GetInstance();
292 auto ret = UsbSrvClient.GetDevices(delist);
293 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize005 %{public}d ret=%{public}d size:%{public}zu",
294 __LINE__, ret, delist.size());
295 ASSERT_EQ(ret, 0);
296 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
297 UsbDevice device;
298 bool hasDevice = false;
299 for (int32_t i = 0; i < delist.size(); i++) {
300 if (delist[i].GetClass() != 9) {
301 device = delist[i];
302 hasDevice = true;
303 }
304 }
305 EXPECT_TRUE(hasDevice);
306 UsbSrvClient.RequestRight(device.GetName());
307 USBDevicePipe pip;
308 ret = UsbSrvClient.OpenDevice(device, pip);
309 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize005 %{public}d ret=%{public}d ", __LINE__, ret);
310 ASSERT_EQ(ret, 0);
311 UsbRequest request;
312 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
313 USBEndpoint point = interface.GetEndpoints().at(1);
314 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
315 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize005 %{public}d ClaimInterface=%{public}d",
316 __LINE__, ret);
317 ASSERT_EQ(ret, 0);
318 uint8_t tag[TAG_SIZE] = "request write";
319 std::vector<uint8_t> cdata = {tag, tag + 13};
320 request.SetClientData(cdata);
321 uint8_t buffer[BUFFER_SIZE] = "usb request test!";
322 std::vector<uint8_t> bufferdata = {buffer, buffer + 17};
323 request.SetReqData(bufferdata);
324 pip.SetBusNum(BUFFER_SIZE);
325 ret = request.Initialize(pip, point);
326 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize005 %{public}d ret=%{public}d ", __LINE__, ret);
327 ASSERT_NE(ret, 0);
328 pip.SetBusNum(device.GetBusNum());
329 bool close = UsbSrvClient.Close(pip);
330 USB_HILOGI(
331 MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize005 %{public}d close=%{public}d", __LINE__, close);
332 EXPECT_TRUE(close);
333 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbRequestInitialize005 : Initialize");
334 }
335
336 /**
337 * @tc.name: UsbRequestInitialize006
338 * @tc.desc: Test functions of Initialize(const USBDevicePipe &pipe, const USBEndpoint &endpoint)
339 * @tc.type: FUNC
340 */
341 HWTEST_F(UsbRequestTest, UsbRequestInitialize006, TestSize.Level1)
342 {
343 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbRequestInitialize006 : Initialize");
344 vector<UsbDevice> delist;
345 auto &UsbSrvClient = UsbSrvClient::GetInstance();
346 auto ret = UsbSrvClient.GetDevices(delist);
347 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize006 %{public}d ret=%{public}d size:%{public}zu",
348 __LINE__, ret, delist.size());
349 ASSERT_EQ(ret, 0);
350 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
351 UsbDevice device;
352 bool hasDevice = false;
353 for (int32_t i = 0; i < delist.size(); i++) {
354 if (delist[i].GetClass() != 9) {
355 device = delist[i];
356 hasDevice = true;
357 }
358 }
359 EXPECT_TRUE(hasDevice);
360 UsbSrvClient.RequestRight(device.GetName());
361 USBDevicePipe pip;
362 ret = UsbSrvClient.OpenDevice(device, pip);
363 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize006 %{public}d ret=%{public}d ", __LINE__, ret);
364 ASSERT_EQ(ret, 0);
365 UsbRequest request;
366 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
367 USBEndpoint point = interface.GetEndpoints().at(1);
368 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
369 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize006 %{public}d ClaimInterface=%{public}d",
370 __LINE__, ret);
371 ASSERT_EQ(ret, 0);
372 uint8_t tag[TAG_SIZE] = "request write";
373 std::vector<uint8_t> cdata = {tag, tag + 13};
374 request.SetClientData(cdata);
375 uint8_t buffer[BUFFER_SIZE] = "usb request test!";
376 std::vector<uint8_t> bufferdata = {buffer, buffer + 17};
377 request.SetReqData(bufferdata);
378 pip.SetDevAddr(BUFFER_SIZE);
379 ret = request.Initialize(pip, point);
380 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbRequestInitialize006 %{public}d ret=%{public}d ", __LINE__, ret);
381 ASSERT_NE(ret, 0);
382 pip.SetDevAddr(device.GetDevAddr());
383 bool close = UsbSrvClient.Close(pip);
384 USB_HILOGI(
385 MODULE_USB_SERVICE, "UsbRequestTest::UsbRequestInitialize006 %{public}d close=%{public}d", __LINE__, close);
386 EXPECT_TRUE(close);
387 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbRequestInitialize006 : Initialize");
388 }
389
390 /**
391 * @tc.name: UsbrequestQueue001
392 * @tc.desc: Test functions of RequestQueue(UsbRequest &request, uint8_t *buffer, uint32_t length)
393 * @tc.type: FUNC
394 */
395 HWTEST_F(UsbRequestTest, UsbrequestQueue001, TestSize.Level1)
396 {
397 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbrequestQueue001 : RequestQueue");
398 vector<UsbDevice> delist;
399 auto &UsbSrvClient = UsbSrvClient::GetInstance();
400 auto ret = UsbSrvClient.GetDevices(delist);
401 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue001 %{public}d ret=%{public}d size:%{public}zu",
402 __LINE__, ret, delist.size());
403 ASSERT_EQ(ret, 0);
404 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
405 UsbDevice device;
406 bool hasDevice = false;
407 for (int32_t i = 0; i < delist.size(); i++) {
408 if (delist[i].GetClass() != 9) {
409 device = delist[i];
410 hasDevice = true;
411 }
412 }
413 EXPECT_TRUE(hasDevice);
414 UsbSrvClient.RequestRight(device.GetName());
415 USBDevicePipe pip;
416 ret = UsbSrvClient.OpenDevice(device, pip);
417 USB_HILOGI(
418 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue001 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
419 ASSERT_EQ(ret, 0);
420 UsbRequest request;
421 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
422 USBEndpoint point = interface.GetEndpoints().at(0);
423 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
424 USB_HILOGI(
425 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
426 ASSERT_EQ(ret, 0);
427 uint8_t buffer[BUFFER_SIZE] = "request queue read001";
428 std::vector<uint8_t> cdata = {buffer, buffer + 21};
429 request.SetClientData(cdata);
430 uint8_t buffer1[BUFFER_SIZE] = {0};
431 std::vector<uint8_t> bufferdata = {buffer1, buffer1 + 17};
432 request.SetReqData(bufferdata);
433 ret = request.Initialize(pip, point);
434 USB_HILOGI(
435 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue001 %{public}d initialize=%{public}d ", __LINE__, ret);
436 ASSERT_EQ(ret, 0);
437 ret = UsbSrvClient.RequestQueue(request);
438 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue001 %{public}d queue=%{public}d ", __LINE__, ret);
439 ASSERT_EQ(ret, 0);
440 bool close = UsbSrvClient.Close(pip);
441 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue001 %{public}d close=%{public}d", __LINE__, close);
442 EXPECT_TRUE(close);
443 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbrequestQueue001 : RequestQueue");
444 }
445
446 /**
447 * @tc.name: UsbrequestQueue002
448 * @tc.desc: Test functions of RequestQueue(UsbRequest &request, uint8_t *buffer, uint32_t length)
449 * @tc.type: FUNC
450 */
451 HWTEST_F(UsbRequestTest, UsbrequestQueue002, TestSize.Level1)
452 {
453 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbrequestQueue002 : RequestQueue");
454 vector<UsbDevice> delist;
455 auto &UsbSrvClient = UsbSrvClient::GetInstance();
456 auto ret = UsbSrvClient.GetDevices(delist);
457 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue002 %{public}d ret=%{public}d size:%{public}zu",
458 __LINE__, ret, delist.size());
459 ASSERT_EQ(ret, 0);
460 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
461 UsbDevice device;
462 bool hasDevice = false;
463 for (int32_t i = 0; i < delist.size(); i++) {
464 if (delist[i].GetClass() != 9) {
465 device = delist[i];
466 hasDevice = true;
467 }
468 }
469 EXPECT_TRUE(hasDevice);
470 UsbSrvClient.RequestRight(device.GetName());
471 USBDevicePipe pip;
472 ret = UsbSrvClient.OpenDevice(device, pip);
473 USB_HILOGI(
474 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue002 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
475 ASSERT_EQ(ret, 0);
476 UsbRequest request;
477 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
478 USBEndpoint point = interface.GetEndpoints().at(1);
479 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
480 USB_HILOGI(
481 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
482 ASSERT_EQ(ret, 0);
483 uint8_t buffer[BUFFER_SIZE] = "request queue write 002";
484 std::vector<uint8_t> cdata = {buffer, buffer + 23};
485 request.SetClientData(cdata);
486 uint8_t buffer1[BUFFER_SIZE] = "usb request test!";
487 std::vector<uint8_t> bufferdata = {buffer1, buffer1 + 17};
488 request.SetReqData(bufferdata);
489 ret = request.Initialize(pip, point);
490 USB_HILOGI(
491 MODULE_USB_SERVICE, "UsbRequestTest:UsbrequestQueue002 %{public}d initialize=%{public}d ", __LINE__, ret);
492 ASSERT_EQ(ret, 0);
493 ret = UsbSrvClient.RequestQueue(request);
494 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:UsbrequestQueue002 %{public}d queue=%{public}d ", __LINE__, ret);
495 ASSERT_EQ(ret, 0);
496 bool close = UsbSrvClient.Close(pip);
497 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue002 %{public}d close=%{public}d", __LINE__, close);
498 EXPECT_TRUE(close);
499 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbrequestQueue002 : RequestQueue");
500 }
501
502 /**
503 * @tc.name: UsbrequestQueue003
504 * @tc.desc: Test functions of RequestQueue(UsbRequest &request, uint8_t *buffer, uint32_t length)
505 * @tc.type: FUNC
506 */
507 HWTEST_F(UsbRequestTest, UsbrequestQueue003, TestSize.Level1)
508 {
509 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbrequestQueue003 : RequestQueue");
510 vector<UsbDevice> delist;
511 auto &UsbSrvClient = UsbSrvClient::GetInstance();
512 auto ret = UsbSrvClient.GetDevices(delist);
513 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue003 %{public}d ret=%{public}d size:%{public}zu",
514 __LINE__, ret, delist.size());
515 ASSERT_EQ(ret, 0);
516 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
517 UsbDevice device;
518 bool hasDevice = false;
519 for (int32_t i = 0; i < delist.size(); i++) {
520 if (delist[i].GetClass() != 9) {
521 device = delist[i];
522 hasDevice = true;
523 }
524 }
525 EXPECT_TRUE(hasDevice);
526 UsbSrvClient.RequestRight(device.GetName());
527 USBDevicePipe pip;
528 ret = UsbSrvClient.OpenDevice(device, pip);
529 USB_HILOGI(
530 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue003 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
531 ASSERT_EQ(ret, 0);
532 UsbRequest request;
533 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
534 USBEndpoint point = interface.GetEndpoints().at(0);
535 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
536 USB_HILOGI(
537 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
538 ASSERT_EQ(ret, 0);
539 uint8_t buffer[BUFFER_SIZE] = "request queue read003";
540 std::vector<uint8_t> cdata = {buffer, buffer + 21};
541 request.SetClientData(cdata);
542 uint8_t buffer1[BUFFER_SIZE] = {0};
543 std::vector<uint8_t> bufferdata = {buffer1, buffer1 + 17};
544 request.SetReqData(bufferdata);
545 ret = request.Initialize(pip, point);
546 USB_HILOGI(
547 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue003 %{public}d initialize=%{public}d ", __LINE__, ret);
548 ASSERT_EQ(ret, 0);
549 pip.SetBusNum(BUFFER_SIZE);
550 request.SetPipe(pip);
551 ret = UsbSrvClient.RequestQueue(request);
552 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue003 %{public}d queue=%{public}d ", __LINE__, ret);
553 ASSERT_NE(ret, 0);
554 pip.SetBusNum(device.GetBusNum());
555 bool close = UsbSrvClient.Close(pip);
556 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue003 %{public}d close=%{public}d", __LINE__, close);
557 EXPECT_TRUE(close);
558 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbrequestQueue003 : RequestQueue");
559 }
560
561 /**
562 * @tc.name: UsbrequestQueue004
563 * @tc.desc: Test functions of RequestQueue(UsbRequest &request, uint8_t *buffer, uint32_t length)
564 * @tc.type: FUNC
565 */
566 HWTEST_F(UsbRequestTest, UsbrequestQueue004, TestSize.Level1)
567 {
568 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbrequestQueue004 : RequestQueue");
569 vector<UsbDevice> delist;
570 auto &UsbSrvClient = UsbSrvClient::GetInstance();
571 auto ret = UsbSrvClient.GetDevices(delist);
572 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue004 %{public}d ret=%{public}d size:%{public}zu",
573 __LINE__, ret, delist.size());
574 ASSERT_EQ(ret, 0);
575 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
576 UsbDevice device;
577 bool hasDevice = false;
578 for (int32_t i = 0; i < delist.size(); i++) {
579 if (delist[i].GetClass() != 9) {
580 device = delist[i];
581 hasDevice = true;
582 }
583 }
584 EXPECT_TRUE(hasDevice);
585 UsbSrvClient.RequestRight(device.GetName());
586 USBDevicePipe pip;
587 ret = UsbSrvClient.OpenDevice(device, pip);
588 USB_HILOGI(
589 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue004 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
590 ASSERT_EQ(ret, 0);
591 UsbRequest request;
592 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
593 USBEndpoint point = interface.GetEndpoints().at(0);
594 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
595 USB_HILOGI(
596 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
597 ASSERT_EQ(ret, 0);
598 uint8_t buffer[BUFFER_SIZE] = "request queue read004";
599 std::vector<uint8_t> cdata = {buffer, buffer + 21};
600 request.SetClientData(cdata);
601 uint8_t buffer1[BUFFER_SIZE] = {0};
602 std::vector<uint8_t> bufferdata = {buffer1, buffer1 + 17};
603 request.SetReqData(bufferdata);
604 ret = request.Initialize(pip, point);
605 USB_HILOGI(
606 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue004 %{public}d initialize=%{public}d ", __LINE__, ret);
607 ASSERT_EQ(ret, 0);
608 pip.SetDevAddr(BUFFER_SIZE);
609 request.SetPipe(pip);
610 ret = UsbSrvClient.RequestQueue(request);
611 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue004 %{public}d queue=%{public}d ", __LINE__, ret);
612 ASSERT_NE(ret, 0);
613 pip.SetDevAddr(device.GetDevAddr());
614 bool close = UsbSrvClient.Close(pip);
615 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue004 %{public}d close=%{public}d", __LINE__, close);
616 EXPECT_TRUE(close);
617 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbrequestQueue004 : RequestQueue");
618 }
619
620 /**
621 * @tc.name: UsbrequestQueue005
622 * @tc.desc: Test functions of RequestQueue(UsbRequest &request, uint8_t *buffer, uint32_t length)
623 * @tc.type: FUNC
624 */
625 HWTEST_F(UsbRequestTest, UsbrequestQueue005, TestSize.Level1)
626 {
627 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbrequestQueue005 : RequestQueue");
628 vector<UsbDevice> delist;
629 auto &UsbSrvClient = UsbSrvClient::GetInstance();
630 auto ret = UsbSrvClient.GetDevices(delist);
631 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue005 %{public}d ret=%{public}d size:%{public}zu",
632 __LINE__, ret, delist.size());
633 ASSERT_EQ(ret, 0);
634 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
635 UsbDevice device;
636 bool hasDevice = false;
637 for (int32_t i = 0; i < delist.size(); i++) {
638 if (delist[i].GetClass() != 9) {
639 device = delist[i];
640 hasDevice = true;
641 }
642 }
643 EXPECT_TRUE(hasDevice);
644 UsbSrvClient.RequestRight(device.GetName());
645 USBDevicePipe pip;
646 ret = UsbSrvClient.OpenDevice(device, pip);
647 USB_HILOGI(
648 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue005 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
649 ASSERT_EQ(ret, 0);
650 UsbRequest request;
651 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
652 USBEndpoint point = interface.GetEndpoints().at(1);
653 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
654 USB_HILOGI(
655 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
656 ASSERT_EQ(ret, 0);
657 uint8_t buffer[BUFFER_SIZE] = "request queue write005";
658 std::vector<uint8_t> cdata = {buffer, buffer + 22};
659 request.SetClientData(cdata);
660 uint8_t buffer1[BUFFER_SIZE] = "usb request test!";
661 std::vector<uint8_t> databuffer = {buffer1, buffer1 + 17};
662 request.SetReqData(databuffer);
663 ret = request.Initialize(pip, point);
664 USB_HILOGI(
665 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue005 %{public}d initialize=%{public}d ", __LINE__, ret);
666 ASSERT_EQ(ret, 0);
667 pip.SetBusNum(BUFFER_SIZE);
668 request.SetPipe(pip);
669 ret = UsbSrvClient.RequestQueue(request);
670 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue005 %{public}d queue=%{public}d ", __LINE__, ret);
671 ASSERT_NE(ret, 0);
672 pip.SetBusNum(device.GetBusNum());
673 bool close = UsbSrvClient.Close(pip);
674 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue005 %{public}d close=%{public}d", __LINE__, close);
675 EXPECT_TRUE(close);
676 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbrequestQueue005 : RequestQueue");
677 }
678
679 /**
680 * @tc.name: UsbrequestQueue006
681 * @tc.desc: Test functions of RequestQueue(UsbRequest &request, uint8_t *buffer, uint32_t length)
682 * @tc.type: FUNC
683 */
684 HWTEST_F(UsbRequestTest, UsbrequestQueue006, TestSize.Level1)
685 {
686 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbrequestQueue006 : RequestQueue");
687 vector<UsbDevice> delist;
688 auto &UsbSrvClient = UsbSrvClient::GetInstance();
689 auto ret = UsbSrvClient.GetDevices(delist);
690 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue006 %{public}d ret=%{public}d size:%{public}zu",
691 __LINE__, ret, delist.size());
692 ASSERT_EQ(ret, 0);
693 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
694 UsbDevice device;
695 bool hasDevice = false;
696 for (int32_t i = 0; i < delist.size(); i++) {
697 if (delist[i].GetClass() != 9) {
698 device = delist[i];
699 hasDevice = true;
700 }
701 }
702 EXPECT_TRUE(hasDevice);
703 UsbSrvClient.RequestRight(device.GetName());
704 USBDevicePipe pip;
705 ret = UsbSrvClient.OpenDevice(device, pip);
706 USB_HILOGI(
707 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue006 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
708 ASSERT_EQ(ret, 0);
709 UsbRequest request;
710 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
711 USBEndpoint point = interface.GetEndpoints().at(1);
712 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
713 USB_HILOGI(
714 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue006 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
715 ASSERT_EQ(ret, 0);
716 uint8_t buffer[BUFFER_SIZE] = "request queue write006";
717 std::vector<uint8_t> cdata = {buffer, buffer + 22};
718 request.SetClientData(cdata);
719 uint8_t buffer1[BUFFER_SIZE] = "usb request test!";
720 std::vector<uint8_t> databuffer = {buffer1, buffer1 + 17};
721 request.SetReqData(databuffer);
722 ret = request.Initialize(pip, point);
723 USB_HILOGI(
724 MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue006 %{public}d initialize=%{public}d ", __LINE__, ret);
725 ASSERT_EQ(ret, 0);
726 pip.SetDevAddr(BUFFER_SIZE);
727 request.SetPipe(pip);
728 ret = UsbSrvClient.RequestQueue(request);
729 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue006 %{public}d queue=%{public}d ", __LINE__, ret);
730 ASSERT_NE(ret, 0);
731 pip.SetDevAddr(device.GetDevAddr());
732 bool close = UsbSrvClient.Close(pip);
733 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbrequestQueue006 %{public}d close=%{public}d", __LINE__, close);
734 EXPECT_TRUE(close);
735 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbrequestQueue006 : RequestQueue");
736 }
737
738 /**
739 * @tc.name: Usbrequestfree001
740 * @tc.desc: Test functions of RequestFree(UsbRequest &request);
741 * @tc.type: FUNC
742 */
743 HWTEST_F(UsbRequestTest, Usbrequestfree001, TestSize.Level1)
744 {
745 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestfree001 : RequestQueue");
746 vector<UsbDevice> delist;
747 auto &UsbSrvClient = UsbSrvClient::GetInstance();
748 auto ret = UsbSrvClient.GetDevices(delist);
749 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree001 %{public}d ret=%{public}d size:%{public}zu",
750 __LINE__, ret, delist.size());
751 ASSERT_EQ(ret, 0);
752 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
753 UsbDevice device;
754 bool hasDevice = false;
755 for (int32_t i = 0; i < delist.size(); i++) {
756 if (delist[i].GetClass() != 9) {
757 device = delist[i];
758 hasDevice = true;
759 }
760 }
761 EXPECT_TRUE(hasDevice);
762 UsbSrvClient.RequestRight(device.GetName());
763 USBDevicePipe pip;
764 ret = UsbSrvClient.OpenDevice(device, pip);
765 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree001 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
766 ASSERT_EQ(ret, 0);
767 UsbRequest request;
768 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
769 USBEndpoint point = interface.GetEndpoints().at(0);
770 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
771 USB_HILOGI(
772 MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
773 ASSERT_EQ(ret, 0);
774 uint8_t tag[TAG_SIZE] = "request free 001";
775 std::vector<uint8_t> cdata = {tag, tag + 16};
776 request.SetClientData(cdata);
777 ret = request.Initialize(pip, point);
778 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree001 %{public}d initialize=%{public}d ", __LINE__, ret);
779 ASSERT_EQ(ret, 0);
780 ret = UsbSrvClient.RequestFree(request);
781 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree001 %{public}d free=%{public}d ", __LINE__, ret);
782 ASSERT_EQ(ret, 0);
783 bool close = UsbSrvClient.Close(pip);
784 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree001 %{public}d close=%{public}d", __LINE__, close);
785 EXPECT_TRUE(close);
786 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestfree001 : RequestFree");
787 }
788
789 /**
790 * @tc.name: Usbrequestfree002
791 * @tc.desc: Test functions of RequestFree(UsbRequest &request);
792 * @tc.type: FUNC
793 */
794 HWTEST_F(UsbRequestTest, Usbrequestfree002, TestSize.Level1)
795 {
796 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestfree002 : RequestQueue");
797 vector<UsbDevice> delist;
798 auto &UsbSrvClient = UsbSrvClient::GetInstance();
799 auto ret = UsbSrvClient.GetDevices(delist);
800 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree002 %{public}d ret=%{public}d size:%{public}zu",
801 __LINE__, ret, delist.size());
802 ASSERT_EQ(ret, 0);
803 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
804 UsbDevice device;
805 bool hasDevice = false;
806 for (int32_t i = 0; i < delist.size(); i++) {
807 if (delist[i].GetClass() != 9) {
808 device = delist[i];
809 hasDevice = true;
810 }
811 }
812 EXPECT_TRUE(hasDevice);
813 UsbSrvClient.RequestRight(device.GetName());
814 USBDevicePipe pip;
815 ret = UsbSrvClient.OpenDevice(device, pip);
816 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree002 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
817 ASSERT_EQ(ret, 0);
818 UsbRequest request;
819 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
820 USBEndpoint point = interface.GetEndpoints().at(0);
821 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
822 USB_HILOGI(
823 MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
824 ASSERT_EQ(ret, 0);
825 uint8_t tag[TAG_SIZE] = "request free 002";
826 std::vector<uint8_t> cdata = {tag, tag + 16};
827 request.SetClientData(cdata);
828 ret = request.Initialize(pip, point);
829 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree002 %{public}d initialize=%{public}d ", __LINE__, ret);
830 ASSERT_EQ(ret, 0);
831 pip.SetBusNum(BUFFER_SIZE);
832 request.SetPipe(pip);
833 ret = UsbSrvClient.RequestFree(request);
834 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree002 %{public}d free=%{public}d ", __LINE__, ret);
835 ASSERT_NE(ret, 0);
836 pip.SetBusNum(device.GetBusNum());
837 bool close = UsbSrvClient.Close(pip);
838 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree002 %{public}d close=%{public}d", __LINE__, close);
839 EXPECT_TRUE(close);
840 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestfree002 : RequestFree");
841 }
842
843 /**
844 * @tc.name: Usbrequestfree003
845 * @tc.desc: Test functions of RequestFree(UsbRequest &request);
846 * @tc.type: FUNC
847 */
848 HWTEST_F(UsbRequestTest, Usbrequestfree003, TestSize.Level1)
849 {
850 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestfree003 : RequestQueue");
851 vector<UsbDevice> delist;
852 auto &UsbSrvClient = UsbSrvClient::GetInstance();
853 auto ret = UsbSrvClient.GetDevices(delist);
854 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree003 %{public}d ret=%{public}d size:%{public}zu",
855 __LINE__, ret, delist.size());
856 ASSERT_EQ(ret, 0);
857 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
858 UsbDevice device;
859 bool hasDevice = false;
860 for (int32_t i = 0; i < delist.size(); i++) {
861 if (delist[i].GetClass() != 9) {
862 device = delist[i];
863 hasDevice = true;
864 }
865 }
866 EXPECT_TRUE(hasDevice);
867 UsbSrvClient.RequestRight(device.GetName());
868 USBDevicePipe pip;
869 ret = UsbSrvClient.OpenDevice(device, pip);
870 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree003 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
871 ASSERT_EQ(ret, 0);
872 UsbRequest request;
873 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
874 USBEndpoint point = interface.GetEndpoints().at(0);
875 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
876 USB_HILOGI(
877 MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
878 ASSERT_EQ(ret, 0);
879 uint8_t tag[TAG_SIZE] = "request free 003";
880 std::vector<uint8_t> cdata = {tag, tag + 16};
881 request.SetClientData(cdata);
882 ret = request.Initialize(pip, point);
883 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree003 %{public}d initialize=%{public}d ", __LINE__, ret);
884 ASSERT_EQ(ret, 0);
885 pip.SetDevAddr(BUFFER_SIZE);
886 request.SetPipe(pip);
887 ret = UsbSrvClient.RequestFree(request);
888 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree003 %{public}d free=%{public}d ", __LINE__, ret);
889 ASSERT_NE(ret, 0);
890 pip.SetDevAddr(device.GetDevAddr());
891 bool close = UsbSrvClient.Close(pip);
892 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree003 %{public}d close=%{public}d", __LINE__, close);
893 EXPECT_TRUE(close);
894 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestfree003 : RequestFree");
895 }
896
897 /**
898 * @tc.name: Usbrequestfree004
899 * @tc.desc: Test functions of RequestFree(UsbRequest &request);
900 * @tc.type: FUNC
901 */
902 HWTEST_F(UsbRequestTest, Usbrequestfree004, TestSize.Level1)
903 {
904 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestfree004 : Requestfree");
905 vector<UsbDevice> delist;
906 auto &UsbSrvClient = UsbSrvClient::GetInstance();
907 auto ret = UsbSrvClient.GetDevices(delist);
908 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree004 %{public}d ret=%{public}d size:%{public}zu",
909 __LINE__, ret, delist.size());
910 ASSERT_EQ(ret, 0);
911 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
912 UsbDevice device;
913 bool hasDevice = false;
914 for (int32_t i = 0; i < delist.size(); i++) {
915 if (delist[i].GetClass() != 9) {
916 device = delist[i];
917 hasDevice = true;
918 }
919 }
920 EXPECT_TRUE(hasDevice);
921 UsbSrvClient.RequestRight(device.GetName());
922 USBDevicePipe pip;
923 ret = UsbSrvClient.OpenDevice(device, pip);
924 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree004 %{public}d OpenDevice=%{public}d", __LINE__, ret);
925 ASSERT_EQ(ret, 0);
926 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
927 UsbRequest request;
928 USBEndpoint point = interface.GetEndpoints().at(1);
929 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
930 USB_HILOGI(
931 MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree004 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
932 ASSERT_EQ(ret, 0);
933 uint8_t tag[TAG_SIZE] = "request free 004";
934 std::vector<uint8_t> cdata = {tag, tag + 16};
935 request.SetClientData(cdata);
936 uint8_t buffer[BUFFER_SIZE] = "usb request test!";
937 std::vector<uint8_t> databuffer = {buffer, buffer + 17};
938 request.SetReqData(databuffer);
939 ret = request.Initialize(pip, point);
940 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree004 %{public}d initialize=%{public}d ", __LINE__, ret);
941 ASSERT_EQ(ret, 0);
942 ret = UsbSrvClient.RequestFree(request);
943 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree004 %{public}d free=%{public}d ", __LINE__, ret);
944 ASSERT_EQ(ret, 0);
945 bool close = UsbSrvClient.Close(pip);
946 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree004 %{public}d close=%{public}d", __LINE__, close);
947 EXPECT_TRUE(close);
948 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestfree004 : Requestfree");
949 }
950
951 /**
952 * @tc.name: Usbrequestfree005
953 * @tc.desc: Test functions of RequestFree(UsbRequest &request);
954 * @tc.type: FUNC
955 */
956 HWTEST_F(UsbRequestTest, Usbrequestfree005, TestSize.Level1)
957 {
958 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestfree005 : RequestQueue");
959 vector<UsbDevice> delist;
960 auto &UsbSrvClient = UsbSrvClient::GetInstance();
961 auto ret = UsbSrvClient.GetDevices(delist);
962 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree005 %{public}d ret=%{public}d size:%{public}zu",
963 __LINE__, ret, delist.size());
964 ASSERT_EQ(ret, 0);
965 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
966 UsbDevice device;
967 bool hasDevice = false;
968 for (int32_t i = 0; i < delist.size(); i++) {
969 if (delist[i].GetClass() != 9) {
970 device = delist[i];
971 hasDevice = true;
972 }
973 }
974 EXPECT_TRUE(hasDevice);
975 UsbSrvClient.RequestRight(device.GetName());
976 USBDevicePipe pip;
977 ret = UsbSrvClient.OpenDevice(device, pip);
978 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree005 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
979 ASSERT_EQ(ret, 0);
980 UsbRequest request;
981 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
982 USBEndpoint point = interface.GetEndpoints().at(1);
983 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
984 USB_HILOGI(
985 MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree005 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
986 ASSERT_EQ(ret, 0);
987 uint8_t tag[TAG_SIZE] = "request free 005";
988 std::vector<uint8_t> cdata = {tag, tag + 16};
989 request.SetClientData(cdata);
990 uint8_t buffer[BUFFER_SIZE] = "usb request test!";
991 std::vector<uint8_t> databuffer = {buffer, buffer + 17};
992 request.SetReqData(databuffer);
993 ret = request.Initialize(pip, point);
994 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree005 %{public}d initialize=%{public}d ", __LINE__, ret);
995 ASSERT_EQ(ret, 0);
996 pip.SetBusNum(BUFFER_SIZE);
997 request.SetPipe(pip);
998 ret = UsbSrvClient.RequestFree(request);
999 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree005 %{public}d free=%{public}d ", __LINE__, ret);
1000 ASSERT_NE(ret, 0);
1001 pip.SetBusNum(device.GetBusNum());
1002 bool close = UsbSrvClient.Close(pip);
1003 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree005 %{public}d close=%{public}d", __LINE__, close);
1004 EXPECT_TRUE(close);
1005 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestfree005 : RequestFree");
1006 }
1007
1008 /**
1009 * @tc.name: Usbrequestfree006
1010 * @tc.desc: Test functions of RequestFree(UsbRequest &request);
1011 * @tc.type: FUNC
1012 */
1013 HWTEST_F(UsbRequestTest, Usbrequestfree006, TestSize.Level1)
1014 {
1015 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestfree006 : RequestQueue");
1016 vector<UsbDevice> delist;
1017 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1018 auto ret = UsbSrvClient.GetDevices(delist);
1019 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree006 %{public}d ret=%{public}d size:%{public}zu",
1020 __LINE__, ret, delist.size());
1021 ASSERT_EQ(ret, 0);
1022 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1023 UsbDevice device;
1024 bool hasDevice = false;
1025 for (int32_t i = 0; i < delist.size(); i++) {
1026 if (delist[i].GetClass() != 9) {
1027 device = delist[i];
1028 hasDevice = true;
1029 }
1030 }
1031 EXPECT_TRUE(hasDevice);
1032 UsbSrvClient.RequestRight(device.GetName());
1033 USBDevicePipe pip;
1034 ret = UsbSrvClient.OpenDevice(device, pip);
1035 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree006 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
1036 ASSERT_EQ(ret, 0);
1037 UsbRequest request;
1038 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1039 USBEndpoint point = interface.GetEndpoints().at(1);
1040 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1041 USB_HILOGI(
1042 MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree006 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1043 ASSERT_EQ(ret, 0);
1044 uint8_t tag[TAG_SIZE] = "request free 006";
1045 std::vector<uint8_t> cdata = {tag, tag + 16};
1046 request.SetClientData(cdata);
1047 uint8_t buffer[BUFFER_SIZE] = "usb request test!";
1048 std::vector<uint8_t> databuffer = {buffer, buffer + 17};
1049 request.SetReqData(databuffer);
1050 ret = request.Initialize(pip, point);
1051 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree006 %{public}d initialize=%{public}d ", __LINE__, ret);
1052 ASSERT_EQ(ret, 0);
1053 pip.SetDevAddr(BUFFER_SIZE);
1054 request.SetPipe(pip);
1055 ret = UsbSrvClient.RequestFree(request);
1056 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestfree006 %{public}d free=%{public}d ", __LINE__, ret);
1057 ASSERT_NE(ret, 0);
1058 pip.SetDevAddr(device.GetDevAddr());
1059 bool close = UsbSrvClient.Close(pip);
1060 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestfree006 %{public}d close=%{public}d", __LINE__, close);
1061 EXPECT_TRUE(close);
1062 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestfree006 : RequestFree");
1063 }
1064
1065 /**
1066 * @tc.name: Usbrequestabort001
1067 * @tc.desc: Test functions of RequestAbort(request)
1068 * @tc.type: FUNC
1069 */
1070 HWTEST_F(UsbRequestTest, Usbrequestabort001, TestSize.Level1)
1071 {
1072 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestabort001 : Requestabort");
1073 vector<UsbDevice> delist;
1074 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1075 auto ret = UsbSrvClient.GetDevices(delist);
1076 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort001 %{public}d ret=%{public}d size:%{public}zu",
1077 __LINE__, ret, delist.size());
1078 ASSERT_EQ(ret, 0);
1079 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1080 UsbDevice device;
1081 bool hasDevice = false;
1082 for (int32_t i = 0; i < delist.size(); i++) {
1083 if (delist[i].GetClass() != 9) {
1084 device = delist[i];
1085 hasDevice = true;
1086 }
1087 }
1088 EXPECT_TRUE(hasDevice);
1089 UsbSrvClient.RequestRight(device.GetName());
1090 USBDevicePipe pip;
1091 ret = UsbSrvClient.OpenDevice(device, pip);
1092 USB_HILOGI(
1093 MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort001 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
1094 ASSERT_EQ(ret, 0);
1095 UsbRequest request;
1096 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1097 USBEndpoint point = interface.GetEndpoints().at(0);
1098 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1099 USB_HILOGI(
1100 MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestabort001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1101 ASSERT_EQ(ret, 0);
1102 uint8_t tag[TAG_SIZE] = "hello world request013";
1103 std::vector<uint8_t> cdata = {tag, tag + 22};
1104 request.SetClientData(cdata);
1105 ret = request.Initialize(pip, point);
1106 USB_HILOGI(
1107 MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort001 %{public}d initialize=%{public}d ", __LINE__, ret);
1108 ASSERT_EQ(ret, 0);
1109 uint8_t buffer[BUFFER_SIZE] = "request abort 001";
1110 std::vector<uint8_t> databuffer = {buffer, buffer + 17};
1111 request.SetReqData(databuffer);
1112 ret = UsbSrvClient.RequestQueue(request);
1113 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort001 %{public}d queue=%{public}d ", __LINE__, ret);
1114 ASSERT_EQ(ret, 0);
1115 ret = UsbSrvClient.RequestAbort(request);
1116 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort001 %{public}d Abort=%{public}d ", __LINE__, ret);
1117 ASSERT_EQ(ret, 0);
1118 bool close = UsbSrvClient.Close(pip);
1119 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestabort001 %{public}d close=%{public}d", __LINE__, close);
1120 EXPECT_TRUE(close);
1121 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestabort001 : Requestabort");
1122 }
1123
1124 /**
1125 * @tc.name: Usbrequestabort002
1126 * @tc.desc: Test functions of RequestAbort(request)
1127 * @tc.type: FUNC
1128 */
1129 HWTEST_F(UsbRequestTest, Usbrequestabort002, TestSize.Level1)
1130 {
1131 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestabort002 : Requestabort");
1132 vector<UsbDevice> delist;
1133 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1134 auto ret = UsbSrvClient.GetDevices(delist);
1135 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort002 %{public}d ret=%{public}d size:%{public}zu",
1136 __LINE__, ret, delist.size());
1137 ASSERT_EQ(ret, 0);
1138 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1139 UsbDevice device;
1140 bool hasDevice = false;
1141 for (int32_t i = 0; i < delist.size(); i++) {
1142 if (delist[i].GetClass() != 9) {
1143 device = delist[i];
1144 hasDevice = true;
1145 }
1146 }
1147 EXPECT_TRUE(hasDevice);
1148 UsbSrvClient.RequestRight(device.GetName());
1149 USBDevicePipe pip;
1150 ret = UsbSrvClient.OpenDevice(device, pip);
1151 USB_HILOGI(
1152 MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort002 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
1153 ASSERT_EQ(ret, 0);
1154 UsbRequest request;
1155 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1156 USBEndpoint point = interface.GetEndpoints().at(0);
1157 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1158 USB_HILOGI(
1159 MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestabort002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1160 ASSERT_EQ(ret, 0);
1161 uint8_t tag[TAG_SIZE] = "request abort 002";
1162 std::vector<uint8_t> cdata = {tag, tag + 17};
1163 request.SetClientData(cdata);
1164 uint8_t buffer1[BUFFER_SIZE] = {0};
1165 std::vector<uint8_t> bufferdata = {buffer1, buffer1 + 17};
1166 request.SetReqData(bufferdata);
1167 ret = request.Initialize(pip, point);
1168 USB_HILOGI(
1169 MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort002 %{public}d initialize=%{public}d ", __LINE__, ret);
1170 ASSERT_EQ(ret, 0);
1171 ret = UsbSrvClient.RequestQueue(request);
1172 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort002 %{public}d queue=%{public}d ", __LINE__, ret);
1173 ASSERT_EQ(ret, 0);
1174 pip.SetBusNum(BUFFER_SIZE);
1175 request.SetPipe(pip);
1176 ret = UsbSrvClient.RequestAbort(request);
1177 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort002 %{public}d Abort=%{public}d ", __LINE__, ret);
1178 ASSERT_NE(ret, 0);
1179 pip.SetBusNum(device.GetBusNum());
1180 bool close = UsbSrvClient.Close(pip);
1181 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestabort002 %{public}d close=%{public}d", __LINE__, close);
1182 EXPECT_TRUE(close);
1183 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestabort002 : Requestabort");
1184 }
1185
1186 /**
1187 * @tc.name: Usbrequestabort003
1188 * @tc.desc: Test functions of RequestAbort(request)
1189 * @tc.type: FUNC
1190 */
1191 HWTEST_F(UsbRequestTest, Usbrequestabort003, TestSize.Level1)
1192 {
1193 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestabort003 : Requestabort");
1194 vector<UsbDevice> delist;
1195 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1196 auto ret = UsbSrvClient.GetDevices(delist);
1197 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort003 %{public}d ret=%{public}d size:%{public}zu",
1198 __LINE__, ret, delist.size());
1199 ASSERT_EQ(ret, 0);
1200 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1201 UsbDevice device;
1202 bool hasDevice = false;
1203 for (int32_t i = 0; i < delist.size(); i++) {
1204 if (delist[i].GetClass() != 9) {
1205 device = delist[i];
1206 hasDevice = true;
1207 }
1208 }
1209 EXPECT_TRUE(hasDevice);
1210 UsbSrvClient.RequestRight(device.GetName());
1211 USBDevicePipe pip;
1212 ret = UsbSrvClient.OpenDevice(device, pip);
1213 USB_HILOGI(
1214 MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort003 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
1215 ASSERT_EQ(ret, 0);
1216 UsbRequest request;
1217 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1218 USBEndpoint point = interface.GetEndpoints().at(0);
1219 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1220 USB_HILOGI(
1221 MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestabort003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1222 ASSERT_EQ(ret, 0);
1223 uint8_t tag[TAG_SIZE] = "request abort 003";
1224 std::vector<uint8_t> cdata = {tag, tag + 17};
1225 request.SetClientData(cdata);
1226 uint8_t buffer1[BUFFER_SIZE] = {0};
1227 std::vector<uint8_t> bufferdata = {buffer1, buffer1 + 17};
1228 request.SetReqData(bufferdata);
1229 ret = request.Initialize(pip, point);
1230 USB_HILOGI(
1231 MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort003 %{public}d initialize=%{public}d ", __LINE__, ret);
1232 ASSERT_EQ(ret, 0);
1233 ret = UsbSrvClient.RequestQueue(request);
1234 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort003 %{public}d queue=%{public}d ", __LINE__, ret);
1235 ASSERT_EQ(ret, 0);
1236 pip.SetDevAddr(BUFFER_SIZE);
1237 request.SetPipe(pip);
1238 ret = UsbSrvClient.RequestAbort(request);
1239 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort003 %{public}d Abort=%{public}d ", __LINE__, ret);
1240 ASSERT_NE(ret, 0);
1241 pip.SetDevAddr(device.GetDevAddr());
1242 bool close = UsbSrvClient.Close(pip);
1243 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestabort003 %{public}d close=%{public}d", __LINE__, close);
1244 EXPECT_TRUE(close);
1245 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestabort003 : Requestabort");
1246 }
1247
1248 /**
1249 * @tc.name: Usbrequestabort004
1250 * @tc.desc: Test functions of RequestAbort(request)
1251 * @tc.type: FUNC
1252 */
1253 HWTEST_F(UsbRequestTest, Usbrequestabort004, TestSize.Level1)
1254 {
1255 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestabort004 : Requestabort");
1256 vector<UsbDevice> delist;
1257 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1258 auto ret = UsbSrvClient.GetDevices(delist);
1259 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort004 %{public}d ret=%{public}d size:%{public}zu",
1260 __LINE__, ret, delist.size());
1261 ASSERT_EQ(ret, 0);
1262 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1263 UsbDevice device;
1264 bool hasDevice = false;
1265 for (int32_t i = 0; i < delist.size(); i++) {
1266 if (delist[i].GetClass() != 9) {
1267 device = delist[i];
1268 hasDevice = true;
1269 }
1270 }
1271 EXPECT_TRUE(hasDevice);
1272 UsbSrvClient.RequestRight(device.GetName());
1273 USBDevicePipe pip;
1274 ret = UsbSrvClient.OpenDevice(device, pip);
1275 USB_HILOGI(
1276 MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort004 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
1277 ASSERT_EQ(ret, 0);
1278 UsbRequest request;
1279 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1280 USBEndpoint point = interface.GetEndpoints().at(1);
1281 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort004 %{public}d GetDirection=%{public}d ", __LINE__,
1282 point.GetDirection());
1283 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort004 %{public}d GetInterfaceId=%{public}d ", __LINE__,
1284 point.GetInterfaceId());
1285 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1286 ASSERT_EQ(ret, 0);
1287 uint8_t tag[TAG_SIZE] = "hello world request013";
1288 std::vector<uint8_t> cdata = {tag, tag + 22};
1289 request.SetClientData(cdata);
1290 ret = request.Initialize(pip, point);
1291 ASSERT_EQ(ret, 0);
1292 uint8_t buffer[BUFFER_SIZE] = "request abort 004";
1293 std::vector<uint8_t> databuffer = {buffer, buffer + 17};
1294 request.SetReqData(databuffer);
1295 ret = UsbSrvClient.RequestQueue(request);
1296 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort004 %{public}d queue=%{public}d ", __LINE__, ret);
1297 ASSERT_EQ(ret, 0);
1298 ret = UsbSrvClient.RequestAbort(request);
1299 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort004 %{public}d abort=%{public}d ", __LINE__, ret);
1300 ASSERT_EQ(ret, 0);
1301 bool close = UsbSrvClient.Close(pip);
1302 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestabort004 %{public}d close=%{public}d", __LINE__, close);
1303 EXPECT_TRUE(close);
1304 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestabort004 : Requestabort");
1305 }
1306
1307 /**
1308 * @tc.name: Usbrequestabort005
1309 * @tc.desc: Test functions of RequestAbort(request)
1310 * @tc.type: FUNC
1311 */
1312 HWTEST_F(UsbRequestTest, Usbrequestabort005, TestSize.Level1)
1313 {
1314 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestabort005 : Requestabort");
1315 vector<UsbDevice> delist;
1316 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1317 auto ret = UsbSrvClient.GetDevices(delist);
1318 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort005 %{public}d ret=%{public}d size:%{public}zu",
1319 __LINE__, ret, delist.size());
1320 ASSERT_EQ(ret, 0);
1321 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1322 UsbDevice device;
1323 bool hasDevice = false;
1324 for (int32_t i = 0; i < delist.size(); i++) {
1325 if (delist[i].GetClass() != 9) {
1326 device = delist[i];
1327 hasDevice = true;
1328 }
1329 }
1330 EXPECT_TRUE(hasDevice);
1331 UsbSrvClient.RequestRight(device.GetName());
1332 USBDevicePipe pip;
1333 ret = UsbSrvClient.OpenDevice(device, pip);
1334 USB_HILOGI(
1335 MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort005 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
1336 ASSERT_EQ(ret, 0);
1337 UsbRequest request;
1338 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1339 USBEndpoint point = interface.GetEndpoints().at(1);
1340 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1341 ASSERT_EQ(ret, 0);
1342 uint8_t tag[TAG_SIZE] = "request abort 005";
1343 std::vector<uint8_t> cdata = {tag, tag + 17};
1344 request.SetClientData(cdata);
1345 ret = request.Initialize(pip, point);
1346 ASSERT_EQ(ret, 0);
1347 uint8_t buffer[BUFFER_SIZE] = "usb request test 005";
1348 std::vector<uint8_t> databuffer = {buffer, buffer + 20};
1349 request.SetReqData(databuffer);
1350 ret = UsbSrvClient.RequestQueue(request);
1351 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort005 %{public}d queue=%{public}d ", __LINE__, ret);
1352 ASSERT_EQ(ret, 0);
1353 pip.SetBusNum(BUFFER_SIZE);
1354 request.SetPipe(pip);
1355 ret = UsbSrvClient.RequestAbort(request);
1356 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort005 %{public}d Abort=%{public}d ", __LINE__, ret);
1357 ASSERT_NE(ret, 0);
1358 pip.SetBusNum(device.GetBusNum());
1359 bool close = UsbSrvClient.Close(pip);
1360 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestabort005 %{public}d close=%{public}d", __LINE__, close);
1361 EXPECT_TRUE(close);
1362 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestabort005 : Requestabort");
1363 }
1364
1365 /**
1366 * @tc.name: Usbrequestabort006
1367 * @tc.desc: Test functions of RequestAbort(request)
1368 * @tc.type: FUNC
1369 */
1370 HWTEST_F(UsbRequestTest, Usbrequestabort006, TestSize.Level1)
1371 {
1372 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestabort006 : Requestabort");
1373 vector<UsbDevice> delist;
1374 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1375 auto ret = UsbSrvClient.GetDevices(delist);
1376 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort006 %{public}d ret=%{public}d size:%{public}zu",
1377 __LINE__, ret, delist.size());
1378 ASSERT_EQ(ret, 0);
1379 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1380 UsbDevice device;
1381 bool hasDevice = false;
1382 for (int32_t i = 0; i < delist.size(); i++) {
1383 if (delist[i].GetClass() != 9) {
1384 device = delist[i];
1385 hasDevice = true;
1386 }
1387 }
1388 EXPECT_TRUE(hasDevice);
1389 UsbSrvClient.RequestRight(device.GetName());
1390 USBDevicePipe pip;
1391 ret = UsbSrvClient.OpenDevice(device, pip);
1392 USB_HILOGI(
1393 MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort006 %{public}d OpenDevice=%{public}d ", __LINE__, ret);
1394 ASSERT_EQ(ret, 0);
1395 UsbRequest request;
1396 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1397 USBEndpoint point = interface.GetEndpoints().at(1);
1398 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1399 ASSERT_EQ(ret, 0);
1400 uint8_t tag[TAG_SIZE] = "request abort 006";
1401 std::vector<uint8_t> cdata = {tag, tag + 17};
1402 request.SetClientData(cdata);
1403 ret = request.Initialize(pip, point);
1404 ASSERT_EQ(ret, 0);
1405 uint8_t buffer[BUFFER_SIZE] = "usb request test 006";
1406 std::vector<uint8_t> databuffer = {buffer, buffer + 20};
1407 request.SetReqData(databuffer);
1408 ret = UsbSrvClient.RequestQueue(request);
1409 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort006 %{public}d queue=%{public}d ", __LINE__, ret);
1410 ASSERT_EQ(ret, 0);
1411 pip.SetDevAddr(BUFFER_SIZE);
1412 request.SetPipe(pip);
1413 ret = UsbSrvClient.RequestAbort(request);
1414 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort006 %{public}d Abort=%{public}d ", __LINE__, ret);
1415 ASSERT_NE(ret, 0);
1416 pip.SetDevAddr(device.GetDevAddr());
1417 bool close = UsbSrvClient.Close(pip);
1418 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestabort006 %{public}d close=%{public}d", __LINE__, close);
1419 EXPECT_TRUE(close);
1420 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestabort006 : Requestabort");
1421 }
1422
1423 /**
1424 * @tc.name: PipeRequestWait001
1425 * @tc.desc: Test functions of PipeRequestWait(USBDevicePipe &pip, int64_t timeout, UsbRequest &req)
1426 * @tc.type: FUNC
1427 */
1428 HWTEST_F(UsbRequestTest, PipeRequestWait001, TestSize.Level1)
1429 {
1430 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : PipeRequestWait001 : Initialize");
1431 vector<UsbDevice> delist;
1432 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1433 auto ret = UsbSrvClient.GetDevices(delist);
1434 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:PipeRequestWait001 %{public}d ret=%{public}d size:%{public}zu",
1435 __LINE__, ret, delist.size());
1436 ASSERT_EQ(ret, 0);
1437 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1438 UsbDevice device;
1439 bool hasDevice = false;
1440 for (int32_t i = 0; i < delist.size(); i++) {
1441 if (delist[i].GetClass() != 9) {
1442 device = delist[i];
1443 hasDevice = true;
1444 }
1445 }
1446 EXPECT_TRUE(hasDevice);
1447 UsbSrvClient.RequestRight(device.GetName());
1448 USBDevicePipe pip;
1449 ret = UsbSrvClient.OpenDevice(device, pip);
1450 USB_HILOGI(
1451 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait001 %{public}d OpenDevice=%{public}d", __LINE__, ret);
1452 ASSERT_EQ(ret, 0);
1453 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1454 USBEndpoint point = interface.GetEndpoints().front();
1455 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1456 USB_HILOGI(
1457 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait001 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1458 ASSERT_EQ(ret, 0);
1459 UsbRequest request;
1460 uint8_t tag[TAG_SIZE] = "request wait 001";
1461 std::vector<uint8_t> cdata = {tag, tag + 16};
1462 request.SetClientData(cdata);
1463 uint8_t buffer1[BUFFER_SIZE] = {0};
1464 std::vector<uint8_t> bufferdata = {buffer1, buffer1 + 17};
1465 request.SetReqData(bufferdata);
1466 ret = request.Initialize(pip, point);
1467 USB_HILOGI(
1468 MODULE_USB_SERVICE, "UsbRequestTest:Usbrequestabort006 %{public}d initialize=%{public}d ", __LINE__, ret);
1469 ASSERT_EQ(ret, 0);
1470 ret = UsbSrvClient.RequestQueue(request);
1471 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait002 %{public}d queue=%{public}d ", __LINE__, ret);
1472 ASSERT_EQ(ret, 0);
1473 UsbRequest reqwait;
1474 ret = UsbSrvClient.PipeRequestWait(pip, 5000, reqwait);
1475 USB_HILOGI(
1476 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait001 %{public}d PipeRequestWait=%{public}d", __LINE__, ret);
1477 ASSERT_EQ(ret, 0);
1478 bool close = UsbSrvClient.Close(pip);
1479 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait001 %{public}d close=%{public}d", __LINE__, close);
1480 EXPECT_TRUE(close);
1481 USB_HILOGI(MODULE_USB_SERVICE, "Case End : PipeRequestWait001 : Initialize");
1482 }
1483
1484 /**
1485 * @tc.name: PipeRequestWait002
1486 * @tc.desc: Test functions of PipeRequestWait(USBDevicePipe &pip, int64_t timeout, UsbRequest &req)
1487 * @tc.type: FUNC
1488 */
1489 HWTEST_F(UsbRequestTest, PipeRequestWait002, TestSize.Level1)
1490 {
1491 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : PipeRequestWait002 : Initialize");
1492 vector<UsbDevice> delist;
1493 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1494 auto ret = UsbSrvClient.GetDevices(delist);
1495 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:PipeRequestWait002 %{public}d ret=%{public}d size:%{public}zu",
1496 __LINE__, ret, delist.size());
1497 ASSERT_EQ(ret, 0);
1498 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1499 UsbDevice device;
1500 bool hasDevice = false;
1501 for (int32_t i = 0; i < delist.size(); i++) {
1502 if (delist[i].GetClass() != 9) {
1503 device = delist[i];
1504 hasDevice = true;
1505 }
1506 }
1507 EXPECT_TRUE(hasDevice);
1508 UsbSrvClient.RequestRight(device.GetName());
1509 USBDevicePipe pip;
1510 ret = UsbSrvClient.OpenDevice(device, pip);
1511 USB_HILOGI(
1512 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait002 %{public}d OpenDevice=%{public}d", __LINE__, ret);
1513 ASSERT_EQ(ret, 0);
1514 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1515 USBEndpoint point = interface.GetEndpoints().front();
1516 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1517 USB_HILOGI(
1518 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait002 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1519 ASSERT_EQ(ret, 0);
1520 UsbRequest request;
1521 uint8_t tag[TAG_SIZE] = "request wait 002";
1522 std::vector<uint8_t> cdata = {tag, tag + 16};
1523 request.SetClientData(cdata);
1524 uint8_t buffer1[BUFFER_SIZE] = {0};
1525 std::vector<uint8_t> bufferdata = {buffer1, buffer1 + 17};
1526 request.SetReqData(bufferdata);
1527 ret = request.Initialize(pip, point);
1528 USB_HILOGI(
1529 MODULE_USB_SERVICE, "UsbRequestTest:PipeRequestWait002 %{public}d initialize=%{public}d ", __LINE__, ret);
1530 ASSERT_EQ(ret, 0);
1531 ret = UsbSrvClient.RequestQueue(request);
1532 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait002 %{public}d queue=%{public}d ", __LINE__, ret);
1533 ASSERT_EQ(ret, 0);
1534 UsbRequest reqwait;
1535 pip.SetBusNum(BUFFER_SIZE);
1536 ret = UsbSrvClient.PipeRequestWait(pip, 5000, reqwait);
1537 USB_HILOGI(
1538 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait002 %{public}d PipeRequestWait=%{public}d", __LINE__, ret);
1539 ASSERT_NE(ret, 0);
1540 pip.SetBusNum(device.GetBusNum());
1541 bool close = UsbSrvClient.Close(pip);
1542 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait002 %{public}d close=%{public}d", __LINE__, close);
1543 EXPECT_TRUE(close);
1544 USB_HILOGI(MODULE_USB_SERVICE, "Case End : PipeRequestWait002 : Initialize");
1545 }
1546
1547 /**
1548 * @tc.name: PipeRequestWait003
1549 * @tc.desc: Test functions of PipeRequestWait(USBDevicePipe &pip, int64_t timeout, UsbRequest &req)
1550 * @tc.type: FUNC
1551 */
1552 HWTEST_F(UsbRequestTest, PipeRequestWait003, TestSize.Level1)
1553 {
1554 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : PipeRequestWait003 : Initialize");
1555 vector<UsbDevice> delist;
1556 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1557 auto ret = UsbSrvClient.GetDevices(delist);
1558 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:PipeRequestWait003 %{public}d ret=%{public}d size:%{public}zu",
1559 __LINE__, ret, delist.size());
1560 ASSERT_EQ(ret, 0);
1561 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1562 UsbDevice device;
1563 bool hasDevice = false;
1564 for (int32_t i = 0; i < delist.size(); i++) {
1565 if (delist[i].GetClass() != 9) {
1566 device = delist[i];
1567 hasDevice = true;
1568 }
1569 }
1570 EXPECT_TRUE(hasDevice);
1571 UsbSrvClient.RequestRight(device.GetName());
1572 USBDevicePipe pip;
1573 ret = UsbSrvClient.OpenDevice(device, pip);
1574 USB_HILOGI(
1575 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait003 %{public}d OpenDevice=%{public}d", __LINE__, ret);
1576 ASSERT_EQ(ret, 0);
1577 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1578 USBEndpoint point = interface.GetEndpoints().front();
1579 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1580 USB_HILOGI(
1581 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait003 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1582 ASSERT_EQ(ret, 0);
1583 UsbRequest request;
1584 uint8_t tag[TAG_SIZE] = "request wait 003";
1585 std::vector<uint8_t> cdata = {tag, tag + 16};
1586 request.SetClientData(cdata);
1587 uint8_t buffer1[BUFFER_SIZE] = {0};
1588 std::vector<uint8_t> bufferdata = {buffer1, buffer1 + 17};
1589 request.SetReqData(bufferdata);
1590 ret = request.Initialize(pip, point);
1591 USB_HILOGI(
1592 MODULE_USB_SERVICE, "UsbRequestTest:PipeRequestWait003 %{public}d initialize=%{public}d ", __LINE__, ret);
1593 ASSERT_EQ(ret, 0);
1594 ret = UsbSrvClient.RequestQueue(request);
1595 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait003 %{public}d queue=%{public}d ", __LINE__, ret);
1596 ASSERT_EQ(ret, 0);
1597 UsbRequest reqwait;
1598 pip.SetDevAddr(BUFFER_SIZE);
1599 ret = UsbSrvClient.PipeRequestWait(pip, 5000, reqwait);
1600 USB_HILOGI(
1601 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait003 %{public}d PipeRequestWait=%{public}d", __LINE__, ret);
1602 ASSERT_NE(ret, 0);
1603 pip.SetDevAddr(device.GetDevAddr());
1604 bool close = UsbSrvClient.Close(pip);
1605 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait003 %{public}d close=%{public}d", __LINE__, close);
1606 EXPECT_TRUE(close);
1607 USB_HILOGI(MODULE_USB_SERVICE, "Case End : PipeRequestWait003 : Initialize");
1608 }
1609
1610 /**
1611 * @tc.name: PipeRequestWait004
1612 * @tc.desc: Test functions of PipeRequestWait(USBDevicePipe &pip, int64_t timeout, UsbRequest &req)
1613 * @tc.type: FUNC
1614 */
1615 HWTEST_F(UsbRequestTest, PipeRequestWait004, TestSize.Level1)
1616 {
1617 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : PipeRequestWait004 : Initialize");
1618 vector<UsbDevice> delist;
1619 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1620 auto ret = UsbSrvClient.GetDevices(delist);
1621 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:PipeRequestWait004 %{public}d ret=%{public}d size:%{public}zu",
1622 __LINE__, ret, delist.size());
1623 ASSERT_EQ(ret, 0);
1624 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1625 UsbDevice device;
1626 bool hasDevice = false;
1627 for (int32_t i = 0; i < delist.size(); i++) {
1628 if (delist[i].GetClass() != 9) {
1629 device = delist[i];
1630 hasDevice = true;
1631 }
1632 }
1633 EXPECT_TRUE(hasDevice);
1634 UsbSrvClient.RequestRight(device.GetName());
1635 USBDevicePipe pip;
1636 ret = UsbSrvClient.OpenDevice(device, pip);
1637 USB_HILOGI(
1638 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait004 %{public}d OpenDevice=%{public}d", __LINE__, ret);
1639 ASSERT_EQ(ret, 0);
1640 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1641 USBEndpoint point = interface.GetEndpoints().at(1);
1642 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1643 ASSERT_EQ(ret, 0);
1644 UsbRequest request;
1645 uint8_t tag[TAG_SIZE] = "request wait 004";
1646 std::vector<uint8_t> cdata = {tag, tag + 16};
1647 request.SetClientData(cdata);
1648 ret = request.Initialize(pip, point);
1649 USB_HILOGI(
1650 MODULE_USB_SERVICE, "UsbRequestTest:PipeRequestWait004 %{public}d initialize=%{public}d ", __LINE__, ret);
1651 ASSERT_EQ(ret, 0);
1652 uint8_t buffer[BUFFER_SIZE] = "usb request wait test004";
1653 std::vector<uint8_t> databuffer = {buffer, buffer + 24};
1654 request.SetReqData(databuffer);
1655 ret = UsbSrvClient.RequestQueue(request);
1656 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait004 %{public}d queue=%{public}d ", __LINE__, ret);
1657 ASSERT_EQ(ret, 0);
1658 UsbRequest reqwait;
1659 ret = UsbSrvClient.PipeRequestWait(pip, 5000, reqwait);
1660 USB_HILOGI(
1661 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait004 %{public}d PipeRequestWait=%{public}d", __LINE__, ret);
1662 ASSERT_EQ(ret, 0);
1663 bool close = UsbSrvClient.Close(pip);
1664 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait004 %{public}d close=%{public}d", __LINE__, close);
1665 EXPECT_TRUE(close);
1666 USB_HILOGI(MODULE_USB_SERVICE, "Case End : PipeRequestWait004 : Initialize");
1667 }
1668
1669 /**
1670 * @tc.name: PipeRequestWait005
1671 * @tc.desc: Test functions of PipeRequestWait(USBDevicePipe &pip, int64_t timeout, UsbRequest &req)
1672 * @tc.type: FUNC
1673 */
1674 HWTEST_F(UsbRequestTest, PipeRequestWait005, TestSize.Level1)
1675 {
1676 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : PipeRequestWait005 : Initialize");
1677 vector<UsbDevice> delist;
1678 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1679 auto ret = UsbSrvClient.GetDevices(delist);
1680 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:PipeRequestWait005 %{public}d ret=%{public}d size:%{public}zu",
1681 __LINE__, ret, delist.size());
1682 ASSERT_EQ(ret, 0);
1683 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1684 UsbDevice device;
1685 bool hasDevice = false;
1686 for (int32_t i = 0; i < delist.size(); i++) {
1687 if (delist[i].GetClass() != 9) {
1688 device = delist[i];
1689 hasDevice = true;
1690 }
1691 }
1692 EXPECT_TRUE(hasDevice);
1693 UsbSrvClient.RequestRight(device.GetName());
1694 USBDevicePipe pip;
1695 ret = UsbSrvClient.OpenDevice(device, pip);
1696 USB_HILOGI(
1697 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait005 %{public}d OpenDevice=%{public}d", __LINE__, ret);
1698 ASSERT_EQ(ret, 0);
1699 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1700 USBEndpoint point = interface.GetEndpoints().at(1);
1701 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1702 ASSERT_EQ(ret, 0);
1703 UsbRequest request;
1704 uint8_t tag[TAG_SIZE] = "request wait 005";
1705 std::vector<uint8_t> cdata = {tag, tag + 16};
1706 request.SetClientData(cdata);
1707 ret = request.Initialize(pip, point);
1708 ASSERT_EQ(ret, 0);
1709 uint8_t buffer[BUFFER_SIZE] = "usb request wait test005";
1710 std::vector<uint8_t> databuffer = {buffer, buffer + 24};
1711 request.SetReqData(databuffer);
1712 ret = UsbSrvClient.RequestQueue(request);
1713 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait005 %{public}d queue=%{public}d ", __LINE__, ret);
1714 ASSERT_EQ(ret, 0);
1715 UsbRequest reqwait;
1716 pip.SetBusNum(BUFFER_SIZE);
1717 ret = UsbSrvClient.PipeRequestWait(pip, 5000, reqwait);
1718 USB_HILOGI(
1719 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait005 %{public}d PipeRequestWait=%{public}d", __LINE__, ret);
1720 ASSERT_NE(ret, 0);
1721 pip.SetBusNum(device.GetBusNum());
1722 bool close = UsbSrvClient.Close(pip);
1723 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait005 %{public}d close=%{public}d", __LINE__, close);
1724 EXPECT_TRUE(close);
1725 USB_HILOGI(MODULE_USB_SERVICE, "Case End : PipeRequestWait005 : Initialize");
1726 }
1727
1728 /**
1729 * @tc.name: PipeRequestWait006
1730 * @tc.desc: Test functions of PipeRequestWait(USBDevicePipe &pip, int64_t timeout, UsbRequest &req)
1731 * @tc.type: FUNC
1732 */
1733 HWTEST_F(UsbRequestTest, PipeRequestWait006, TestSize.Level1)
1734 {
1735 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : PipeRequestWait006 : Initialize");
1736 vector<UsbDevice> delist;
1737 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1738 auto ret = UsbSrvClient.GetDevices(delist);
1739 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest:PipeRequestWait006 %{public}d ret=%{public}d size:%{public}zu",
1740 __LINE__, ret, delist.size());
1741 ASSERT_EQ(ret, 0);
1742 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1743 UsbDevice device;
1744 bool hasDevice = false;
1745 for (int32_t i = 0; i < delist.size(); i++) {
1746 if (delist[i].GetClass() != 9) {
1747 device = delist[i];
1748 hasDevice = true;
1749 }
1750 }
1751 EXPECT_TRUE(hasDevice);
1752 UsbSrvClient.RequestRight(device.GetName());
1753 USBDevicePipe pip;
1754 ret = UsbSrvClient.OpenDevice(device, pip);
1755 USB_HILOGI(
1756 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait006 %{public}d OpenDevice=%{public}d", __LINE__, ret);
1757 ASSERT_EQ(ret, 0);
1758 UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
1759 USBEndpoint point = interface.GetEndpoints().at(1);
1760 ret = UsbSrvClient.ClaimInterface(pip, interface, true);
1761 USB_HILOGI(
1762 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait006 %{public}d ClaimInterface=%{public}d", __LINE__, ret);
1763 ASSERT_EQ(ret, 0);
1764 UsbRequest request;
1765 uint8_t tag[TAG_SIZE] = "request abort 006";
1766 std::vector<uint8_t> cdata = {tag, tag + 16};
1767 request.SetClientData(cdata);
1768 ret = request.Initialize(pip, point);
1769 ASSERT_EQ(ret, 0);
1770 uint8_t buffer[BUFFER_SIZE] = "usb request wait test006";
1771 std::vector<uint8_t> databuffer = {buffer, buffer + 24};
1772 request.SetReqData(databuffer);
1773 ret = UsbSrvClient.RequestQueue(request);
1774 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait006 %{public}d queue=%{public}d ", __LINE__, ret);
1775 ASSERT_EQ(ret, 0);
1776 UsbRequest reqwait;
1777 pip.SetDevAddr(BUFFER_SIZE);
1778 ret = UsbSrvClient.PipeRequestWait(pip, 5000, reqwait);
1779 USB_HILOGI(
1780 MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait006 %{public}d PipeRequestWait=%{public}d", __LINE__, ret);
1781 ASSERT_NE(ret, 0);
1782 pip.SetDevAddr(device.GetDevAddr());
1783 bool close = UsbSrvClient.Close(pip);
1784 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::PipeRequestWait006 %{public}d close=%{public}d", __LINE__, close);
1785 EXPECT_TRUE(close);
1786 USB_HILOGI(MODULE_USB_SERVICE, "Case End : PipeRequestWait006 : Initialize");
1787 }
1788
1789 /**
1790 * @tc.name: UsbHasRight001
1791 * @tc.desc: Test functions of HasRight
1792 * @tc.desc: bool HasRight(const std::string deviceName)
1793 * @tc.desc: Setup case as system hap: Before RequestRight, HasRight return true.
1794 * @tc.type: FUNC
1795 */
1796 HWTEST_F(UsbRequestTest, UsbHasRight001, TestSize.Level1)
1797 {
1798 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbHasRight001: SetConfig");
1799 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1800 vector<UsbDevice> delist;
1801 auto ret = UsbSrvClient.GetDevices(delist);
1802 ASSERT_EQ(ret, 0);
1803 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1804 UsbDevice device;
1805 bool hasDevice = false;
1806 for (int32_t i = 0; i < delist.size(); i++) {
1807 if (delist[i].GetClass() != 9) {
1808 device = delist[i];
1809 hasDevice = true;
1810 }
1811 }
1812 EXPECT_TRUE(hasDevice);
1813 std::string deviceName = std::to_string(device.GetBusNum()) + "-" + std::to_string(device.GetDevAddr());
1814 bool result = UsbSrvClient.HasRight(deviceName);
1815 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight001 HasRight=%{public}d", result);
1816 ASSERT_TRUE(result);
1817 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbHasRight001: SetConfig");
1818 }
1819
1820 /**
1821 * @tc.name: UsbHasRight002
1822 * @tc.desc: Test functions of HasRight
1823 * @tc.desc: bool HasRight(const std::string deviceName)
1824 * @tc.desc: Setup case as system hap: After RequestRight, HasRight return true.
1825 * @tc.type: FUNC
1826 */
1827 HWTEST_F(UsbRequestTest, UsbHasRight002, TestSize.Level1)
1828 {
1829 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbHasRight002: SetConfig");
1830 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1831 vector<UsbDevice> delist;
1832 auto ret = UsbSrvClient.GetDevices(delist);
1833 ASSERT_EQ(ret, 0);
1834 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1835 UsbDevice device;
1836 bool hasDevice = false;
1837 for (int32_t i = 0; i < delist.size(); i++) {
1838 if (delist[i].GetClass() != 9) {
1839 device = delist[i];
1840 hasDevice = true;
1841 }
1842 }
1843 EXPECT_TRUE(hasDevice);
1844 std::string deviceName = std::to_string(device.GetBusNum()) + "-" + std::to_string(device.GetDevAddr());
1845 bool result = UsbSrvClient.HasRight(deviceName);
1846 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight002 HasRight=%{public}d", result);
1847 ASSERT_TRUE(result);
1848 ret = UsbSrvClient.RequestRight(deviceName);
1849 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight002 RequestRight=%{public}d", result);
1850 ASSERT_EQ(0, ret);
1851 result = UsbSrvClient.HasRight(deviceName);
1852 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight002 HasRight=%{public}d", result);
1853 ASSERT_TRUE(result);
1854 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbHasRight002: SetConfig");
1855 }
1856
1857 /**
1858 * @tc.name: UsbHasRight003
1859 * @tc.desc: Test functions of HasRight
1860 * @tc.desc: bool HasRight(const std::string deviceName)
1861 * @tc.desc: Setup case as system hap: After RemoveRight, HasRight return true.
1862 * @tc.type: FUNC
1863 */
1864 HWTEST_F(UsbRequestTest, UsbHasRight003, TestSize.Level1)
1865 {
1866 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbHasRight003: SetConfig");
1867 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1868 vector<UsbDevice> delist;
1869 auto ret = UsbSrvClient.GetDevices(delist);
1870 ASSERT_EQ(ret, 0);
1871 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1872 UsbDevice device;
1873 bool hasDevice = false;
1874 for (int32_t i = 0; i < delist.size(); i++) {
1875 if (delist[i].GetClass() != 9) {
1876 device = delist[i];
1877 hasDevice = true;
1878 }
1879 }
1880 EXPECT_TRUE(hasDevice);
1881 std::string deviceName = std::to_string(device.GetBusNum()) + "-" + std::to_string(device.GetDevAddr());
1882 bool result = UsbSrvClient.HasRight(deviceName);
1883 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight003 HasRight=%{public}d", result);
1884 ASSERT_TRUE(result);
1885 ret = UsbSrvClient.RemoveRight(deviceName);
1886 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight003 RemoveRight=%{public}d", result);
1887 ASSERT_EQ(0, ret);
1888 deviceName = "device_81";
1889 result = UsbSrvClient.HasRight(deviceName);
1890 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight003 HasRight=%{public}d", result);
1891 ASSERT_FALSE(result);
1892 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbHasRight003: SetConfig");
1893 }
1894
1895 /**
1896 * @tc.name: UsbHasRight004
1897 * @tc.desc: Test functions of HasRight
1898 * @tc.desc: bool HasRight(const std::string deviceName)
1899 * @tc.desc: Setup case as system hap: RequestRight then RemoveRight
1900 * @tc.type: FUNC
1901 */
1902 HWTEST_F(UsbRequestTest, UsbHasRight004, TestSize.Level1)
1903 {
1904 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbHasRight004: SetConfig");
1905 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1906 vector<UsbDevice> delist;
1907 auto ret = UsbSrvClient.GetDevices(delist);
1908 ASSERT_EQ(ret, 0);
1909 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1910 UsbDevice device;
1911 bool hasDevice = false;
1912 for (int32_t i = 0; i < delist.size(); i++) {
1913 if (delist[i].GetClass() != 9) {
1914 device = delist[i];
1915 hasDevice = true;
1916 }
1917 }
1918 EXPECT_TRUE(hasDevice);
1919 std::string deviceName = std::to_string(device.GetBusNum()) + "-" + std::to_string(device.GetDevAddr());
1920 bool result = UsbSrvClient.HasRight(deviceName);
1921 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight004 HasRight=%{public}d", result);
1922 ASSERT_TRUE(result);
1923 ret = UsbSrvClient.RequestRight(deviceName);
1924 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight004 RequestRight=%{public}d", result);
1925 ASSERT_EQ(0, ret);
1926 result = UsbSrvClient.HasRight(deviceName);
1927 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight004 HasRight=%{public}d", result);
1928 ASSERT_TRUE(result);
1929 ret = UsbSrvClient.RemoveRight(deviceName);
1930 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright003 RemoveRight=%{public}d", result);
1931 ASSERT_EQ(0, ret);
1932 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbHasRight004: SetConfig");
1933 }
1934
1935 /**
1936 * @tc.name: UsbHasRight005
1937 * @tc.desc: Test functions of HasRight
1938 * @tc.desc: bool HasRight(const std::string deviceName)
1939 * @tc.desc: Setup case as system hap: deviceName not in delist.
1940 * @tc.type: FUNC
1941 */
1942 HWTEST_F(UsbRequestTest, UsbHasRight005, TestSize.Level1)
1943 {
1944 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbHasRight005: SetConfig");
1945 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1946 std::string deviceName = "device_80";
1947 bool result = UsbSrvClient.HasRight(deviceName);
1948 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight005 HasRight=%{public}d", result);
1949 ASSERT_FALSE(result);
1950 int32_t ret = UsbSrvClient.RequestRight(deviceName);
1951 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight005 RequestRight=%{public}d", result);
1952 ASSERT_NE(0, ret);
1953 result = UsbSrvClient.HasRight(deviceName);
1954 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight005 HasRight=%{public}d", result);
1955 ASSERT_FALSE(result);
1956 ret = UsbSrvClient.RemoveRight(deviceName);
1957 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight005 RemoveRight=%{public}d", result);
1958 ASSERT_NE(0, ret);
1959 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbHasRight005: SetConfig");
1960 }
1961
1962 /**
1963 * @tc.name: UsbHasRight006
1964 * @tc.desc: Test functions of right with diff userid, instIndex
1965 * @tc.desc: bool HasRight(const std::string deviceName)
1966 * @tc.desc: Setup case as system hap: deviceName not in delist.
1967 * @tc.type: FUNC
1968 */
1969 HWTEST_F(UsbRequestTest, UsbHasRight006, TestSize.Level1)
1970 {
1971 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbHasRight006: start");
1972 auto &UsbSrvClient = UsbSrvClient::GetInstance();
1973 vector<UsbDevice> delist;
1974 auto ret = UsbSrvClient.GetDevices(delist);
1975 ASSERT_EQ(ret, 0);
1976 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1977 UsbDevice device;
1978 bool hasDevice = false;
1979 for (int32_t i = 0; i < delist.size(); i++) {
1980 if (delist[i].GetClass() != 9) {
1981 device = delist[i];
1982 hasDevice = true;
1983 }
1984 }
1985 EXPECT_TRUE(hasDevice);
1986 auto tokenId0 = UsbCommonTest::AllocHapTest();
1987 std::string strTokenId0 = std::to_string(tokenId0);
1988 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight006 tokenId=%{public}s", strTokenId0.c_str());
1989 std::string deviceName = std::to_string(device.GetBusNum()) + "-" + std::to_string(device.GetDevAddr());
1990 ret = UsbSrvClient.AddAccessRight(strTokenId0, deviceName);
1991 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight006 AddAccessRight=%{public}d", ret);
1992 UsbCommonTest::SetSelfToken(tokenId0);
1993 bool result = UsbSrvClient.HasRight(deviceName);
1994 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight006 HasRight=%{public}d", result);
1995 ASSERT_TRUE(result);
1996 auto tokenId1 = UsbCommonTest::AllocHapTestWithUserIdDiff();
1997 UsbCommonTest::SetSelfToken(tokenId1);
1998 result = UsbSrvClient.HasRight(deviceName);
1999 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight006 HasRight=%{public}d", result);
2000 ASSERT_FALSE(result);
2001 ret = UsbSrvClient.RemoveRight(deviceName);
2002 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight006 RemoveRight=%{public}d", ret);
2003 ASSERT_NE(0, ret);
2004 auto tokenId2 = UsbCommonTest::AllocHapTestWithIndexDiff();
2005 UsbCommonTest::SetSelfToken(tokenId2);
2006 result = UsbSrvClient.HasRight(deviceName);
2007 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight006 HasRight=%{public}d", result);
2008 ASSERT_FALSE(result);
2009 ret = UsbSrvClient.RemoveRight(deviceName);
2010 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight006 RemoveRight=%{public}d", ret);
2011 ASSERT_NE(0, ret);
2012 UsbCommonTest::SetSelfToken(tokenId0);
2013 ret = UsbSrvClient.RemoveRight(deviceName);
2014 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::UsbHasRight006 RemoveRight=%{public}d", ret);
2015 ASSERT_EQ(0, ret);
2016 UsbCommonTest::GrantPermissionSysNative();
2017 UsbCommonTest::DeleteAllocHapToken(tokenId0);
2018 UsbCommonTest::DeleteAllocHapToken(tokenId1);
2019 UsbCommonTest::DeleteAllocHapToken(tokenId2);
2020 USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbHasRight006: end");
2021 }
2022
2023 /**
2024 * @tc.name: Usbrequestright001
2025 * @tc.desc: Test functions of requestright
2026 * @tc.desc: int32_t requestRight(const std::string deviceName)
2027 * @tc.desc: Setup case as system hap: RequestRight then RemoveRight
2028 * @tc.type: FUNC
2029 */
2030 HWTEST_F(UsbRequestTest, Usbrequestright001, TestSize.Level1)
2031 {
2032 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestright001: SetConfig");
2033 auto &UsbSrvClient = UsbSrvClient::GetInstance();
2034 vector<UsbDevice> delist;
2035 auto ret = UsbSrvClient.GetDevices(delist);
2036 ASSERT_EQ(ret, 0);
2037 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2038 UsbDevice device;
2039 bool hasDevice = false;
2040 for (int32_t i = 0; i < delist.size(); i++) {
2041 if (delist[i].GetClass() != 9) {
2042 device = delist[i];
2043 hasDevice = true;
2044 }
2045 }
2046 EXPECT_TRUE(hasDevice);
2047 std::string deviceName = std::to_string(device.GetBusNum()) + "-" + std::to_string(device.GetDevAddr());
2048 ret = UsbSrvClient.RequestRight(deviceName);
2049 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright001 RequestRight=%{public}d", ret);
2050 ASSERT_EQ(0, ret);
2051 bool result = UsbSrvClient.HasRight(deviceName);
2052 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright001 HasRight=%{public}d", result);
2053 ASSERT_TRUE(result);
2054 ret = UsbSrvClient.RemoveRight(deviceName);
2055 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright003 RemoveRight=%{public}d", result);
2056 ASSERT_EQ(0, ret);
2057 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestright001: SetConfig");
2058 }
2059
2060 /**
2061 * @tc.name: Usbrequestright003
2062 * @tc.desc: Test functions of requestright
2063 * @tc.desc: int32_t requestRight(const std::string deviceName)
2064 * @tc.type: FUNC
2065 */
2066 HWTEST_F(UsbRequestTest, Usbrequestright003, TestSize.Level1)
2067 {
2068 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestright003: SetConfig");
2069 auto &UsbSrvClient = UsbSrvClient::GetInstance();
2070 vector<UsbDevice> delist;
2071 auto ret = UsbSrvClient.GetDevices(delist);
2072 ASSERT_EQ(ret, 0);
2073 EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2074 UsbDevice device;
2075 bool hasDevice = false;
2076 for (int32_t i = 0; i < delist.size(); i++) {
2077 if (delist[i].GetClass() != 9) {
2078 device = delist[i];
2079 hasDevice = true;
2080 }
2081 }
2082 EXPECT_TRUE(hasDevice);
2083 std::string deviceName = std::to_string(device.GetBusNum()) + "-" + std::to_string(device.GetDevAddr());
2084 ret = UsbSrvClient.RequestRight(deviceName);
2085 bool result = UsbSrvClient.HasRight(deviceName);
2086 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright003 HasRight=%{public}d", result);
2087 ASSERT_TRUE(result);
2088 ret = UsbSrvClient.RequestRight(deviceName);
2089 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright003 RequestRight=%{public}d", result);
2090 ASSERT_EQ(0, ret);
2091 result = UsbSrvClient.HasRight(deviceName);
2092 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright003 HasRight=%{public}d", result);
2093 ASSERT_TRUE(result);
2094 ret = UsbSrvClient.RemoveRight(deviceName);
2095 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright003 RemoveRight=%{public}d", result);
2096 ASSERT_EQ(0, ret);
2097 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestright003: SetConfig");
2098 }
2099
2100 /**
2101 * @tc.name: Usbrequestright004
2102 * @tc.desc: Test functions of requestright
2103 * @tc.desc: int32_t requestRight(const std::string deviceName)
2104 * @tc.type: FUNC
2105 */
2106 HWTEST_F(UsbRequestTest, Usbrequestright004, TestSize.Level1)
2107 {
2108 USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbrequestright004: SetConfig");
2109 auto &UsbSrvClient = UsbSrvClient::GetInstance();
2110 std::string deviceName = "device_81";
2111 bool result = UsbSrvClient.HasRight(deviceName);
2112 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright004 HasRight=%{public}d", result);
2113 ASSERT_FALSE(result);
2114 int32_t ret = UsbSrvClient.RequestRight(deviceName);
2115 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright004 RequestRight=%{public}d", result);
2116 ASSERT_NE(0, ret);
2117 result = UsbSrvClient.HasRight(deviceName);
2118 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright004 HasRight=%{public}d", result);
2119 ASSERT_FALSE(result);
2120 ret = UsbSrvClient.RemoveRight(deviceName);
2121 USB_HILOGI(MODULE_USB_SERVICE, "UsbRequestTest::Usbrequestright004 RemoveRight=%{public}d", result);
2122 ASSERT_NE(0, ret);
2123 USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbrequestright004: SetConfig");
2124 }
2125 } // namespace Request
2126 } // namespace USB
2127 } // namespace OHOS
2128