• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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