• 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_device_pipe_test.h"
17 
18 #include <sys/time.h>
19 #include <sys/ioctl.h>
20 #include <iostream>
21 #include <vector>
22 
23 #include "delayed_sp_singleton.h"
24 #include "hilog_wrapper.h"
25 #include "if_system_ability_manager.h"
26 #include "system_ability_definition.h"
27 #include "usb_common_test.h"
28 #include "usb_srv_client.h"
29 #include "usb_errors.h"
30 
31 using namespace testing::ext;
32 using namespace OHOS;
33 using namespace OHOS::USB;
34 using namespace std;
35 using namespace OHOS::HDI::Usb::V1_0;
36 using namespace OHOS::HDI::Usb::V1_2;
37 using namespace OHOS::USB::Common;
38 
39 namespace OHOS {
40 namespace USB {
41 namespace DevicePipe {
42 constexpr int32_t USB_BUS_NUM_INVALID = -1;
43 constexpr int32_t USB_DEV_ADDR_INVALID = -1;
44 constexpr int32_t SLEEP_TIME = 3;
45 constexpr int32_t BUFFER_SIZE = 255;
46 #define USBDEVFS_GET_SPEED          _IO('U', 31)
SetUpTestCase(void)47 void UsbDevicePipeTest::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, "UsbDevicePipeTest:: [Device] SetPortRole=%{public}d", ret);
54     ret = UsbCommonTest::SwitchErrCode(ret);
55     ASSERT_TRUE(ret == 0);
56     if (ret != 0) {
57         exit(0);
58     }
59 
60     std::cout << "please connect device, press enter to continue" << std::endl;
61     int32_t c;
62     while ((c = getchar()) != '\n' && c != EOF) {
63         ;
64     }
65     USB_HILOGI(MODULE_USB_SERVICE, "Start UsbDevicePipeTest");
66 }
67 
TearDownTestCase(void)68 void UsbDevicePipeTest::TearDownTestCase(void)
69 {
70     USB_HILOGI(MODULE_USB_SERVICE, "End UsbDevicePipeTest");
71 }
72 
SetUp(void)73 void UsbDevicePipeTest::SetUp(void) {}
74 
TearDown(void)75 void UsbDevicePipeTest::TearDown(void) {}
76 
77 /**
78  * @tc.name: getDevices001
79  * @tc.desc: Test functions to getDevices(std::vector<UsbDevice> &delist);
80  * @tc.type: FUNC
81  */
82 HWTEST_F(UsbDevicePipeTest, getDevices001, TestSize.Level1)
83 {
84     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : getDevices001 : getDevices");
85     vector<UsbDevice> delist;
86     auto &UsbSrvClient = UsbSrvClient::GetInstance();
87     auto ret = UsbSrvClient.GetDevices(delist);
88     ASSERT_EQ(ret, 0);
89     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::getDevices001 %{public}d ret=%{public}d", __LINE__, ret);
90     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
91     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::getDevices001 %{public}d size=%{public}zu", __LINE__,
92                delist.size());
93     USBDevicePipe pipe;
94     UsbDevice device;
95     bool hasDevice = false;
96     for (int32_t i = 0; i < delist.size(); i++) {
97         if (delist[i].GetClass() != 9) {
98             device = delist[i];
99             hasDevice = true;
100         }
101     }
102     EXPECT_TRUE(hasDevice);
103     UsbSrvClient.RequestRight(device.GetName());
104     ret = UsbSrvClient.OpenDevice(device, pipe);
105     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::getDevices001 %{public}d OpenDevice=%{public}d", __LINE__, ret);
106     ASSERT_EQ(ret, 0);
107     ret = UsbSrvClient.Close(pipe);
108     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::getDevices001 %{public}d Close=%{public}d", __LINE__, ret);
109     EXPECT_TRUE(ret);
110     USB_HILOGI(MODULE_USB_SERVICE, "Case End : getDevices001 : getDevices");
111 }
112 
113 /**
114  * @tc.name: UsbOpenDevice001
115  * @tc.desc: Test functions of OpenDevice
116  * @tc.desc: int32_t OpenDevice(const UsbDevice &device, USBDevicePipe &pip)
117  * @tc.desc: 正向测试:代码正常运行,返回结果为0
118  * @tc.type: FUNC
119  */
120 HWTEST_F(UsbDevicePipeTest, UsbOpenDevice001, TestSize.Level1)
121 {
122     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbOpenDevice001: OpenDevice");
123     auto &UsbSrvClient = UsbSrvClient::GetInstance();
124     std::vector<UsbDevice> delist;
125     auto ret = UsbSrvClient.GetDevices(delist);
126     ASSERT_EQ(ret, 0);
127     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbOpenDevice001 %{public}d ret=%{public}d", __LINE__, ret);
128     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
129     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbOpenDevice001 %{public}d size=%{public}zu", __LINE__,
130                delist.size());
131     UsbDevice device;
132     bool hasDevice = false;
133     for (int32_t i = 0; i < delist.size(); i++) {
134         if (delist[i].GetClass() != 9) {
135             device = delist[i];
136             hasDevice = true;
137         }
138     }
139     EXPECT_TRUE(hasDevice);
140     USBDevicePipe pipe;
141     UsbSrvClient.RequestRight(device.GetName());
142     ret = UsbSrvClient.OpenDevice(device, pipe);
143     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbOpenDevice001 %{public}d OpenDevice=%{public}d", __LINE__,
144                ret);
145     ASSERT_EQ(ret, 0);
146     ret = UsbSrvClient.Close(pipe);
147     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
148     EXPECT_TRUE(ret);
149     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbOpenDevice001: OpenDevice");
150 }
151 
152 /**
153  * @tc.name: UsbResetDevice001
154  * @tc.desc: Test functions of ResetDevice
155  * @tc.desc: int32_t ResetDevice(const UsbDevice &device)
156  * @tc.desc: 正向测试:代码正常运行,返回结果为0
157  * @tc.type: FUNC
158  */
159 HWTEST_F(UsbDevicePipeTest, UsbResetDevice001, TestSize.Level1)
160 {
161     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbResetDevice001: ResetDevice");
162     auto &UsbSrvClient = UsbSrvClient::GetInstance();
163     std::vector<UsbDevice> delist;
164     auto ret = UsbSrvClient.GetDevices(delist);
165     ASSERT_EQ(ret, 0);
166     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice001 %{public}d ret=%{public}d", __LINE__, ret);
167     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
168     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice001 %{public}d size=%{public}zu", __LINE__,
169         delist.size());
170     UsbDevice device;
171     bool hasDevice = false;
172     for (int32_t i = 0; i < delist.size(); i++) {
173         if (delist[i].GetClass() != 9) {
174             device = delist[i];
175             hasDevice = true;
176         }
177     }
178     EXPECT_TRUE(hasDevice);
179     USBDevicePipe pipe;
180     UsbSrvClient.RequestRight(device.GetName());
181     ret = UsbSrvClient.OpenDevice(device, pipe);
182     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice001 %{public}d OpenDevice=%{public}d", __LINE__,
183         ret);
184     ret = UsbSrvClient.ResetDevice(pipe);
185     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice001 %{public}d ResetDevice=%{public}d", __LINE__,
186         ret);
187     ASSERT_EQ(ret, 0);
188     ret = UsbSrvClient.Close(pipe);
189     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
190     EXPECT_TRUE(ret);
191     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbResetDevice001: ResetDevice");
192 }
193 
194 /**
195  * @tc.name: UsbResetDevice002
196  * @tc.desc: Test functions of ResetDevice
197  * @tc.desc: int32_t ResetDevice(const UsbDevice &device)=
198  * @tc.type: FUNC
199  */
200 HWTEST_F(UsbDevicePipeTest, UsbResetDevice002, TestSize.Level1)
201 {
202     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbResetDevice002: ResetDevice");
203     auto &UsbSrvClient = UsbSrvClient::GetInstance();
204     std::vector<UsbDevice> delist;
205     auto ret = UsbSrvClient.GetDevices(delist);
206     ASSERT_EQ(ret, 0);
207     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice002 %{public}d ret=%{public}d", __LINE__, ret);
208     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
209     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice002 %{public}d size=%{public}zu", __LINE__,
210         delist.size());
211     UsbDevice device;
212     bool hasDevice = false;
213     for (int32_t i = 0; i < delist.size(); i++) {
214         if (delist[i].GetClass() != 9) {
215             device = delist[i];
216             hasDevice = true;
217         }
218     }
219     EXPECT_TRUE(hasDevice);
220     USBDevicePipe pipe;
221     UsbSrvClient.RequestRight(device.GetName());
222     ret = UsbSrvClient.OpenDevice(device, pipe);
223     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice002 %{public}d OpenDevice=%{public}d", __LINE__,
224         ret);
225     USBDevicePipe testPipe;
226     testPipe.SetBusNum(pipe.GetBusNum());
227     testPipe.SetDevAddr(USB_DEV_ADDR_INVALID);
228     ret = UsbSrvClient.ResetDevice(testPipe);
229     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice002 %{public}d ResetDevice=%{public}d", __LINE__,
230         ret);
231     ASSERT_NE(ret, 0);
232     ret = UsbSrvClient.Close(pipe);
233     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
234     EXPECT_TRUE(ret);
235     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbResetDevice002: ResetDevice");
236 }
237 
238 /**
239  * @tc.name: UsbResetDevice003
240  * @tc.desc: Test functions of ResetDevice
241  * @tc.desc: int32_t ResetDevice(const UsbDevice &device)=
242  * @tc.type: FUNC
243  */
244 HWTEST_F(UsbDevicePipeTest, UsbResetDevice003, TestSize.Level1)
245 {
246     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbResetDevice003: ResetDevice");
247     auto &UsbSrvClient = UsbSrvClient::GetInstance();
248     std::vector<UsbDevice> delist;
249     auto ret = UsbSrvClient.GetDevices(delist);
250     ASSERT_EQ(ret, 0);
251     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice003 %{public}d ret=%{public}d", __LINE__, ret);
252     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
253     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice003 %{public}d size=%{public}zu", __LINE__,
254         delist.size());
255     UsbDevice device;
256     bool hasDevice = false;
257     for (int32_t i = 0; i < delist.size(); i++) {
258         if (delist[i].GetClass() != 9) {
259             device = delist[i];
260             hasDevice = true;
261         }
262     }
263     EXPECT_TRUE(hasDevice);
264     USBDevicePipe pipe;
265     UsbSrvClient.RequestRight(device.GetName());
266     ret = UsbSrvClient.OpenDevice(device, pipe);
267     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice003 %{public}d OpenDevice=%{public}d", __LINE__,
268         ret);
269     USBDevicePipe testPipe;
270     testPipe.SetBusNum(USB_BUS_NUM_INVALID);
271     testPipe.SetDevAddr(pipe.GetDevAddr());
272     ret = UsbSrvClient.ResetDevice(testPipe);
273     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice003 %{public}d ResetDevice=%{public}d", __LINE__,
274         ret);
275     ASSERT_NE(ret, 0);
276     ret = UsbSrvClient.Close(pipe);
277     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
278     EXPECT_TRUE(ret);
279     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbResetDevice003: ResetDevice");
280 }
281 
282 /**
283  * @tc.name: UsbResetDevice004
284  * @tc.desc: Test functions of ResetDevice
285  * @tc.desc: int32_t ResetDevice(const UsbDevice &device)=
286  * @tc.type: FUNC
287  */
288 HWTEST_F(UsbDevicePipeTest, UsbResetDevice004, TestSize.Level1)
289 {
290     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbResetDevice004: ResetDevice");
291     auto &UsbSrvClient = UsbSrvClient::GetInstance();
292     std::vector<UsbDevice> delist;
293     auto ret = UsbSrvClient.GetDevices(delist);
294     ASSERT_EQ(ret, 0);
295     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice004 %{public}d ret=%{public}d", __LINE__, ret);
296     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
297     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice004 %{public}d size=%{public}zu", __LINE__,
298         delist.size());
299     UsbDevice device;
300     bool hasDevice = false;
301     for (int32_t i = 0; i < delist.size(); i++) {
302         if (delist[i].GetClass() != 9) {
303             device = delist[i];
304             hasDevice = true;
305         }
306     }
307     EXPECT_TRUE(hasDevice);
308     USBDevicePipe pipe;
309     UsbSrvClient.RequestRight(device.GetName());
310     ret = UsbSrvClient.OpenDevice(device, pipe);
311     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice004 %{public}d OpenDevice=%{public}d", __LINE__,
312         ret);
313     USBDevicePipe testPipe;
314     testPipe.SetBusNum(USB_BUS_NUM_INVALID);
315     testPipe.SetDevAddr(USB_DEV_ADDR_INVALID);
316     ret = UsbSrvClient.ResetDevice(testPipe);
317     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbResetDevice004 %{public}d ResetDevice=%{public}d", __LINE__,
318         ret);
319     ASSERT_NE(ret, 0);
320     ret = UsbSrvClient.Close(pipe);
321     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
322     EXPECT_TRUE(ret);
323     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbResetDevice004: ResetDevice");
324 }
325 
326 /**
327  * @tc.name: Usbcontrolstansfer001
328  * @tc.desc: Test functions to ControlTransfer
329  * @tc.type: FUNC
330  */
331 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer001, TestSize.Level1)
332 {
333     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer001 : ControlTransfer");
334     vector<UsbDevice> delist;
335     auto &UsbSrvClient = UsbSrvClient::GetInstance();
336     auto ret = UsbSrvClient.GetDevices(delist);
337     ASSERT_EQ(ret, 0);
338     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer001 %{public}d ret=%{public}d", __LINE__, ret);
339     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
340     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer001 %{public}d size=%{public}zu", __LINE__,
341                delist.size());
342     USBDevicePipe pipe;
343         UsbDevice device;
344     bool hasDevice = false;
345     for (int32_t i = 0; i < delist.size(); i++) {
346         if (delist[i].GetClass() != 9) {
347             device = delist[i];
348             hasDevice = true;
349         }
350     }
351     EXPECT_TRUE(hasDevice);
352     UsbSrvClient.RequestRight(device.GetName());
353     ret = UsbSrvClient.OpenDevice(device, pipe);
354     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer001 %{public}d OpenDevice=%{public}d",
355                __LINE__, ret);
356     ASSERT_EQ(ret, 0);
357     uint32_t len = 8;
358     uint8_t buffer[BUFFER_SIZE] = {0};
359     struct UsbCtrlTransfer ctrldata = {0b10000000, 8, 0, 0, 500};
360     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
361     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
362     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer001 %{public}d ControlTransfer=%{public}d",
363                __LINE__, ret);
364     ASSERT_EQ(ret, 0);
365     ret = UsbSrvClient.Close(pipe);
366     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
367     EXPECT_TRUE(ret);
368     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer001 : ControlTransfer");
369 }
370 
371 /**
372  * @tc.name: Usbcontrolstansfer002
373  * @tc.desc: Test functions to ControlTransfer
374  * @tc.type: FUNC
375  */
376 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer002, TestSize.Level1)
377 {
378     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer002 : ControlTransfer");
379     vector<UsbDevice> delist;
380     auto &UsbSrvClient = UsbSrvClient::GetInstance();
381     auto ret = UsbSrvClient.GetDevices(delist);
382     ASSERT_EQ(ret, 0);
383     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer002 %{public}d ret=%{public}d", __LINE__, ret);
384     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
385     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer002 %{public}d size=%{public}zu", __LINE__,
386                delist.size());
387     USBDevicePipe pipe;
388         UsbDevice device;
389     bool hasDevice = false;
390     for (int32_t i = 0; i < delist.size(); i++) {
391         if (delist[i].GetClass() != 9) {
392             device = delist[i];
393             hasDevice = true;
394         }
395     }
396     EXPECT_TRUE(hasDevice);
397     UsbSrvClient.RequestRight(device.GetName());
398     ret = UsbSrvClient.OpenDevice(device, pipe);
399     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer002 %{public}d OpenDevice=%{public}d",
400                __LINE__, ret);
401     ASSERT_EQ(ret, 0);
402     uint32_t len = 8;
403     uint8_t buffer[BUFFER_SIZE] = {0};
404     pipe.SetBusNum(BUFFER_SIZE);
405     struct UsbCtrlTransfer ctrldata = {0b10000000, 8, 0, 0, 500};
406     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
407     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
408     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer002 %{public}d ControlTransfer=%{public}d",
409                __LINE__, ret);
410     ASSERT_NE(ret, 0);
411     pipe.SetBusNum(device.GetBusNum());
412     ret = UsbSrvClient.Close(pipe);
413     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
414     EXPECT_TRUE(ret);
415     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer002 : ControlTransfer");
416 }
417 
418 /**
419  * @tc.name: Usbcontrolstansfer003
420  * @tc.desc: Test functions to ControlTransfer
421  * @tc.type: FUNC
422  */
423 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer003, TestSize.Level1)
424 {
425     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer003 : ControlTransfer");
426     vector<UsbDevice> delist;
427     auto &UsbSrvClient = UsbSrvClient::GetInstance();
428     auto ret = UsbSrvClient.GetDevices(delist);
429     ASSERT_EQ(ret, 0);
430     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer003 %{public}d ret=%{public}d", __LINE__, ret);
431     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
432     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer003 %{public}d size=%{public}zu", __LINE__,
433                delist.size());
434     USBDevicePipe pipe;
435         UsbDevice device;
436     bool hasDevice = false;
437     for (int32_t i = 0; i < delist.size(); i++) {
438         if (delist[i].GetClass() != 9) {
439             device = delist[i];
440             hasDevice = true;
441         }
442     }
443     EXPECT_TRUE(hasDevice);
444     UsbSrvClient.RequestRight(device.GetName());
445     ret = UsbSrvClient.OpenDevice(device, pipe);
446     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer003 %{public}d OpenDevice=%{public}d",
447                __LINE__, ret);
448     ASSERT_EQ(ret, 0);
449     uint32_t len = 8;
450     uint8_t buffer[BUFFER_SIZE] = {0};
451     pipe.SetDevAddr(BUFFER_SIZE);
452     struct UsbCtrlTransfer ctrldata = {0b10000000, 8, 0, 0, 500};
453     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
454     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
455     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer003 %{public}d ControlTransfer=%{public}d",
456                __LINE__, ret);
457     ASSERT_NE(ret, 0);
458     pipe.SetDevAddr(device.GetDevAddr());
459     ret = UsbSrvClient.Close(pipe);
460     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
461     EXPECT_TRUE(ret);
462     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer003 : ControlTransfer");
463 }
464 
465 /**
466  * @tc.name: Usbcontrolstansfer004
467  * @tc.desc: Test functions to ControlTransfer
468  * @tc.type: FUNC
469  */
470 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer004, TestSize.Level1)
471 {
472     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer004 : ControlTransfer");
473     vector<UsbDevice> delist;
474     auto &UsbSrvClient = UsbSrvClient::GetInstance();
475     auto ret = UsbSrvClient.GetDevices(delist);
476     ASSERT_EQ(ret, 0);
477     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer004 %{public}d ret=%{public}d", __LINE__, ret);
478     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
479     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer004 %{public}d size=%{public}zu", __LINE__,
480                delist.size());
481     USBDevicePipe pipe;
482         UsbDevice device;
483     bool hasDevice = false;
484     for (int32_t i = 0; i < delist.size(); i++) {
485         if (delist[i].GetClass() != 9) {
486             device = delist[i];
487             hasDevice = true;
488         }
489     }
490     EXPECT_TRUE(hasDevice);
491     UsbSrvClient.RequestRight(device.GetName());
492     ret = UsbSrvClient.OpenDevice(device, pipe);
493     ASSERT_EQ(ret, 0);
494     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer004 %{public}d OpenDevice=%{public}d",
495                __LINE__, ret);
496     uint32_t len = 8;
497     uint8_t buffer[BUFFER_SIZE] = {0};
498     struct UsbCtrlTransfer ctrldata = {0b10000000, 6, 0x100, 0, 500};
499     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
500     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
501     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer004 %{public}d ControlTransfer=%{public}d",
502                __LINE__, ret);
503     ASSERT_EQ(ret, 0);
504     ret = UsbSrvClient.Close(pipe);
505     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
506     EXPECT_TRUE(ret);
507     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer004 : ControlTransfer");
508 }
509 
510 /**
511  * @tc.name: Usbcontrolstansfer005
512  * @tc.desc: Test functions to ControlTransfer
513  * @tc.type: FUNC
514  */
515 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer005, TestSize.Level1)
516 {
517     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer005 : ControlTransfer");
518     vector<UsbDevice> delist;
519     auto &UsbSrvClient = UsbSrvClient::GetInstance();
520     auto ret = UsbSrvClient.GetDevices(delist);
521     ASSERT_EQ(ret, 0);
522     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer005 %{public}d ret=%{public}d", __LINE__, ret);
523     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
524     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer005 %{public}d size=%{public}zu", __LINE__,
525                delist.size());
526     USBDevicePipe pipe;
527         UsbDevice device;
528     bool hasDevice = false;
529     for (int32_t i = 0; i < delist.size(); i++) {
530         if (delist[i].GetClass() != 9) {
531             device = delist[i];
532             hasDevice = true;
533         }
534     }
535     EXPECT_TRUE(hasDevice);
536     UsbSrvClient.RequestRight(device.GetName());
537     ret = UsbSrvClient.OpenDevice(device, pipe);
538     ASSERT_EQ(ret, 0);
539     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer005 %{public}d OpenDevice=%{public}d",
540                __LINE__, ret);
541     uint32_t len = 8;
542     uint8_t buffer[BUFFER_SIZE] = {0};
543     pipe.SetBusNum(BUFFER_SIZE);
544     struct UsbCtrlTransfer ctrldata = {0b10000000, 6, 0x100, 0, 500};
545     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
546     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
547     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer005 %{public}d ControlTransfer=%{public}d",
548                __LINE__, ret);
549     ASSERT_NE(ret, 0);
550     pipe.SetBusNum(device.GetBusNum());
551     ret = UsbSrvClient.Close(pipe);
552     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
553     EXPECT_TRUE(ret);
554     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer005 : ControlTransfer");
555 }
556 
557 /**
558  * @tc.name: Usbcontrolstansfer006
559  * @tc.desc: Test functions to ControlTransfer
560  * @tc.type: FUNC
561  */
562 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer006, TestSize.Level1)
563 {
564     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer006 : ControlTransfer");
565     vector<UsbDevice> delist;
566     auto &UsbSrvClient = UsbSrvClient::GetInstance();
567     auto ret = UsbSrvClient.GetDevices(delist);
568     ASSERT_EQ(ret, 0);
569     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer006 %{public}d ret=%{public}d", __LINE__, ret);
570     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
571     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer006 %{public}d size=%{public}zu", __LINE__,
572                delist.size());
573     USBDevicePipe pipe;
574         UsbDevice device;
575     bool hasDevice = false;
576     for (int32_t i = 0; i < delist.size(); i++) {
577         if (delist[i].GetClass() != 9) {
578             device = delist[i];
579             hasDevice = true;
580         }
581     }
582     EXPECT_TRUE(hasDevice);
583     UsbSrvClient.RequestRight(device.GetName());
584     ret = UsbSrvClient.OpenDevice(device, pipe);
585     ASSERT_EQ(ret, 0);
586     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer006 %{public}d OpenDevice=%{public}d",
587                __LINE__, ret);
588     uint32_t len = 8;
589     uint8_t buffer[BUFFER_SIZE] = {0};
590     pipe.SetDevAddr(BUFFER_SIZE);
591     struct UsbCtrlTransfer ctrldata = {0b10000000, 6, 0x100, 0, 500};
592     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
593     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
594     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer006 %{public}d ControlTransfer=%{public}d",
595                __LINE__, ret);
596     ASSERT_NE(ret, 0);
597     pipe.SetDevAddr(device.GetDevAddr());
598     ret = UsbSrvClient.Close(pipe);
599     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
600     EXPECT_TRUE(ret);
601     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer006 : ControlTransfer");
602 }
603 
604 /**
605  * @tc.name: Usbcontrolstansfer007
606  * @tc.desc: Test functions to ControlTransfer
607  * @tc.type: FUNC
608  */
609 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer007, TestSize.Level1)
610 {
611     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer007 : ControlTransfer");
612     vector<UsbDevice> delist;
613     auto &UsbSrvClient = UsbSrvClient::GetInstance();
614     auto ret = UsbSrvClient.GetDevices(delist);
615     ASSERT_EQ(ret, 0);
616     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer007 %{public}d ret=%{public}d", __LINE__, ret);
617     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
618     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer007 %{public}d size=%{public}zu", __LINE__,
619                delist.size());
620     USBDevicePipe pipe;
621         UsbDevice device;
622     bool hasDevice = false;
623     for (int32_t i = 0; i < delist.size(); i++) {
624         if (delist[i].GetClass() != 9) {
625             device = delist[i];
626             hasDevice = true;
627         }
628     }
629     EXPECT_TRUE(hasDevice);
630     UsbSrvClient.RequestRight(device.GetName());
631     UsbInterface interface = device.GetConfigs().front().GetInterfaces().front();
632     ret = UsbSrvClient.OpenDevice(device, pipe);
633     ASSERT_EQ(ret, 0);
634     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer007 %{public}d OpenDevice=%{public}d",
635                __LINE__, ret);
636     uint32_t len = BUFFER_SIZE;
637     uint8_t buffer[BUFFER_SIZE] = {0};
638     struct UsbCtrlTransfer ctrldata = {0b10000001, 0X0A, 0, 0, 500};
639     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
640     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
641     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer007 %{public}d ControlTransfer=%{public}d",
642                __LINE__, ret);
643     ASSERT_EQ(ret, 0);
644     ret = UsbSrvClient.Close(pipe);
645     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer007 %{public}d Close=%{public}d", __LINE__,
646                ret);
647     EXPECT_TRUE(ret);
648     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer007 : ControlTransfer");
649 }
650 
651 /**
652  * @tc.name: Usbcontrolstansfer008
653  * @tc.desc: Test functions to ControlTransfer
654  * @tc.type: FUNC
655  */
656 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer008, TestSize.Level1)
657 {
658     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer008 : ControlTransfer");
659     vector<UsbDevice> delist;
660     auto &UsbSrvClient = UsbSrvClient::GetInstance();
661     auto ret = UsbSrvClient.GetDevices(delist);
662     ASSERT_EQ(ret, 0);
663     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer008 %{public}d ret=%{public}d", __LINE__, ret);
664     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
665     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer008 %{public}d size=%{public}zu", __LINE__,
666                delist.size());
667     USBDevicePipe pipe;
668         UsbDevice device;
669     bool hasDevice = false;
670     for (int32_t i = 0; i < delist.size(); i++) {
671         if (delist[i].GetClass() != 9) {
672             device = delist[i];
673             hasDevice = true;
674         }
675     }
676     EXPECT_TRUE(hasDevice);
677     UsbSrvClient.RequestRight(device.GetName());
678     UsbInterface interface = device.GetConfigs().front().GetInterfaces().front();
679     ret = UsbSrvClient.OpenDevice(device, pipe);
680     ASSERT_EQ(ret, 0);
681     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer008 %{public}d OpenDevice=%{public}d",
682                __LINE__, ret);
683     uint32_t len = BUFFER_SIZE;
684     uint8_t buffer[BUFFER_SIZE] = {0};
685     pipe.SetBusNum(BUFFER_SIZE);
686     struct UsbCtrlTransfer ctrldata = {0b10000001, 0X0A, 0, 0, 500};
687     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
688     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
689     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer008 %{public}d ControlTransfer=%{public}d",
690                __LINE__, ret);
691     ASSERT_NE(ret, 0);
692     pipe.SetBusNum(device.GetBusNum());
693     ret = UsbSrvClient.Close(pipe);
694     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer008 %{public}d Close=%{public}d", __LINE__,
695                ret);
696     EXPECT_TRUE(ret);
697     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer008 : ControlTransfer");
698 }
699 
700 /**
701  * @tc.name: Usbcontrolstansfer009
702  * @tc.desc: Test functions to ControlTransfer
703  * @tc.type: FUNC
704  */
705 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer009, TestSize.Level1)
706 {
707     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer009 : ControlTransfer");
708     vector<UsbDevice> delist;
709     auto &UsbSrvClient = UsbSrvClient::GetInstance();
710     auto ret = UsbSrvClient.GetDevices(delist);
711     ASSERT_EQ(ret, 0);
712     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer009 %{public}d ret=%{public}d", __LINE__, ret);
713     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
714     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer009 %{public}d size=%{public}zu", __LINE__,
715                delist.size());
716     USBDevicePipe pipe;
717         UsbDevice device;
718     bool hasDevice = false;
719     for (int32_t i = 0; i < delist.size(); i++) {
720         if (delist[i].GetClass() != 9) {
721             device = delist[i];
722             hasDevice = true;
723         }
724     }
725     EXPECT_TRUE(hasDevice);
726     UsbSrvClient.RequestRight(device.GetName());
727     UsbInterface interface = device.GetConfigs().front().GetInterfaces().front();
728     ret = UsbSrvClient.OpenDevice(device, pipe);
729     ASSERT_EQ(ret, 0);
730     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer009 %{public}d OpenDevice=%{public}d",
731                __LINE__, ret);
732     uint32_t len = BUFFER_SIZE;
733     uint8_t buffer[BUFFER_SIZE] = {0};
734     pipe.SetDevAddr(BUFFER_SIZE);
735     struct UsbCtrlTransfer ctrldata = {0b10000001, 0X0A, 0, 0, 500};
736     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
737     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
738     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer009 %{public}d ControlTransfer=%{public}d",
739                __LINE__, ret);
740     ASSERT_NE(ret, 0);
741     pipe.SetDevAddr(device.GetDevAddr());
742     ret = UsbSrvClient.Close(pipe);
743     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer009 %{public}d Close=%{public}d", __LINE__,
744                ret);
745     EXPECT_TRUE(ret);
746     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer009 : ControlTransfer");
747 }
748 
749 /**
750  * @tc.name: Usbcontrolstansfer010
751  * @tc.desc: Test functions to ControlTransfer
752  * @tc.type: FUNC
753  */
754 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer010, TestSize.Level1)
755 {
756     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer010 : ControlTransfer");
757     vector<UsbDevice> delist;
758     auto &UsbSrvClient = UsbSrvClient::GetInstance();
759     auto ret = UsbSrvClient.GetDevices(delist);
760     ASSERT_EQ(ret, 0);
761     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer010 %{public}d ret=%{public}d", __LINE__, ret);
762     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
763     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer010 %{public}d size=%{public}zu", __LINE__,
764                delist.size());
765     USBDevicePipe pipe;
766         UsbDevice device;
767     bool hasDevice = false;
768     for (int32_t i = 0; i < delist.size(); i++) {
769         if (delist[i].GetClass() != 9) {
770             device = delist[i];
771             hasDevice = true;
772         }
773     }
774     EXPECT_TRUE(hasDevice);
775     UsbSrvClient.RequestRight(device.GetName());
776     ret = UsbSrvClient.OpenDevice(device, pipe);
777     ASSERT_EQ(ret, 0);
778     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer010 %{public}d OpenDevice=%{public}d",
779                __LINE__, ret);
780     uint32_t len = BUFFER_SIZE;
781     uint8_t buffer[BUFFER_SIZE] = {0};
782     struct UsbCtrlTransfer ctrldata = {0b10000000, 0, 0, 0, 500};
783     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
784     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
785     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer010 %{public}d ControlTransfer=%{public}d",
786                __LINE__, ret);
787     ASSERT_EQ(ret, 0);
788     ret = UsbSrvClient.Close(pipe);
789     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer010 %{public}d Close=%{public}d", __LINE__,
790                ret);
791     EXPECT_TRUE(ret);
792     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer010 : ControlTransfer");
793 }
794 
795 /**
796  * @tc.name: Usbcontrolstansfer011
797  * @tc.desc: Test functions to ControlTransfer
798  * @tc.type: FUNC
799  */
800 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer011, TestSize.Level1)
801 {
802     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer011 : ControlTransfer");
803     vector<UsbDevice> delist;
804     auto &UsbSrvClient = UsbSrvClient::GetInstance();
805     auto ret = UsbSrvClient.GetDevices(delist);
806     ASSERT_EQ(ret, 0);
807     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer011 %{public}d ret=%{public}d", __LINE__, ret);
808     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
809     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer011 %{public}d size=%{public}zu", __LINE__,
810                delist.size());
811     USBDevicePipe pipe;
812         UsbDevice device;
813     bool hasDevice = false;
814     for (int32_t i = 0; i < delist.size(); i++) {
815         if (delist[i].GetClass() != 9) {
816             device = delist[i];
817             hasDevice = true;
818         }
819     }
820     EXPECT_TRUE(hasDevice);
821     UsbSrvClient.RequestRight(device.GetName());
822     ret = UsbSrvClient.OpenDevice(device, pipe);
823     ASSERT_EQ(ret, 0);
824     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer011 %{public}d OpenDevice=%{public}d",
825                __LINE__, ret);
826     uint32_t len = BUFFER_SIZE;
827     uint8_t buffer[BUFFER_SIZE] = {0};
828     pipe.SetBusNum(BUFFER_SIZE);
829     struct UsbCtrlTransfer ctrldata = {0b10000000, 0, 0, 0, 500};
830     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
831     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
832     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer011 %{public}d ControlTransfer=%{public}d",
833                __LINE__, ret);
834     ASSERT_NE(ret, 0);
835     pipe.SetBusNum(device.GetBusNum());
836     ret = UsbSrvClient.Close(pipe);
837     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer011 %{public}d Close=%{public}d", __LINE__,
838                ret);
839     EXPECT_TRUE(ret);
840     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer011 : ControlTransfer");
841 }
842 
843 /**
844  * @tc.name: Usbcontrolstansfer012
845  * @tc.desc: Test functions to ControlTransfer
846  * @tc.type: FUNC
847  */
848 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer012, TestSize.Level1)
849 {
850     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer012 : ControlTransfer");
851     vector<UsbDevice> delist;
852     auto &UsbSrvClient = UsbSrvClient::GetInstance();
853     auto ret = UsbSrvClient.GetDevices(delist);
854     ASSERT_EQ(ret, 0);
855     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer012 %{public}d ret=%{public}d", __LINE__, ret);
856     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
857     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer012 %{public}d size=%{public}zu", __LINE__,
858                delist.size());
859     USBDevicePipe pipe;
860         UsbDevice device;
861     bool hasDevice = false;
862     for (int32_t i = 0; i < delist.size(); i++) {
863         if (delist[i].GetClass() != 9) {
864             device = delist[i];
865             hasDevice = true;
866         }
867     }
868     EXPECT_TRUE(hasDevice);
869     UsbSrvClient.RequestRight(device.GetName());
870     ret = UsbSrvClient.OpenDevice(device, pipe);
871     ASSERT_EQ(ret, 0);
872     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer012 %{public}d OpenDevice=%{public}d",
873                __LINE__, ret);
874     uint32_t len = BUFFER_SIZE;
875     uint8_t buffer[BUFFER_SIZE] = {0};
876     pipe.SetDevAddr(BUFFER_SIZE);
877     struct UsbCtrlTransfer ctrldata = {0b10000000, 0, 0, 0, 500};
878     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
879     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
880     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer012 %{public}d ControlTransfer=%{public}d",
881                __LINE__, ret);
882     ASSERT_NE(ret, 0);
883     pipe.SetDevAddr(device.GetDevAddr());
884     ret = UsbSrvClient.Close(pipe);
885     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer012 %{public}d Close=%{public}d", __LINE__,
886                ret);
887     EXPECT_TRUE(ret);
888     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer012 : ControlTransfer");
889 }
890 
891 /**
892  * @tc.name: Usbcontrolstansfer0013
893  * @tc.desc: Test functions to ControlTransfer
894  * @tc.type: FUNC
895  */
896 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer0013, TestSize.Level1)
897 {
898     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer0013 : ControlTransfer");
899     vector<UsbDevice> delist;
900     auto &UsbSrvClient = UsbSrvClient::GetInstance();
901     auto ret = UsbSrvClient.GetDevices(delist);
902     ASSERT_EQ(ret, 0);
903     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0013 %{public}d ret=%{public}d", __LINE__,
904                ret);
905     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
906     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0013 %{public}d size=%{public}zu", __LINE__,
907                delist.size());
908     USBDevicePipe pipe;
909         UsbDevice device;
910     bool hasDevice = false;
911     for (int32_t i = 0; i < delist.size(); i++) {
912         if (delist[i].GetClass() != 9) {
913             device = delist[i];
914             hasDevice = true;
915         }
916     }
917     EXPECT_TRUE(hasDevice);
918     UsbSrvClient.RequestRight(device.GetName());
919     ret = UsbSrvClient.OpenDevice(device, pipe);
920     ASSERT_EQ(ret, 0);
921     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0013 %{public}d OpenDevice=%{public}d",
922                __LINE__, ret);
923     uint32_t len = BUFFER_SIZE;
924     uint8_t buffer[BUFFER_SIZE] = {0};
925     struct UsbCtrlTransfer ctrldata = {0b10000001, 0, 0, 0, 500};
926     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
927     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
928     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0013 %{public}d ControlTransfer=%{public}d",
929                __LINE__, ret);
930     ASSERT_EQ(ret, 0);
931     ret = UsbSrvClient.Close(pipe);
932     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0013 %{public}d Close=%{public}d", __LINE__,
933                ret);
934     EXPECT_TRUE(ret);
935     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer0013 : ControlTransfer");
936 }
937 
938 /**
939  * @tc.name: Usbcontrolstansfer0014
940  * @tc.desc: Test functions to ControlTransfer
941  * @tc.type: FUNC
942  */
943 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer0014, TestSize.Level1)
944 {
945     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer0014 : ControlTransfer");
946     vector<UsbDevice> delist;
947     auto &UsbSrvClient = UsbSrvClient::GetInstance();
948     auto ret = UsbSrvClient.GetDevices(delist);
949     ASSERT_EQ(ret, 0);
950     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0014 %{public}d ret=%{public}d", __LINE__,
951                ret);
952     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
953     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0014 %{public}d size=%{public}zu", __LINE__,
954                delist.size());
955     USBDevicePipe pipe;
956         UsbDevice device;
957     bool hasDevice = false;
958     for (int32_t i = 0; i < delist.size(); i++) {
959         if (delist[i].GetClass() != 9) {
960             device = delist[i];
961             hasDevice = true;
962         }
963     }
964     EXPECT_TRUE(hasDevice);
965     UsbSrvClient.RequestRight(device.GetName());
966     ret = UsbSrvClient.OpenDevice(device, pipe);
967     ASSERT_EQ(ret, 0);
968     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0014 %{public}d OpenDevice=%{public}d",
969                __LINE__, ret);
970     uint32_t len = BUFFER_SIZE;
971     uint8_t buffer[BUFFER_SIZE] = {0};
972     pipe.SetBusNum(BUFFER_SIZE);
973     struct UsbCtrlTransfer ctrldata = {0b10000001, 0, 0, 0, 500};
974     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
975     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
976     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0014 %{public}d ControlTransfer=%{public}d",
977                __LINE__, ret);
978     ASSERT_NE(ret, 0);
979     pipe.SetBusNum(device.GetBusNum());
980     ret = UsbSrvClient.Close(pipe);
981     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0014 %{public}d Close=%{public}d", __LINE__,
982                ret);
983     EXPECT_TRUE(ret);
984     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer0014 : ControlTransfer");
985 }
986 
987 /**
988  * @tc.name: Usbcontrolstansfer0015
989  * @tc.desc: Test functions to ControlTransfer
990  * @tc.type: FUNC
991  */
992 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer0015, TestSize.Level1)
993 {
994     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer0015 : ControlTransfer");
995     vector<UsbDevice> delist;
996     auto &UsbSrvClient = UsbSrvClient::GetInstance();
997     auto ret = UsbSrvClient.GetDevices(delist);
998     ASSERT_EQ(ret, 0);
999     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0015 %{public}d ret=%{public}d", __LINE__,
1000                ret);
1001     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1002     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0015 %{public}d size=%{public}zu", __LINE__,
1003                delist.size());
1004     USBDevicePipe pipe;
1005         UsbDevice device;
1006     bool hasDevice = false;
1007     for (int32_t i = 0; i < delist.size(); i++) {
1008         if (delist[i].GetClass() != 9) {
1009             device = delist[i];
1010             hasDevice = true;
1011         }
1012     }
1013     EXPECT_TRUE(hasDevice);
1014     UsbSrvClient.RequestRight(device.GetName());
1015     ret = UsbSrvClient.OpenDevice(device, pipe);
1016     ASSERT_EQ(ret, 0);
1017     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0015 %{public}d OpenDevice=%{public}d",
1018                __LINE__, ret);
1019     uint32_t len = BUFFER_SIZE;
1020     uint8_t buffer[BUFFER_SIZE] = {0};
1021     pipe.SetDevAddr(BUFFER_SIZE);
1022     struct UsbCtrlTransfer ctrldata = {0b10000001, 0, 0, 0, 500};
1023     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1024     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
1025     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0015 %{public}d ControlTransfer=%{public}d",
1026                __LINE__, ret);
1027     ASSERT_NE(ret, 0);
1028     pipe.SetDevAddr(device.GetDevAddr());
1029     ret = UsbSrvClient.Close(pipe);
1030     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer0015 %{public}d Close=%{public}d", __LINE__,
1031                ret);
1032     EXPECT_TRUE(ret);
1033     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer0015 : ControlTransfer");
1034 }
1035 
1036 /**
1037  * @tc.name: Usbcontrolstansfer016
1038  * @tc.desc: Test functions to ControlTransfer
1039  * @tc.type: FUNC
1040  */
1041 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer016, TestSize.Level1)
1042 {
1043     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer016 : ControlTransfer");
1044     vector<UsbDevice> delist;
1045     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1046     auto ret = UsbSrvClient.GetDevices(delist);
1047     ASSERT_EQ(ret, 0);
1048     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer016 %{public}d ret=%{public}d", __LINE__, ret);
1049     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1050     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer016 %{public}d size=%{public}zu", __LINE__,
1051                delist.size());
1052     USBDevicePipe pipe;
1053         UsbDevice device;
1054     bool hasDevice = false;
1055     for (int32_t i = 0; i < delist.size(); i++) {
1056         if (delist[i].GetClass() != 9) {
1057             device = delist[i];
1058             hasDevice = true;
1059         }
1060     }
1061     EXPECT_TRUE(hasDevice);
1062     UsbSrvClient.RequestRight(device.GetName());
1063     ret = UsbSrvClient.OpenDevice(device, pipe);
1064     ASSERT_EQ(ret, 0);
1065     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer016 %{public}d OpenDevice=%{public}d",
1066                __LINE__, ret);
1067     uint32_t len = 16;
1068     uint8_t buffer[BUFFER_SIZE] = {0};
1069     struct UsbCtrlTransfer ctrldata = {0b10000010, 0, 0, 0, 500};
1070     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1071     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
1072     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer016 %{public}d ControlTransfer=%{public}d",
1073                __LINE__, ret);
1074     ASSERT_EQ(ret, 0);
1075     ret = UsbSrvClient.Close(pipe);
1076     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer016 %{public}d Close=%{public}d", __LINE__,
1077                ret);
1078     EXPECT_TRUE(ret);
1079     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer016 : ControlTransfer");
1080 }
1081 
1082 /**
1083  * @tc.name: Usbcontrolstansfer017
1084  * @tc.desc: Test functions to ControlTransfer
1085  * @tc.type: FUNC
1086  */
1087 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer017, TestSize.Level1)
1088 {
1089     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer017 : ControlTransfer");
1090     vector<UsbDevice> delist;
1091     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1092     auto ret = UsbSrvClient.GetDevices(delist);
1093     ASSERT_EQ(ret, 0);
1094     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer017 %{public}d ret=%{public}d", __LINE__, ret);
1095     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1096     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer017 %{public}d size=%{public}zu", __LINE__,
1097                delist.size());
1098     USBDevicePipe pipe;
1099         UsbDevice device;
1100     bool hasDevice = false;
1101     for (int32_t i = 0; i < delist.size(); i++) {
1102         if (delist[i].GetClass() != 9) {
1103             device = delist[i];
1104             hasDevice = true;
1105         }
1106     }
1107     EXPECT_TRUE(hasDevice);
1108     UsbSrvClient.RequestRight(device.GetName());
1109     ret = UsbSrvClient.OpenDevice(device, pipe);
1110     ASSERT_EQ(ret, 0);
1111     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer017 %{public}d OpenDevice=%{public}d",
1112                __LINE__, ret);
1113     uint32_t len = 16;
1114     uint8_t buffer[BUFFER_SIZE] = {0};
1115     pipe.SetBusNum(BUFFER_SIZE);
1116     struct UsbCtrlTransfer ctrldata = {0b10000010, 0, 0, 0, 500};
1117     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1118     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
1119     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer017 %{public}d ControlTransfer=%{public}d",
1120                __LINE__, ret);
1121     ASSERT_NE(ret, 0);
1122     pipe.SetBusNum(device.GetBusNum());
1123     ret = UsbSrvClient.Close(pipe);
1124     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer017 %{public}d Close=%{public}d", __LINE__,
1125                ret);
1126     EXPECT_TRUE(ret);
1127     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer017 : ControlTransfer");
1128 }
1129 
1130 /**
1131  * @tc.name: Usbcontrolstansfer018
1132  * @tc.desc: Test functions to ControlTransfer
1133  * @tc.type: FUNC
1134  */
1135 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer018, TestSize.Level1)
1136 {
1137     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer018 : ControlTransfer");
1138     vector<UsbDevice> delist;
1139     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1140     auto ret = UsbSrvClient.GetDevices(delist);
1141     ASSERT_EQ(ret, 0);
1142     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer018 %{public}d ret=%{public}d", __LINE__, ret);
1143     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1144     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer018 %{public}d size=%{public}zu", __LINE__,
1145                delist.size());
1146     USBDevicePipe pipe;
1147         UsbDevice device;
1148     bool hasDevice = false;
1149     for (int32_t i = 0; i < delist.size(); i++) {
1150         if (delist[i].GetClass() != 9) {
1151             device = delist[i];
1152             hasDevice = true;
1153         }
1154     }
1155     EXPECT_TRUE(hasDevice);
1156     UsbSrvClient.RequestRight(device.GetName());
1157     ret = UsbSrvClient.OpenDevice(device, pipe);
1158     ASSERT_EQ(ret, 0);
1159     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer018 %{public}d OpenDevice=%{public}d",
1160                __LINE__, ret);
1161     uint32_t len = 16;
1162     uint8_t buffer[BUFFER_SIZE] = {0};
1163     pipe.SetDevAddr(BUFFER_SIZE);
1164     struct UsbCtrlTransfer ctrldata = {0b10000010, 0, 0, 0, 500};
1165     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1166     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
1167     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer018 %{public}d ControlTransfer=%{public}d",
1168                __LINE__, ret);
1169     ASSERT_NE(ret, 0);
1170     pipe.SetDevAddr(device.GetDevAddr());
1171     ret = UsbSrvClient.Close(pipe);
1172     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer018 %{public}d Close=%{public}d", __LINE__,
1173                ret);
1174     EXPECT_TRUE(ret);
1175     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer018 : ControlTransfer");
1176 }
1177 
1178 /**
1179  * @tc.name: Usbcontrolstansfer019
1180  * @tc.desc: Test functions to ControlTransfer
1181  * @tc.type: FUNC
1182  */
1183 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer019, TestSize.Level1)
1184 {
1185     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer019 : ControlTransfer");
1186     vector<UsbDevice> delist;
1187     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1188     auto ret = UsbSrvClient.GetDevices(delist);
1189     ASSERT_EQ(ret, 0);
1190     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer019 %{public}d ret=%{public}d", __LINE__, ret);
1191     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1192     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer019 %{public}d size=%{public}zu", __LINE__,
1193                delist.size());
1194     USBDevicePipe pipe;
1195         UsbDevice device;
1196     bool hasDevice = false;
1197     for (int32_t i = 0; i < delist.size(); i++) {
1198         if (delist[i].GetClass() != 9) {
1199             device = delist[i];
1200             hasDevice = true;
1201         }
1202     }
1203     EXPECT_TRUE(hasDevice);
1204     UsbSrvClient.RequestRight(device.GetName());
1205     ret = UsbSrvClient.OpenDevice(device, pipe);
1206     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer019 %{public}d OpenDevice=%{public}d",
1207                __LINE__, ret);
1208     ASSERT_EQ(ret, 0);
1209     uint32_t len = BUFFER_SIZE;
1210     uint8_t buffer[BUFFER_SIZE] = {0};
1211     struct UsbCtrlTransfer ctrldata = {0b10000010, 0X0C, 0, 0, 500};
1212     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1213     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
1214     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer019 %{public}d ControlTransfer=%{public}d",
1215                __LINE__, ret);
1216     ASSERT_EQ(ret, 0);
1217     ret = UsbSrvClient.Close(pipe);
1218     USB_HILOGI(MODULE_USB_SERVICE, "UsbCoreTest::Close=%{public}d", ret);
1219     EXPECT_TRUE(ret);
1220     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer019 : ControlTransfer");
1221 }
1222 
1223 /**
1224  * @tc.name: Usbcontrolstansfer020
1225  * @tc.desc: Test functions to ControlTransfer
1226  * @tc.type: FUNC
1227  */
1228 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer020, TestSize.Level1)
1229 {
1230     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer020 : ControlTransfer");
1231     vector<UsbDevice> delist;
1232     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1233     auto ret = UsbSrvClient.GetDevices(delist);
1234     ASSERT_EQ(ret, 0);
1235     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer020 %{public}d ret=%{public}d", __LINE__, ret);
1236     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1237     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer020 %{public}d size=%{public}zu", __LINE__,
1238                delist.size());
1239     USBDevicePipe pipe;
1240         UsbDevice device;
1241     bool hasDevice = false;
1242     for (int32_t i = 0; i < delist.size(); i++) {
1243         if (delist[i].GetClass() != 9) {
1244             device = delist[i];
1245             hasDevice = true;
1246         }
1247     }
1248     EXPECT_TRUE(hasDevice);
1249     UsbSrvClient.RequestRight(device.GetName());
1250     ret = UsbSrvClient.OpenDevice(device, pipe);
1251     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer020 %{public}d OpenDevice=%{public}d",
1252                __LINE__, ret);
1253     ASSERT_EQ(ret, 0);
1254     uint32_t len = BUFFER_SIZE;
1255     uint8_t buffer[BUFFER_SIZE] = {0};
1256     pipe.SetBusNum(BUFFER_SIZE);
1257     struct UsbCtrlTransfer ctrldata = {0b10000010, 0X0C, 0, 0, 500};
1258     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1259     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
1260     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer020 %{public}d ControlTransfer=%{public}d",
1261                __LINE__, ret);
1262     ASSERT_NE(ret, 0);
1263     pipe.SetBusNum(device.GetBusNum());
1264     ret = UsbSrvClient.Close(pipe);
1265     USB_HILOGI(MODULE_USB_SERVICE, "UsbCoreTest::Close=%{public}d", ret);
1266     EXPECT_TRUE(ret);
1267     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer020 : ControlTransfer");
1268 }
1269 
1270 /**
1271  * @tc.name: Usbcontrolstansfer021
1272  * @tc.desc: Test functions to ControlTransfer
1273  * @tc.type: FUNC
1274  */
1275 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer021, TestSize.Level1)
1276 {
1277     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer021 : ControlTransfer");
1278     vector<UsbDevice> delist;
1279     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1280     auto ret = UsbSrvClient.GetDevices(delist);
1281     ASSERT_EQ(ret, 0);
1282     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer021 %{public}d ret=%{public}d", __LINE__, ret);
1283     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1284     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer021 %{public}d size=%{public}zu", __LINE__,
1285                delist.size());
1286     USBDevicePipe pipe;
1287         UsbDevice device;
1288     bool hasDevice = false;
1289     for (int32_t i = 0; i < delist.size(); i++) {
1290         if (delist[i].GetClass() != 9) {
1291             device = delist[i];
1292             hasDevice = true;
1293         }
1294     }
1295     EXPECT_TRUE(hasDevice);
1296     UsbSrvClient.RequestRight(device.GetName());
1297     ret = UsbSrvClient.OpenDevice(device, pipe);
1298     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer021 %{public}d OpenDevice=%{public}d",
1299                __LINE__, ret);
1300     ASSERT_EQ(ret, 0);
1301     uint32_t len = BUFFER_SIZE;
1302     uint8_t buffer[BUFFER_SIZE] = {0};
1303     pipe.SetDevAddr(BUFFER_SIZE);
1304     struct UsbCtrlTransfer ctrldata = {0b10000010, 0X0C, 0, 0, 500};
1305     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1306     ret = UsbSrvClient.ControlTransfer(pipe, ctrldata, ctrlbuffer);
1307     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer021 %{public}d ControlTransfer=%{public}d",
1308                __LINE__, ret);
1309     ASSERT_NE(ret, 0);
1310     pipe.SetDevAddr(device.GetDevAddr());
1311     ret = UsbSrvClient.Close(pipe);
1312     USB_HILOGI(MODULE_USB_SERVICE, "UsbCoreTest::Close=%{public}d", ret);
1313     EXPECT_TRUE(ret);
1314     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer021 : ControlTransfer");
1315 }
1316 
1317 /**
1318  * @tc.name: Usbcontrolstansfer022
1319  * @tc.desc: Test functions to UsbControlTransfer
1320  * @tc.type: FUNC
1321  */
1322 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer022, TestSize.Level1)
1323 {
1324     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer022 : UsbControlTransfer");
1325     vector<UsbDevice> delist;
1326     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1327     auto ret = UsbSrvClient.GetDevices(delist);
1328     ASSERT_EQ(ret, 0);
1329     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer022 %{public}d ret=%{public}d", __LINE__, ret);
1330     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1331     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer022 %{public}d size=%{public}zu", __LINE__,
1332                delist.size());
1333     USBDevicePipe pipe;
1334         UsbDevice device;
1335     bool hasDevice = false;
1336     for (int32_t i = 0; i < delist.size(); i++) {
1337         if (delist[i].GetClass() != 9) {
1338             device = delist[i];
1339             hasDevice = true;
1340         }
1341     }
1342     EXPECT_TRUE(hasDevice);
1343     UsbSrvClient.RequestRight(device.GetName());
1344     ret = UsbSrvClient.OpenDevice(device, pipe);
1345     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer022 %{public}d OpenDevice=%{public}d",
1346                __LINE__, ret);
1347     ASSERT_EQ(ret, 0);
1348     uint32_t len = 8;
1349     uint8_t buffer[BUFFER_SIZE] = {0};
1350     struct UsbCtrlTransferParams ctrldata = {0b10000000, 8, 0, 0, 0, 500};
1351     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1352     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1353     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer022 %{public}d UsbControlTransfer=%{public}d",
1354                __LINE__, ret);
1355     ASSERT_EQ(ret, 0);
1356     ret = UsbSrvClient.Close(pipe);
1357     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
1358     EXPECT_TRUE(ret);
1359     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer022 : UsbControlTransfer");
1360 }
1361 
1362 /**
1363  * @tc.name: Usbcontrolstansfer023
1364  * @tc.desc: Test functions to UsbControlTransfer
1365  * @tc.type: FUNC
1366  */
1367 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer023, TestSize.Level1)
1368 {
1369     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer023 : UsbControlTransfer");
1370     vector<UsbDevice> delist;
1371     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1372     auto ret = UsbSrvClient.GetDevices(delist);
1373     ASSERT_EQ(ret, 0);
1374     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer023 %{public}d ret=%{public}d", __LINE__, ret);
1375     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1376     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer023 %{public}d size=%{public}zu", __LINE__,
1377                delist.size());
1378     USBDevicePipe pipe;
1379         UsbDevice device;
1380     bool hasDevice = false;
1381     for (int32_t i = 0; i < delist.size(); i++) {
1382         if (delist[i].GetClass() != 9) {
1383             device = delist[i];
1384             hasDevice = true;
1385         }
1386     }
1387     EXPECT_TRUE(hasDevice);
1388     UsbSrvClient.RequestRight(device.GetName());
1389     ret = UsbSrvClient.OpenDevice(device, pipe);
1390     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer023 %{public}d OpenDevice=%{public}d",
1391                __LINE__, ret);
1392     ASSERT_EQ(ret, 0);
1393     uint32_t len = 8;
1394     uint8_t buffer[BUFFER_SIZE] = {0};
1395     pipe.SetBusNum(BUFFER_SIZE);
1396     struct UsbCtrlTransferParams ctrldata = {0b10000000, 8, 0, 0, 0, 500};
1397     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1398     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1399     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer023 %{public}d UsbControlTransfer=%{public}d",
1400                __LINE__, ret);
1401     ASSERT_NE(ret, 0);
1402     pipe.SetBusNum(device.GetBusNum());
1403     ret = UsbSrvClient.Close(pipe);
1404     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
1405     EXPECT_TRUE(ret);
1406     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer023 : UsbControlTransfer");
1407 }
1408 
1409 /**
1410  * @tc.name: Usbcontrolstansfer024
1411  * @tc.desc: Test functions to UsbControlTransfer
1412  * @tc.type: FUNC
1413  */
1414 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer024, TestSize.Level1)
1415 {
1416     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer024 : UsbControlTransfer");
1417     vector<UsbDevice> delist;
1418     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1419     auto ret = UsbSrvClient.GetDevices(delist);
1420     ASSERT_EQ(ret, 0);
1421     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer024 %{public}d ret=%{public}d", __LINE__, ret);
1422     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1423     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer024 %{public}d size=%{public}zu", __LINE__,
1424                delist.size());
1425     USBDevicePipe pipe;
1426     UsbDevice device;
1427     bool hasDevice = false;
1428     for (int32_t i = 0; i < delist.size(); i++) {
1429         if (delist[i].GetClass() != 9) {
1430             device = delist[i];
1431             hasDevice = true;
1432         }
1433     }
1434     EXPECT_TRUE(hasDevice);
1435     UsbSrvClient.RequestRight(device.GetName());
1436     ret = UsbSrvClient.OpenDevice(device, pipe);
1437     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer024 %{public}d OpenDevice=%{public}d",
1438                __LINE__, ret);
1439     ASSERT_EQ(ret, 0);
1440     uint32_t len = 8;
1441     uint8_t buffer[BUFFER_SIZE] = {0};
1442     pipe.SetDevAddr(BUFFER_SIZE);
1443     struct UsbCtrlTransferParams ctrldata = {0b10000000, 8, 0, 0, 0, 500};
1444     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1445     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1446     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer024 %{public}d UsbControlTransfer=%{public}d",
1447                __LINE__, ret);
1448     ASSERT_NE(ret, 0);
1449     pipe.SetDevAddr(device.GetDevAddr());
1450     ret = UsbSrvClient.Close(pipe);
1451     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
1452     EXPECT_TRUE(ret);
1453     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer024 : UsbControlTransfer");
1454 }
1455 
1456 /**
1457  * @tc.name: Usbcontrolstansfer025
1458  * @tc.desc: Test functions to UsbControlTransfer
1459  * @tc.type: FUNC
1460  */
1461 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer025, TestSize.Level1)
1462 {
1463     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer025 : UsbControlTransfer");
1464     vector<UsbDevice> delist;
1465     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1466     auto ret = UsbSrvClient.GetDevices(delist);
1467     ASSERT_EQ(ret, 0);
1468     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer025 %{public}d ret=%{public}d", __LINE__, ret);
1469     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1470     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer025 %{public}d size=%{public}zu", __LINE__,
1471                delist.size());
1472     USBDevicePipe pipe;
1473         UsbDevice device;
1474     bool hasDevice = false;
1475     for (int32_t i = 0; i < delist.size(); i++) {
1476         if (delist[i].GetClass() != 9) {
1477             device = delist[i];
1478             hasDevice = true;
1479         }
1480     }
1481     EXPECT_TRUE(hasDevice);
1482     UsbSrvClient.RequestRight(device.GetName());
1483     ret = UsbSrvClient.OpenDevice(device, pipe);
1484     ASSERT_EQ(ret, 0);
1485     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer025 %{public}d OpenDevice=%{public}d",
1486                __LINE__, ret);
1487     uint32_t len = 8;
1488     uint8_t buffer[BUFFER_SIZE] = {0};
1489     struct UsbCtrlTransferParams ctrldata = {0b10000000, 6, 0x100, 0, 0, 500};
1490     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1491     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1492     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer025 %{public}d UsbControlTransfer=%{public}d",
1493                __LINE__, ret);
1494     ASSERT_EQ(ret, 0);
1495     ret = UsbSrvClient.Close(pipe);
1496     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
1497     EXPECT_TRUE(ret);
1498     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer025 : UsbControlTransfer");
1499 }
1500 
1501 /**
1502  * @tc.name: Usbcontrolstansfer026
1503  * @tc.desc: Test functions to UsbControlTransfer
1504  * @tc.type: FUNC
1505  */
1506 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer026, TestSize.Level1)
1507 {
1508     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer026 : UsbControlTransfer");
1509     vector<UsbDevice> delist;
1510     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1511     auto ret = UsbSrvClient.GetDevices(delist);
1512     ASSERT_EQ(ret, 0);
1513     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer026 %{public}d ret=%{public}d", __LINE__, ret);
1514     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1515     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer026 %{public}d size=%{public}zu", __LINE__,
1516                delist.size());
1517     USBDevicePipe pipe;
1518         UsbDevice device;
1519     bool hasDevice = false;
1520     for (int32_t i = 0; i < delist.size(); i++) {
1521         if (delist[i].GetClass() != 9) {
1522             device = delist[i];
1523             hasDevice = true;
1524         }
1525     }
1526     EXPECT_TRUE(hasDevice);
1527     UsbSrvClient.RequestRight(device.GetName());
1528     ret = UsbSrvClient.OpenDevice(device, pipe);
1529     ASSERT_EQ(ret, 0);
1530     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer026 %{public}d OpenDevice=%{public}d",
1531                __LINE__, ret);
1532     uint32_t len = 8;
1533     uint8_t buffer[BUFFER_SIZE] = {0};
1534     pipe.SetBusNum(BUFFER_SIZE);
1535     struct UsbCtrlTransferParams ctrldata = {0b10000000, 6, 0x100, 0, 0, 500};
1536     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1537     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1538     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer026 %{public}d UsbControlTransfer=%{public}d",
1539                __LINE__, ret);
1540     ASSERT_NE(ret, 0);
1541     pipe.SetBusNum(device.GetBusNum());
1542     ret = UsbSrvClient.Close(pipe);
1543     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
1544     EXPECT_TRUE(ret);
1545     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer026 : UsbControlTransfer");
1546 }
1547 
1548 /**
1549  * @tc.name: Usbcontrolstansfer027
1550  * @tc.desc: Test functions to UsbControlTransfer
1551  * @tc.type: FUNC
1552  */
1553 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer027, TestSize.Level1)
1554 {
1555     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer027 : UsbControlTransfer");
1556     vector<UsbDevice> delist;
1557     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1558     auto ret = UsbSrvClient.GetDevices(delist);
1559     ASSERT_EQ(ret, 0);
1560     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer027 %{public}d ret=%{public}d", __LINE__, ret);
1561     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1562     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer027 %{public}d size=%{public}zu", __LINE__,
1563                delist.size());
1564     USBDevicePipe pipe;
1565         UsbDevice device;
1566     bool hasDevice = false;
1567     for (int32_t i = 0; i < delist.size(); i++) {
1568         if (delist[i].GetClass() != 9) {
1569             device = delist[i];
1570             hasDevice = true;
1571         }
1572     }
1573     EXPECT_TRUE(hasDevice);
1574     UsbSrvClient.RequestRight(device.GetName());
1575     ret = UsbSrvClient.OpenDevice(device, pipe);
1576     ASSERT_EQ(ret, 0);
1577     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer027 %{public}d OpenDevice=%{public}d",
1578                __LINE__, ret);
1579     uint32_t len = 8;
1580     uint8_t buffer[BUFFER_SIZE] = {0};
1581     pipe.SetDevAddr(BUFFER_SIZE);
1582     struct UsbCtrlTransferParams ctrldata = {0b10000000, 6, 0x100, 0, 0, 500};
1583     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1584     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1585     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer027 %{public}d UsbControlTransfer=%{public}d",
1586                __LINE__, ret);
1587     ASSERT_NE(ret, 0);
1588     pipe.SetDevAddr(device.GetDevAddr());
1589     ret = UsbSrvClient.Close(pipe);
1590     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
1591     EXPECT_TRUE(ret);
1592     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer027 : UsbControlTransfer");
1593 }
1594 
1595 /**
1596  * @tc.name: Usbcontrolstansfer028
1597  * @tc.desc: Test functions to UsbControlTransfer
1598  * @tc.type: FUNC
1599  */
1600 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer028, TestSize.Level1)
1601 {
1602     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer028 : UsbControlTransfer");
1603     vector<UsbDevice> delist;
1604     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1605     auto ret = UsbSrvClient.GetDevices(delist);
1606     ASSERT_EQ(ret, 0);
1607     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer028 %{public}d ret=%{public}d", __LINE__, ret);
1608     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1609     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer028 %{public}d size=%{public}zu", __LINE__,
1610                delist.size());
1611     USBDevicePipe pipe;
1612         UsbDevice device;
1613     bool hasDevice = false;
1614     for (int32_t i = 0; i < delist.size(); i++) {
1615         if (delist[i].GetClass() != 9) {
1616             device = delist[i];
1617             hasDevice = true;
1618         }
1619     }
1620     EXPECT_TRUE(hasDevice);
1621     UsbSrvClient.RequestRight(device.GetName());
1622     UsbInterface interface = device.GetConfigs().front().GetInterfaces().front();
1623     ret = UsbSrvClient.OpenDevice(device, pipe);
1624     ASSERT_EQ(ret, 0);
1625     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer028 %{public}d OpenDevice=%{public}d",
1626                __LINE__, ret);
1627     uint32_t len = BUFFER_SIZE;
1628     uint8_t buffer[BUFFER_SIZE] = {0};
1629     struct UsbCtrlTransferParams ctrldata = {0b10000001, 0X0A, 0, 0, 0, 500};
1630     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1631     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1632     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer028 %{public}d UsbControlTransfer=%{public}d",
1633                __LINE__, ret);
1634     ASSERT_EQ(ret, 0);
1635     ret = UsbSrvClient.Close(pipe);
1636     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer028 %{public}d Close=%{public}d", __LINE__,
1637                ret);
1638     EXPECT_TRUE(ret);
1639     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer028 : UsbControlTransfer");
1640 }
1641 
1642 /**
1643  * @tc.name: Usbcontrolstansfer029
1644  * @tc.desc: Test functions to UsbControlTransfer
1645  * @tc.type: FUNC
1646  */
1647 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer029, TestSize.Level1)
1648 {
1649     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer029 : UsbControlTransfer");
1650     vector<UsbDevice> delist;
1651     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1652     auto ret = UsbSrvClient.GetDevices(delist);
1653     ASSERT_EQ(ret, 0);
1654     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer029 %{public}d ret=%{public}d", __LINE__, ret);
1655     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1656     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer029 %{public}d size=%{public}zu", __LINE__,
1657                delist.size());
1658     USBDevicePipe pipe;
1659         UsbDevice device;
1660     bool hasDevice = false;
1661     for (int32_t i = 0; i < delist.size(); i++) {
1662         if (delist[i].GetClass() != 9) {
1663             device = delist[i];
1664             hasDevice = true;
1665         }
1666     }
1667     EXPECT_TRUE(hasDevice);
1668     UsbSrvClient.RequestRight(device.GetName());
1669     UsbInterface interface = device.GetConfigs().front().GetInterfaces().front();
1670     ret = UsbSrvClient.OpenDevice(device, pipe);
1671     ASSERT_EQ(ret, 0);
1672     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer029 %{public}d OpenDevice=%{public}d",
1673                __LINE__, ret);
1674     uint32_t len = BUFFER_SIZE;
1675     uint8_t buffer[BUFFER_SIZE] = {0};
1676     pipe.SetBusNum(BUFFER_SIZE);
1677     struct UsbCtrlTransferParams ctrldata = {0b10000001, 0X0A, 0, 0, 0, 500};
1678     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1679     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1680     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer029 %{public}d UsbControlTransfer=%{public}d",
1681                __LINE__, ret);
1682     ASSERT_NE(ret, 0);
1683     pipe.SetBusNum(device.GetBusNum());
1684     ret = UsbSrvClient.Close(pipe);
1685     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer029 %{public}d Close=%{public}d", __LINE__,
1686                ret);
1687     EXPECT_TRUE(ret);
1688     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer029 : UsbControlTransfer");
1689 }
1690 
1691 /**
1692  * @tc.name: Usbcontrolstansfer030
1693  * @tc.desc: Test functions to UsbControlTransfer
1694  * @tc.type: FUNC
1695  */
1696 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer030, TestSize.Level1)
1697 {
1698     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer030 : UsbControlTransfer");
1699     vector<UsbDevice> delist;
1700     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1701     auto ret = UsbSrvClient.GetDevices(delist);
1702     ASSERT_EQ(ret, 0);
1703     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer030 %{public}d ret=%{public}d", __LINE__, ret);
1704     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1705     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer030 %{public}d size=%{public}zu", __LINE__,
1706                delist.size());
1707     USBDevicePipe pipe;
1708         UsbDevice device;
1709     bool hasDevice = false;
1710     for (int32_t i = 0; i < delist.size(); i++) {
1711         if (delist[i].GetClass() != 9) {
1712             device = delist[i];
1713             hasDevice = true;
1714         }
1715     }
1716     EXPECT_TRUE(hasDevice);
1717     UsbSrvClient.RequestRight(device.GetName());
1718     UsbInterface interface = device.GetConfigs().front().GetInterfaces().front();
1719     ret = UsbSrvClient.OpenDevice(device, pipe);
1720     ASSERT_EQ(ret, 0);
1721     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer030 %{public}d OpenDevice=%{public}d",
1722                __LINE__, ret);
1723     uint32_t len = BUFFER_SIZE;
1724     uint8_t buffer[BUFFER_SIZE] = {0};
1725     pipe.SetDevAddr(BUFFER_SIZE);
1726     struct UsbCtrlTransferParams ctrldata = {0b10000001, 0X0A, 0, 0, 0, 500};
1727     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1728     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1729     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer030 %{public}d UsbControlTransfer=%{public}d",
1730                __LINE__, ret);
1731     ASSERT_NE(ret, 0);
1732     pipe.SetDevAddr(device.GetDevAddr());
1733     ret = UsbSrvClient.Close(pipe);
1734     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer030 %{public}d Close=%{public}d", __LINE__,
1735                ret);
1736     EXPECT_TRUE(ret);
1737     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer030 : UsbControlTransfer");
1738 }
1739 
1740 /**
1741  * @tc.name: Usbcontrolstansfer031
1742  * @tc.desc: Test functions to UsbControlTransfer
1743  * @tc.type: FUNC
1744  */
1745 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer031, TestSize.Level1)
1746 {
1747     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer031 : UsbControlTransfer");
1748     vector<UsbDevice> delist;
1749     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1750     auto ret = UsbSrvClient.GetDevices(delist);
1751     ASSERT_EQ(ret, 0);
1752     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer031 %{public}d ret=%{public}d", __LINE__, ret);
1753     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1754     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer031 %{public}d size=%{public}zu", __LINE__,
1755                delist.size());
1756     USBDevicePipe pipe;
1757         UsbDevice device;
1758     bool hasDevice = false;
1759     for (int32_t i = 0; i < delist.size(); i++) {
1760         if (delist[i].GetClass() != 9) {
1761             device = delist[i];
1762             hasDevice = true;
1763         }
1764     }
1765     EXPECT_TRUE(hasDevice);
1766     UsbSrvClient.RequestRight(device.GetName());
1767     ret = UsbSrvClient.OpenDevice(device, pipe);
1768     ASSERT_EQ(ret, 0);
1769     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer031 %{public}d OpenDevice=%{public}d",
1770                __LINE__, ret);
1771     uint32_t len = BUFFER_SIZE;
1772     uint8_t buffer[BUFFER_SIZE] = {0};
1773     struct UsbCtrlTransferParams ctrldata = {0b10000000, 0, 0, 0, 0, 500};
1774     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1775     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1776     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer031 %{public}d UsbControlTransfer=%{public}d",
1777                __LINE__, ret);
1778     ASSERT_EQ(ret, 0);
1779     ret = UsbSrvClient.Close(pipe);
1780     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer031 %{public}d Close=%{public}d", __LINE__,
1781                ret);
1782     EXPECT_TRUE(ret);
1783     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer031 : UsbControlTransfer");
1784 }
1785 
1786 /**
1787  * @tc.name: Usbcontrolstansfer032
1788  * @tc.desc: Test functions to UsbControlTransfer
1789  * @tc.type: FUNC
1790  */
1791 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer032, TestSize.Level1)
1792 {
1793     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer032 : UsbControlTransfer");
1794     vector<UsbDevice> delist;
1795     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1796     auto ret = UsbSrvClient.GetDevices(delist);
1797     ASSERT_EQ(ret, 0);
1798     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer032 %{public}d ret=%{public}d", __LINE__, ret);
1799     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1800     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer032 %{public}d size=%{public}zu", __LINE__,
1801                delist.size());
1802     USBDevicePipe pipe;
1803         UsbDevice device;
1804     bool hasDevice = false;
1805     for (int32_t i = 0; i < delist.size(); i++) {
1806         if (delist[i].GetClass() != 9) {
1807             device = delist[i];
1808             hasDevice = true;
1809         }
1810     }
1811     EXPECT_TRUE(hasDevice);
1812     UsbSrvClient.RequestRight(device.GetName());
1813     ret = UsbSrvClient.OpenDevice(device, pipe);
1814     ASSERT_EQ(ret, 0);
1815     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer032 %{public}d OpenDevice=%{public}d",
1816                __LINE__, ret);
1817     uint32_t len = BUFFER_SIZE;
1818     uint8_t buffer[BUFFER_SIZE] = {0};
1819     pipe.SetBusNum(BUFFER_SIZE);
1820     struct UsbCtrlTransferParams ctrldata = {0b10000000, 0, 0, 0, 0, 500};
1821     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1822     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1823     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer032 %{public}d UsbControlTransfer=%{public}d",
1824                __LINE__, ret);
1825     ASSERT_NE(ret, 0);
1826     pipe.SetBusNum(device.GetBusNum());
1827     ret = UsbSrvClient.Close(pipe);
1828     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer032 %{public}d Close=%{public}d", __LINE__,
1829                ret);
1830     EXPECT_TRUE(ret);
1831     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer032 : UsbControlTransfer");
1832 }
1833 
1834 /**
1835  * @tc.name: Usbcontrolstansfer033
1836  * @tc.desc: Test functions to UsbControlTransfer
1837  * @tc.type: FUNC
1838  */
1839 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer033, TestSize.Level1)
1840 {
1841     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer033 : UsbControlTransfer");
1842     vector<UsbDevice> delist;
1843     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1844     auto ret = UsbSrvClient.GetDevices(delist);
1845     ASSERT_EQ(ret, 0);
1846     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer033 %{public}d ret=%{public}d", __LINE__, ret);
1847     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1848     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer033 %{public}d size=%{public}zu", __LINE__,
1849                delist.size());
1850     USBDevicePipe pipe;
1851         UsbDevice device;
1852     bool hasDevice = false;
1853     for (int32_t i = 0; i < delist.size(); i++) {
1854         if (delist[i].GetClass() != 9) {
1855             device = delist[i];
1856             hasDevice = true;
1857         }
1858     }
1859     EXPECT_TRUE(hasDevice);
1860     UsbSrvClient.RequestRight(device.GetName());
1861     ret = UsbSrvClient.OpenDevice(device, pipe);
1862     ASSERT_EQ(ret, 0);
1863     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer033 %{public}d OpenDevice=%{public}d",
1864                __LINE__, ret);
1865     uint32_t len = BUFFER_SIZE;
1866     uint8_t buffer[BUFFER_SIZE] = {0};
1867     pipe.SetDevAddr(BUFFER_SIZE);
1868     struct UsbCtrlTransferParams ctrldata = {0b10000000, 0, 0, 0, 0, 500};
1869     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1870     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1871     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer033 %{public}d UsbControlTransfer=%{public}d",
1872                __LINE__, ret);
1873     ASSERT_NE(ret, 0);
1874     pipe.SetDevAddr(device.GetDevAddr());
1875     ret = UsbSrvClient.Close(pipe);
1876     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer033 %{public}d Close=%{public}d", __LINE__,
1877                ret);
1878     EXPECT_TRUE(ret);
1879     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer033 : UsbControlTransfer");
1880 }
1881 
1882 /**
1883  * @tc.name: Usbcontrolstansfer034
1884  * @tc.desc: Test functions to UsbControlTransfer
1885  * @tc.type: FUNC
1886  */
1887 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer034, TestSize.Level1)
1888 {
1889     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer034 : UsbControlTransfer");
1890     vector<UsbDevice> delist;
1891     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1892     auto ret = UsbSrvClient.GetDevices(delist);
1893     ASSERT_EQ(ret, 0);
1894     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer034 %{public}d ret=%{public}d", __LINE__,
1895                ret);
1896     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1897     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer034 %{public}d size=%{public}zu", __LINE__,
1898                delist.size());
1899     USBDevicePipe pipe;
1900         UsbDevice device;
1901     bool hasDevice = false;
1902     for (int32_t i = 0; i < delist.size(); i++) {
1903         if (delist[i].GetClass() != 9) {
1904             device = delist[i];
1905             hasDevice = true;
1906         }
1907     }
1908     EXPECT_TRUE(hasDevice);
1909     UsbSrvClient.RequestRight(device.GetName());
1910     ret = UsbSrvClient.OpenDevice(device, pipe);
1911     ASSERT_EQ(ret, 0);
1912     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer034 %{public}d OpenDevice=%{public}d",
1913                __LINE__, ret);
1914     uint32_t len = BUFFER_SIZE;
1915     uint8_t buffer[BUFFER_SIZE] = {0};
1916     struct UsbCtrlTransferParams ctrldata = {0b10000001, 0, 0, 0, 0, 500};
1917     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1918     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1919     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer034 %{public}d UsbControlTransfer=%{public}d",
1920                __LINE__, ret);
1921     ASSERT_EQ(ret, 0);
1922     ret = UsbSrvClient.Close(pipe);
1923     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer034 %{public}d Close=%{public}d", __LINE__,
1924                ret);
1925     EXPECT_TRUE(ret);
1926     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer034 : UsbControlTransfer");
1927 }
1928 
1929 /**
1930  * @tc.name: Usbcontrolstansfer035
1931  * @tc.desc: Test functions to UsbControlTransfer
1932  * @tc.type: FUNC
1933  */
1934 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer035, TestSize.Level1)
1935 {
1936     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer035 : UsbControlTransfer");
1937     vector<UsbDevice> delist;
1938     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1939     auto ret = UsbSrvClient.GetDevices(delist);
1940     ASSERT_EQ(ret, 0);
1941     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer035 %{public}d ret=%{public}d", __LINE__,
1942                ret);
1943     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1944     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer035 %{public}d size=%{public}zu", __LINE__,
1945                delist.size());
1946     USBDevicePipe pipe;
1947         UsbDevice device;
1948     bool hasDevice = false;
1949     for (int32_t i = 0; i < delist.size(); i++) {
1950         if (delist[i].GetClass() != 9) {
1951             device = delist[i];
1952             hasDevice = true;
1953         }
1954     }
1955     EXPECT_TRUE(hasDevice);
1956     UsbSrvClient.RequestRight(device.GetName());
1957     ret = UsbSrvClient.OpenDevice(device, pipe);
1958     ASSERT_EQ(ret, 0);
1959     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer035 %{public}d OpenDevice=%{public}d",
1960                __LINE__, ret);
1961     uint32_t len = BUFFER_SIZE;
1962     uint8_t buffer[BUFFER_SIZE] = {0};
1963     pipe.SetBusNum(BUFFER_SIZE);
1964     struct UsbCtrlTransferParams ctrldata = {0b10000001, 0, 0, 0, 0, 500};
1965     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
1966     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
1967     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer035 %{public}d UsbControlTransfer=%{public}d",
1968                __LINE__, ret);
1969     ASSERT_NE(ret, 0);
1970     pipe.SetBusNum(device.GetBusNum());
1971     ret = UsbSrvClient.Close(pipe);
1972     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer035 %{public}d Close=%{public}d", __LINE__,
1973                ret);
1974     EXPECT_TRUE(ret);
1975     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer035 : UsbControlTransfer");
1976 }
1977 
1978 /**
1979  * @tc.name: Usbcontrolstansfer036
1980  * @tc.desc: Test functions to UsbControlTransfer
1981  * @tc.type: FUNC
1982  */
1983 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer036, TestSize.Level1)
1984 {
1985     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer036 : UsbControlTransfer");
1986     vector<UsbDevice> delist;
1987     auto &UsbSrvClient = UsbSrvClient::GetInstance();
1988     auto ret = UsbSrvClient.GetDevices(delist);
1989     ASSERT_EQ(ret, 0);
1990     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer036 %{public}d ret=%{public}d", __LINE__,
1991                ret);
1992     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
1993     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer036 %{public}d size=%{public}zu", __LINE__,
1994                delist.size());
1995     USBDevicePipe pipe;
1996         UsbDevice device;
1997     bool hasDevice = false;
1998     for (int32_t i = 0; i < delist.size(); i++) {
1999         if (delist[i].GetClass() != 9) {
2000             device = delist[i];
2001             hasDevice = true;
2002         }
2003     }
2004     EXPECT_TRUE(hasDevice);
2005     UsbSrvClient.RequestRight(device.GetName());
2006     ret = UsbSrvClient.OpenDevice(device, pipe);
2007     ASSERT_EQ(ret, 0);
2008     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer036 %{public}d OpenDevice=%{public}d",
2009                __LINE__, ret);
2010     uint32_t len = BUFFER_SIZE;
2011     uint8_t buffer[BUFFER_SIZE] = {0};
2012     pipe.SetDevAddr(BUFFER_SIZE);
2013     struct UsbCtrlTransferParams ctrldata = {0b10000001, 0, 0, 0, 0, 500};
2014     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
2015     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
2016     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer036 %{public}d UsbControlTransfer=%{public}d",
2017                __LINE__, ret);
2018     ASSERT_NE(ret, 0);
2019     pipe.SetDevAddr(device.GetDevAddr());
2020     ret = UsbSrvClient.Close(pipe);
2021     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer036 %{public}d Close=%{public}d", __LINE__,
2022                ret);
2023     EXPECT_TRUE(ret);
2024     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer036 : UsbControlTransfer");
2025 }
2026 
2027 /**
2028  * @tc.name: Usbcontrolstansfer037
2029  * @tc.desc: Test functions to UsbControlTransfer
2030  * @tc.type: FUNC
2031  */
2032 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer037, TestSize.Level1)
2033 {
2034     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer037 : UsbControlTransfer");
2035     vector<UsbDevice> delist;
2036     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2037     auto ret = UsbSrvClient.GetDevices(delist);
2038     ASSERT_EQ(ret, 0);
2039     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer037 %{public}d ret=%{public}d", __LINE__, ret);
2040     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2041     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer037 %{public}d size=%{public}zu", __LINE__,
2042                delist.size());
2043     USBDevicePipe pipe;
2044         UsbDevice device;
2045     bool hasDevice = false;
2046     for (int32_t i = 0; i < delist.size(); i++) {
2047         if (delist[i].GetClass() != 9) {
2048             device = delist[i];
2049             hasDevice = true;
2050         }
2051     }
2052     EXPECT_TRUE(hasDevice);
2053     UsbSrvClient.RequestRight(device.GetName());
2054     ret = UsbSrvClient.OpenDevice(device, pipe);
2055     ASSERT_EQ(ret, 0);
2056     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer037 %{public}d OpenDevice=%{public}d",
2057                __LINE__, ret);
2058     uint32_t len = 16;
2059     uint8_t buffer[BUFFER_SIZE] = {0};
2060     struct UsbCtrlTransferParams ctrldata = {0b10000010, 0, 0, 0, 0, 500};
2061     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
2062     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
2063     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer037 %{public}d UsbControlTransfer=%{public}d",
2064                __LINE__, ret);
2065     ASSERT_EQ(ret, 0);
2066     ret = UsbSrvClient.Close(pipe);
2067     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer037 %{public}d Close=%{public}d", __LINE__,
2068                ret);
2069     EXPECT_TRUE(ret);
2070     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer037 : UsbControlTransfer");
2071 }
2072 
2073 /**
2074  * @tc.name: Usbcontrolstansfer038
2075  * @tc.desc: Test functions to UsbControlTransfer
2076  * @tc.type: FUNC
2077  */
2078 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer038, TestSize.Level1)
2079 {
2080     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer038 : UsbControlTransfer");
2081     vector<UsbDevice> delist;
2082     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2083     auto ret = UsbSrvClient.GetDevices(delist);
2084     ASSERT_EQ(ret, 0);
2085     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer038 %{public}d ret=%{public}d", __LINE__, ret);
2086     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2087     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer038 %{public}d size=%{public}zu", __LINE__,
2088                delist.size());
2089     USBDevicePipe pipe;
2090         UsbDevice device;
2091     bool hasDevice = false;
2092     for (int32_t i = 0; i < delist.size(); i++) {
2093         if (delist[i].GetClass() != 9) {
2094             device = delist[i];
2095             hasDevice = true;
2096         }
2097     }
2098     EXPECT_TRUE(hasDevice);
2099     UsbSrvClient.RequestRight(device.GetName());
2100     ret = UsbSrvClient.OpenDevice(device, pipe);
2101     ASSERT_EQ(ret, 0);
2102     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer038 %{public}d OpenDevice=%{public}d",
2103                __LINE__, ret);
2104     uint32_t len = 16;
2105     uint8_t buffer[BUFFER_SIZE] = {0};
2106     pipe.SetBusNum(BUFFER_SIZE);
2107     struct UsbCtrlTransferParams ctrldata = {0b10000010, 0, 0, 0, 0, 500};
2108     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
2109     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
2110     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer038 %{public}d UsbControlTransfer=%{public}d",
2111                __LINE__, ret);
2112     ASSERT_NE(ret, 0);
2113     pipe.SetBusNum(device.GetBusNum());
2114     ret = UsbSrvClient.Close(pipe);
2115     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer038 %{public}d Close=%{public}d", __LINE__,
2116                ret);
2117     EXPECT_TRUE(ret);
2118     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer038 : UsbControlTransfer");
2119 }
2120 
2121 /**
2122  * @tc.name: Usbcontrolstansfer039
2123  * @tc.desc: Test functions to UsbControlTransfer
2124  * @tc.type: FUNC
2125  */
2126 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer039, TestSize.Level1)
2127 {
2128     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer039 : UsbControlTransfer");
2129     vector<UsbDevice> delist;
2130     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2131     auto ret = UsbSrvClient.GetDevices(delist);
2132     ASSERT_EQ(ret, 0);
2133     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer039 %{public}d ret=%{public}d", __LINE__, ret);
2134     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2135     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer039 %{public}d size=%{public}zu", __LINE__,
2136                delist.size());
2137     USBDevicePipe pipe;
2138         UsbDevice device;
2139     bool hasDevice = false;
2140     for (int32_t i = 0; i < delist.size(); i++) {
2141         if (delist[i].GetClass() != 9) {
2142             device = delist[i];
2143             hasDevice = true;
2144         }
2145     }
2146     EXPECT_TRUE(hasDevice);
2147     UsbSrvClient.RequestRight(device.GetName());
2148     ret = UsbSrvClient.OpenDevice(device, pipe);
2149     ASSERT_EQ(ret, 0);
2150     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer039 %{public}d OpenDevice=%{public}d",
2151                __LINE__, ret);
2152     uint32_t len = 16;
2153     uint8_t buffer[BUFFER_SIZE] = {0};
2154     pipe.SetDevAddr(BUFFER_SIZE);
2155     struct UsbCtrlTransferParams ctrldata = {0b10000010, 0, 0, 0, 0, 500};
2156     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
2157     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
2158     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer039 %{public}d UsbControlTransfer=%{public}d",
2159                __LINE__, ret);
2160     ASSERT_NE(ret, 0);
2161     pipe.SetDevAddr(device.GetDevAddr());
2162     ret = UsbSrvClient.Close(pipe);
2163     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer039 %{public}d Close=%{public}d", __LINE__,
2164                ret);
2165     EXPECT_TRUE(ret);
2166     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer039 : UsbControlTransfer");
2167 }
2168 
2169 /**
2170  * @tc.name: Usbcontrolstansfer040
2171  * @tc.desc: Test functions to UsbControlTransfer
2172  * @tc.type: FUNC
2173  */
2174 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer040, TestSize.Level1)
2175 {
2176     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer040 : UsbControlTransfer");
2177     vector<UsbDevice> delist;
2178     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2179     auto ret = UsbSrvClient.GetDevices(delist);
2180     ASSERT_EQ(ret, 0);
2181     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer040 %{public}d ret=%{public}d", __LINE__, ret);
2182     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2183     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer040 %{public}d size=%{public}zu", __LINE__,
2184                delist.size());
2185     USBDevicePipe pipe;
2186         UsbDevice device;
2187     bool hasDevice = false;
2188     for (int32_t i = 0; i < delist.size(); i++) {
2189         if (delist[i].GetClass() != 9) {
2190             device = delist[i];
2191             hasDevice = true;
2192         }
2193     }
2194     EXPECT_TRUE(hasDevice);
2195     UsbSrvClient.RequestRight(device.GetName());
2196     ret = UsbSrvClient.OpenDevice(device, pipe);
2197     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer040 %{public}d OpenDevice=%{public}d",
2198                __LINE__, ret);
2199     ASSERT_EQ(ret, 0);
2200     uint32_t len = BUFFER_SIZE;
2201     uint8_t buffer[BUFFER_SIZE] = {0};
2202     struct UsbCtrlTransferParams ctrldata = {0b10000010, 0X0C, 0, 0, 0, 500};
2203     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
2204     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
2205     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer040 %{public}d UsbControlTransfer=%{public}d",
2206                __LINE__, ret);
2207     ASSERT_EQ(ret, 0);
2208     ret = UsbSrvClient.Close(pipe);
2209     USB_HILOGI(MODULE_USB_SERVICE, "UsbCoreTest::Close=%{public}d", ret);
2210     EXPECT_TRUE(ret);
2211     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer040 : UsbControlTransfer");
2212 }
2213 
2214 /**
2215  * @tc.name: Usbcontrolstansfer041
2216  * @tc.desc: Test functions to UsbControlTransfer
2217  * @tc.type: FUNC
2218  */
2219 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer041, TestSize.Level1)
2220 {
2221     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer041 : UsbControlTransfer");
2222     vector<UsbDevice> delist;
2223     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2224     auto ret = UsbSrvClient.GetDevices(delist);
2225     ASSERT_EQ(ret, 0);
2226     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer041 %{public}d ret=%{public}d", __LINE__, ret);
2227     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2228     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer041 %{public}d size=%{public}zu", __LINE__,
2229                delist.size());
2230     USBDevicePipe pipe;
2231         UsbDevice device;
2232     bool hasDevice = false;
2233     for (int32_t i = 0; i < delist.size(); i++) {
2234         if (delist[i].GetClass() != 9) {
2235             device = delist[i];
2236             hasDevice = true;
2237         }
2238     }
2239     EXPECT_TRUE(hasDevice);
2240     UsbSrvClient.RequestRight(device.GetName());
2241     ret = UsbSrvClient.OpenDevice(device, pipe);
2242     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer041 %{public}d OpenDevice=%{public}d",
2243                __LINE__, ret);
2244     ASSERT_EQ(ret, 0);
2245     uint32_t len = BUFFER_SIZE;
2246     uint8_t buffer[BUFFER_SIZE] = {0};
2247     pipe.SetBusNum(BUFFER_SIZE);
2248     struct UsbCtrlTransferParams ctrldata = {0b10000010, 0X0C, 0, 0, 0, 500};
2249     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
2250     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
2251     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer041 %{public}d UsbControlTransfer=%{public}d",
2252                __LINE__, ret);
2253     ASSERT_NE(ret, 0);
2254     pipe.SetBusNum(device.GetBusNum());
2255     ret = UsbSrvClient.Close(pipe);
2256     USB_HILOGI(MODULE_USB_SERVICE, "UsbCoreTest::Close=%{public}d", ret);
2257     EXPECT_TRUE(ret);
2258     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer041 : UsbControlTransfer");
2259 }
2260 
2261 /**
2262  * @tc.name: Usbcontrolstansfer042
2263  * @tc.desc: Test functions to UsbControlTransfer
2264  * @tc.type: FUNC
2265  */
2266 HWTEST_F(UsbDevicePipeTest, Usbcontrolstansfer042, TestSize.Level1)
2267 {
2268     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Usbcontrolstansfer042 : UsbControlTransfer");
2269     vector<UsbDevice> delist;
2270     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2271     auto ret = UsbSrvClient.GetDevices(delist);
2272     ASSERT_EQ(ret, 0);
2273     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer042 %{public}d ret=%{public}d", __LINE__, ret);
2274     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2275     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer042 %{public}d size=%{public}zu", __LINE__,
2276                delist.size());
2277     USBDevicePipe pipe;
2278         UsbDevice device;
2279     bool hasDevice = false;
2280     for (int32_t i = 0; i < delist.size(); i++) {
2281         if (delist[i].GetClass() != 9) {
2282             device = delist[i];
2283             hasDevice = true;
2284         }
2285     }
2286     EXPECT_TRUE(hasDevice);
2287     UsbSrvClient.RequestRight(device.GetName());
2288     ret = UsbSrvClient.OpenDevice(device, pipe);
2289     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer042 %{public}d OpenDevice=%{public}d",
2290                __LINE__, ret);
2291     ASSERT_EQ(ret, 0);
2292     uint32_t len = BUFFER_SIZE;
2293     uint8_t buffer[BUFFER_SIZE] = {0};
2294     pipe.SetDevAddr(BUFFER_SIZE);
2295     struct UsbCtrlTransferParams ctrldata = {0b10000010, 0X0C, 0, 0, 0, 500};
2296     std::vector<uint8_t> ctrlbuffer = {buffer, buffer + len};
2297     ret = UsbSrvClient.UsbControlTransfer(pipe, ctrldata, ctrlbuffer);
2298     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Usbcontrolstansfer042 %{public}d UsbControlTransfer=%{public}d",
2299                __LINE__, ret);
2300     ASSERT_NE(ret, 0);
2301     pipe.SetDevAddr(device.GetDevAddr());
2302     ret = UsbSrvClient.Close(pipe);
2303     USB_HILOGI(MODULE_USB_SERVICE, "UsbCoreTest::Close=%{public}d", ret);
2304     EXPECT_TRUE(ret);
2305     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Usbcontrolstansfer042 : UsbControlTransfer");
2306 }
2307 
2308 /**
2309  * @tc.name: UsbClaimInterface001
2310  * @tc.desc: Test functions to ClaimInterface(const UsbInterface &interface, bool force);
2311  * @tc.type: FUNC
2312  */
2313 HWTEST_F(UsbDevicePipeTest, UsbClaimInterface001, TestSize.Level1)
2314 {
2315     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbClaimInterface001 : ClaimInterface");
2316     vector<UsbDevice> delist;
2317     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2318     auto ret = UsbSrvClient.GetDevices(delist);
2319     ASSERT_EQ(ret, 0);
2320     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface001 %{public}d ret=%{public}d", __LINE__, ret);
2321     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2322     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface001 %{public}d size=%{public}zu", __LINE__,
2323                delist.size());
2324     USBDevicePipe pipe;
2325         UsbDevice device;
2326     bool hasDevice = false;
2327     for (int32_t i = 0; i < delist.size(); i++) {
2328         if (delist[i].GetClass() != 9) {
2329             device = delist[i];
2330             hasDevice = true;
2331         }
2332     }
2333     EXPECT_TRUE(hasDevice);
2334     UsbSrvClient.RequestRight(device.GetName());
2335     ret = UsbSrvClient.OpenDevice(device, pipe);
2336     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface001 %{public}d OpenDevice=%{public}d", __LINE__,
2337                ret);
2338     ASSERT_EQ(ret, 0);
2339     UsbInterface interface = device.GetConfigs().front().GetInterfaces().front();
2340     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
2341     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface001 %{public}d ClaimInterface=%{public}d",
2342                __LINE__, ret);
2343     ASSERT_EQ(ret, 0);
2344     bool close = UsbSrvClient.Close(pipe);
2345     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface001 %{public}d close=%{public}d", __LINE__,
2346                close);
2347     EXPECT_TRUE(close);
2348     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbClaimInterface001 : ClaimInterface");
2349 }
2350 
2351 /**
2352  * @tc.name: UsbClaimInterface002
2353  * @tc.desc: Test functions to ClaimInterface(const UsbInterface &interface, bool force);
2354  * @tc.type: FUNC
2355  */
2356 HWTEST_F(UsbDevicePipeTest, UsbClaimInterface002, TestSize.Level1)
2357 {
2358     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbClaimInterface002 : ClaimInterface");
2359     vector<UsbDevice> delist;
2360     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2361     auto ret = UsbSrvClient.GetDevices(delist);
2362     ASSERT_EQ(ret, 0);
2363     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface002 %{public}d ret=%{public}d", __LINE__, ret);
2364     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2365     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface002 %{public}d size=%{public}zu", __LINE__,
2366                delist.size());
2367     USBDevicePipe pipe;
2368         UsbDevice device;
2369     bool hasDevice = false;
2370     for (int32_t i = 0; i < delist.size(); i++) {
2371         if (delist[i].GetClass() != 9) {
2372             device = delist[i];
2373             hasDevice = true;
2374         }
2375     }
2376     EXPECT_TRUE(hasDevice);
2377     UsbSrvClient.RequestRight(device.GetName());
2378     ret = UsbSrvClient.OpenDevice(device, pipe);
2379     ASSERT_EQ(ret, 0);
2380     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface002 %{public}d OpenDevice=%{public}d", __LINE__,
2381                ret);
2382     UsbInterface interface = device.GetConfigs().front().GetInterfaces().front();
2383     ret = UsbSrvClient.ClaimInterface(pipe, interface, false);
2384     ASSERT_EQ(ret, 0);
2385     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface002 %{public}d ClaimInterface=%{public}d",
2386                __LINE__, ret);
2387     bool close = UsbSrvClient.Close(pipe);
2388     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface002 %{public}d close=%{public}d", __LINE__,
2389                close);
2390     EXPECT_TRUE(close);
2391     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbClaimInterface002 : ClaimInterface");
2392 }
2393 
2394 /**
2395  * @tc.name: UsbClaimInterface003
2396  * @tc.desc: Test functions to ClaimInterface(const UsbInterface &interface, bool force);
2397  * @tc.type: FUNC
2398  */
2399 HWTEST_F(UsbDevicePipeTest, UsbClaimInterface003, TestSize.Level1)
2400 {
2401     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbClaimInterface003 : ClaimInterface");
2402     vector<UsbDevice> delist;
2403     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2404     auto ret = UsbSrvClient.GetDevices(delist);
2405     ASSERT_EQ(ret, 0);
2406     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface003 %{public}d ret=%{public}d", __LINE__, ret);
2407     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2408     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface003 %{public}d size=%{public}zu", __LINE__,
2409                delist.size());
2410     USBDevicePipe pipe;
2411         UsbDevice device;
2412     bool hasDevice = false;
2413     for (int32_t i = 0; i < delist.size(); i++) {
2414         if (delist[i].GetClass() != 9) {
2415             device = delist[i];
2416             hasDevice = true;
2417         }
2418     }
2419     EXPECT_TRUE(hasDevice);
2420     UsbSrvClient.RequestRight(device.GetName());
2421     ret = UsbSrvClient.OpenDevice(device, pipe);
2422     ASSERT_EQ(ret, 0);
2423     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface003 %{public}d OpenDevice=%{public}d", __LINE__,
2424                ret);
2425     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
2426     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
2427     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface003 %{public}d ClaimInterface=%{public}d",
2428                __LINE__, ret);
2429     ASSERT_EQ(ret, 0);
2430     bool close = UsbSrvClient.Close(pipe);
2431     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface003 %{public}d close=%{public}d", __LINE__,
2432                close);
2433     EXPECT_TRUE(close);
2434     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbClaimInterface003 : ClaimInterface");
2435 }
2436 
2437 /**
2438  * @tc.name: UsbClaimInterface004
2439  * @tc.desc: Test functions to ClaimInterface(const UsbInterface &interface, bool force);
2440  * @tc.type: FUNC
2441  */
2442 HWTEST_F(UsbDevicePipeTest, UsbClaimInterface004, TestSize.Level1)
2443 {
2444     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbClaimInterface004 : ClaimInterface");
2445     vector<UsbDevice> delist;
2446     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2447     auto ret = UsbSrvClient.GetDevices(delist);
2448     ASSERT_EQ(ret, 0);
2449     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface004 %{public}d ret=%{public}d", __LINE__, ret);
2450     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2451     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface004 %{public}d size=%{public}zu", __LINE__,
2452                delist.size());
2453     USBDevicePipe pipe;
2454         UsbDevice device;
2455     bool hasDevice = false;
2456     for (int32_t i = 0; i < delist.size(); i++) {
2457         if (delist[i].GetClass() != 9) {
2458             device = delist[i];
2459             hasDevice = true;
2460         }
2461     }
2462     EXPECT_TRUE(hasDevice);
2463     UsbSrvClient.RequestRight(device.GetName());
2464     ret = UsbSrvClient.OpenDevice(device, pipe);
2465     ASSERT_EQ(ret, 0);
2466     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface004 %{public}d OpenDevice=%{public}d", __LINE__,
2467                ret);
2468     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
2469     ret = UsbSrvClient.ClaimInterface(pipe, interface, false);
2470     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface004 %{public}d ClaimInterface=%{public}d",
2471                __LINE__, ret);
2472     ASSERT_EQ(ret, 0);
2473     bool close = UsbSrvClient.Close(pipe);
2474     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface004 %{public}d close=%{public}d", __LINE__,
2475                close);
2476     EXPECT_TRUE(close);
2477     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbClaimInterface004 : ClaimInterface");
2478 }
2479 
2480 /**
2481  * @tc.name: UsbClaimInterface005
2482  * @tc.desc: Test functions to ClaimInterface(const UsbInterface &interface, bool force);
2483  * @tc.type: FUNC
2484  */
2485 HWTEST_F(UsbDevicePipeTest, UsbClaimInterface005, TestSize.Level1)
2486 {
2487     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbClaimInterface005 : ClaimInterface");
2488     vector<UsbDevice> delist;
2489     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2490     auto ret = UsbSrvClient.GetDevices(delist);
2491     ASSERT_EQ(ret, 0);
2492     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface005 %{public}d ret=%{public}d", __LINE__, ret);
2493     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2494     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface005 %{public}d size=%{public}zu", __LINE__,
2495                delist.size());
2496     USBDevicePipe pipe;
2497         UsbDevice device;
2498     bool hasDevice = false;
2499     for (int32_t i = 0; i < delist.size(); i++) {
2500         if (delist[i].GetClass() != 9) {
2501             device = delist[i];
2502             hasDevice = true;
2503         }
2504     }
2505     EXPECT_TRUE(hasDevice);
2506     UsbSrvClient.RequestRight(device.GetName());
2507     ret = UsbSrvClient.OpenDevice(device, pipe);
2508     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface005 %{public}d OpenDevice=%{public}d", __LINE__,
2509                ret);
2510     ASSERT_EQ(ret, 0);
2511     UsbInterface interface = device.GetConfigs().front().GetInterfaces().front();
2512     pipe.SetBusNum(BUFFER_SIZE);
2513     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
2514     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface005 %{public}d ClaimInterface=%{public}d",
2515                __LINE__, ret);
2516     ASSERT_NE(ret, 0);
2517     pipe.SetBusNum(device.GetBusNum());
2518     bool close = UsbSrvClient.Close(pipe);
2519     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface005 %{public}d close=%{public}d", __LINE__,
2520                close);
2521     EXPECT_TRUE(close);
2522     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbClaimInterface005 : ClaimInterface");
2523 }
2524 
2525 /**
2526  * @tc.name: UsbClaimInterface006
2527  * @tc.desc: Test functions to ClaimInterface(const UsbInterface &interface, bool force);
2528  * @tc.type: FUNC
2529  */
2530 HWTEST_F(UsbDevicePipeTest, UsbClaimInterface006, TestSize.Level1)
2531 {
2532     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbClaimInterface006 : ClaimInterface");
2533     vector<UsbDevice> delist;
2534     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2535     auto ret = UsbSrvClient.GetDevices(delist);
2536     ASSERT_EQ(ret, 0);
2537     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface006 %{public}d ret=%{public}d", __LINE__, ret);
2538     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2539     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface006 %{public}d size=%{public}zu", __LINE__,
2540                delist.size());
2541     USBDevicePipe pipe;
2542         UsbDevice device;
2543     bool hasDevice = false;
2544     for (int32_t i = 0; i < delist.size(); i++) {
2545         if (delist[i].GetClass() != 9) {
2546             device = delist[i];
2547             hasDevice = true;
2548         }
2549     }
2550     EXPECT_TRUE(hasDevice);
2551     UsbSrvClient.RequestRight(device.GetName());
2552     ret = UsbSrvClient.OpenDevice(device, pipe);
2553     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface006 %{public}d OpenDevice=%{public}d", __LINE__,
2554                ret);
2555     ASSERT_EQ(ret, 0);
2556     UsbInterface interface = device.GetConfigs().front().GetInterfaces().front();
2557     pipe.SetDevAddr(BUFFER_SIZE);
2558     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
2559     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface006 %{public}d ClaimInterface=%{public}d",
2560                __LINE__, ret);
2561     ASSERT_NE(ret, 0);
2562     pipe.SetDevAddr(device.GetDevAddr());
2563     bool close = UsbSrvClient.Close(pipe);
2564     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface006 %{public}d close=%{public}d", __LINE__,
2565                close);
2566     EXPECT_TRUE(close);
2567     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbClaimInterface006 : ClaimInterface");
2568 }
2569 
2570 /**
2571  * @tc.name: UsbClaimInterface007
2572  * @tc.desc: Test functions to ClaimInterface(const UsbInterface &interface, bool force);
2573  * @tc.type: FUNC
2574  */
2575 HWTEST_F(UsbDevicePipeTest, UsbClaimInterface007, TestSize.Level1)
2576 {
2577     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbClaimInterface007 : ClaimInterface");
2578     vector<UsbDevice> delist;
2579     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2580     auto ret = UsbSrvClient.GetDevices(delist);
2581     ASSERT_EQ(ret, 0);
2582     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface007 %{public}d ret=%{public}d", __LINE__, ret);
2583     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2584     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface007 %{public}d size=%{public}zu", __LINE__,
2585                delist.size());
2586     USBDevicePipe pipe;
2587         UsbDevice device;
2588     bool hasDevice = false;
2589     for (int32_t i = 0; i < delist.size(); i++) {
2590         if (delist[i].GetClass() != 9) {
2591             device = delist[i];
2592             hasDevice = true;
2593         }
2594     }
2595     EXPECT_TRUE(hasDevice);
2596     UsbSrvClient.RequestRight(device.GetName());
2597     ret = UsbSrvClient.OpenDevice(device, pipe);
2598     ASSERT_EQ(ret, 0);
2599     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface007 %{public}d OpenDevice=%{public}d", __LINE__,
2600                ret);
2601     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
2602     pipe.SetBusNum(BUFFER_SIZE);
2603     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
2604     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface007 %{public}d ClaimInterface=%{public}d",
2605                __LINE__, ret);
2606     ASSERT_NE(ret, 0);
2607     pipe.SetBusNum(device.GetBusNum());
2608     bool close = UsbSrvClient.Close(pipe);
2609     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface007 %{public}d close=%{public}d", __LINE__,
2610                close);
2611     EXPECT_TRUE(close);
2612     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbClaimInterface007 : ClaimInterface");
2613 }
2614 
2615 /**
2616  * @tc.name: UsbClaimInterface008
2617  * @tc.desc: Test functions to ClaimInterface(const UsbInterface &interface, bool force);
2618  * @tc.type: FUNC
2619  */
2620 HWTEST_F(UsbDevicePipeTest, UsbClaimInterface008, TestSize.Level1)
2621 {
2622     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbClaimInterface008 : ClaimInterface");
2623     vector<UsbDevice> delist;
2624     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2625     auto ret = UsbSrvClient.GetDevices(delist);
2626     ASSERT_EQ(ret, 0);
2627     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface008 %{public}d ret=%{public}d", __LINE__, ret);
2628     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2629     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface008 %{public}d size=%{public}zu", __LINE__,
2630                delist.size());
2631     USBDevicePipe pipe;
2632         UsbDevice device;
2633     bool hasDevice = false;
2634     for (int32_t i = 0; i < delist.size(); i++) {
2635         if (delist[i].GetClass() != 9) {
2636             device = delist[i];
2637             hasDevice = true;
2638         }
2639     }
2640     EXPECT_TRUE(hasDevice);
2641     UsbSrvClient.RequestRight(device.GetName());
2642     ret = UsbSrvClient.OpenDevice(device, pipe);
2643     ASSERT_EQ(ret, 0);
2644     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface008 %{public}d OpenDevice=%{public}d", __LINE__,
2645                ret);
2646     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
2647     pipe.SetDevAddr(BUFFER_SIZE);
2648     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
2649     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface008 %{public}d ClaimInterface=%{public}d",
2650                __LINE__, ret);
2651     ASSERT_NE(ret, 0);
2652     pipe.SetDevAddr(device.GetDevAddr());
2653     bool close = UsbSrvClient.Close(pipe);
2654     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbClaimInterface008 %{public}d close=%{public}d", __LINE__,
2655                close);
2656     EXPECT_TRUE(close);
2657     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbClaimInterface008 : ClaimInterface");
2658 }
2659 
2660 /**
2661  * @tc.name: UsbReleaseInterface001
2662  * @tc.desc: Test functions to ReleaseInterface(const UsbInterface &interface);
2663  * @tc.type: FUNC
2664  */
2665 HWTEST_F(UsbDevicePipeTest, UsbReleaseInterface001, TestSize.Level1)
2666 {
2667     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbReleaseInterface001 : ReleaseInterface");
2668     vector<UsbDevice> delist;
2669     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2670     auto ret = UsbSrvClient.GetDevices(delist);
2671     ASSERT_EQ(ret, 0);
2672     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface001 %{public}d ret=%{public}d", __LINE__,
2673                ret);
2674     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2675     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface001 %{public}d size=%{public}zu", __LINE__,
2676                delist.size());
2677     USBDevicePipe pipe;
2678     UsbDevice device;
2679     bool hasDevice = false;
2680     for (int32_t i = 0; i < delist.size(); i++) {
2681         if (delist[i].GetClass() != 9) {
2682             device = delist[i];
2683             hasDevice = true;
2684         }
2685     }
2686     EXPECT_TRUE(hasDevice);
2687     UsbSrvClient.RequestRight(device.GetName());
2688     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(0);
2689     ret = UsbSrvClient.OpenDevice(device, pipe);
2690     ASSERT_EQ(ret, 0);
2691     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface001 %{public}d OpenDevice=%{public}d",
2692                __LINE__, ret);
2693     ret = UsbSrvClient.ReleaseInterface(pipe, interface);
2694     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface001 %{public}d ReleaseInterface=%{public}d",
2695                __LINE__, ret);
2696     ASSERT_NE(ret, 0);
2697     bool close = UsbSrvClient.Close(pipe);
2698     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface001 %{public}d close=%{public}d", __LINE__,
2699                close);
2700     EXPECT_TRUE(close);
2701     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbReleaseInterface001 : ReleaseInterface");
2702 }
2703 
2704 /**
2705  * @tc.name: UsbReleaseInterface002
2706  * @tc.desc: Test functions to ReleaseInterface(const UsbInterface &interface);
2707  * @tc.type: FUNC
2708  */
2709 HWTEST_F(UsbDevicePipeTest, UsbReleaseInterface002, TestSize.Level1)
2710 {
2711     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbReleaseInterface002 : ReleaseInterface");
2712     vector<UsbDevice> delist;
2713     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2714     auto ret = UsbSrvClient.GetDevices(delist);
2715     ASSERT_EQ(ret, 0);
2716     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface002 %{public}d ret=%{public}d", __LINE__,
2717                ret);
2718     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2719     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface002 %{public}d size=%{public}zu", __LINE__,
2720                delist.size());
2721     USBDevicePipe pipe;
2722         UsbDevice device;
2723     bool hasDevice = false;
2724     for (int32_t i = 0; i < delist.size(); i++) {
2725         if (delist[i].GetClass() != 9) {
2726             device = delist[i];
2727             hasDevice = true;
2728         }
2729     }
2730     EXPECT_TRUE(hasDevice);
2731     UsbSrvClient.RequestRight(device.GetName());
2732     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(0);
2733     ret = UsbSrvClient.OpenDevice(device, pipe);
2734     ASSERT_EQ(ret, 0);
2735     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface002 %{public}d OpenDevice=%{public}d",
2736                __LINE__, ret);
2737     pipe.SetBusNum(BUFFER_SIZE);
2738     ret = UsbSrvClient.ReleaseInterface(pipe, interface);
2739     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface002 %{public}d ReleaseInterface=%{public}d",
2740                __LINE__, ret);
2741     ASSERT_NE(ret, 0);
2742     pipe.SetBusNum(device.GetBusNum());
2743     bool close = UsbSrvClient.Close(pipe);
2744     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface002 %{public}d close=%{public}d", __LINE__,
2745                close);
2746     EXPECT_TRUE(close);
2747     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbReleaseInterface002 : ReleaseInterface");
2748 }
2749 
2750 /**
2751  * @tc.name: UsbReleaseInterface003
2752  * @tc.desc: Test functions to ReleaseInterface(const UsbInterface &interface);
2753  * @tc.type: FUNC
2754  */
2755 HWTEST_F(UsbDevicePipeTest, UsbReleaseInterface003, TestSize.Level1)
2756 {
2757     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbReleaseInterface003 : ReleaseInterface");
2758     vector<UsbDevice> delist;
2759     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2760     auto ret = UsbSrvClient.GetDevices(delist);
2761     ASSERT_EQ(ret, 0);
2762     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface003 %{public}d ret=%{public}d", __LINE__,
2763                ret);
2764     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2765     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface003 %{public}d size=%{public}zu", __LINE__,
2766                delist.size());
2767     USBDevicePipe pipe;
2768         UsbDevice device;
2769     bool hasDevice = false;
2770     for (int32_t i = 0; i < delist.size(); i++) {
2771         if (delist[i].GetClass() != 9) {
2772             device = delist[i];
2773             hasDevice = true;
2774         }
2775     }
2776     EXPECT_TRUE(hasDevice);
2777     UsbSrvClient.RequestRight(device.GetName());
2778     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(0);
2779     ret = UsbSrvClient.OpenDevice(device, pipe);
2780     ASSERT_EQ(ret, 0);
2781     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface003 %{public}d OpenDevice=%{public}d",
2782                __LINE__, ret);
2783     pipe.SetDevAddr(BUFFER_SIZE);
2784     ret = UsbSrvClient.ReleaseInterface(pipe, interface);
2785     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface003 %{public}d ReleaseInterface=%{public}d",
2786                __LINE__, ret);
2787     ASSERT_NE(ret, 0);
2788     pipe.SetDevAddr(device.GetDevAddr());
2789     bool close = UsbSrvClient.Close(pipe);
2790     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface003 %{public}d close=%{public}d", __LINE__,
2791                close);
2792     EXPECT_TRUE(close);
2793     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbReleaseInterface003 : ReleaseInterface");
2794 }
2795 
2796 /**
2797  * @tc.name: UsbReleaseInterface004
2798  * @tc.desc: Test functions to ReleaseInterface(const UsbInterface &interface);
2799  * @tc.type: FUNC
2800  */
2801 HWTEST_F(UsbDevicePipeTest, UsbReleaseInterface004, TestSize.Level1)
2802 {
2803     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbReleaseInterface004 : ReleaseInterface");
2804     vector<UsbDevice> delist;
2805     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2806     auto ret = UsbSrvClient.GetDevices(delist);
2807     ASSERT_EQ(ret, 0);
2808     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface004 %{public}d ret=%{public}d", __LINE__,
2809                ret);
2810     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2811     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface004 %{public}d size=%{public}zu", __LINE__,
2812                delist.size());
2813     USBDevicePipe pipe;
2814         UsbDevice device;
2815     bool hasDevice = false;
2816     for (int32_t i = 0; i < delist.size(); i++) {
2817         if (delist[i].GetClass() != 9) {
2818             device = delist[i];
2819             hasDevice = true;
2820         }
2821     }
2822     EXPECT_TRUE(hasDevice);
2823     UsbSrvClient.RequestRight(device.GetName());
2824     ret = UsbSrvClient.OpenDevice(device, pipe);
2825     ASSERT_EQ(ret, 0);
2826     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface004 %{public}d OpenDevice=%{public}d",
2827                __LINE__, ret);
2828     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
2829     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
2830     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface004 %{public}d ClaimInterface=%{public}d",
2831                __LINE__, ret);
2832     ASSERT_EQ(ret, 0);
2833     ret = UsbSrvClient.ReleaseInterface(pipe, interface);
2834     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface004 %{public}d ReleaseInterface=%{public}d",
2835                __LINE__, ret);
2836     ASSERT_EQ(ret, 0);
2837     bool close = UsbSrvClient.Close(pipe);
2838     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface004 %{public}d close=%{public}d", __LINE__,
2839                close);
2840     EXPECT_TRUE(close);
2841     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbReleaseInterface004 : ReleaseInterface");
2842 }
2843 
2844 /**
2845  * @tc.name: UsbReleaseInterface005
2846  * @tc.desc: Test functions to ReleaseInterface(const UsbInterface &interface);
2847  * @tc.type: FUNC
2848  */
2849 HWTEST_F(UsbDevicePipeTest, UsbReleaseInterface005, TestSize.Level1)
2850 {
2851     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbReleaseInterface005 : ReleaseInterface");
2852     vector<UsbDevice> delist;
2853     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2854     auto ret = UsbSrvClient.GetDevices(delist);
2855     ASSERT_EQ(ret, 0);
2856     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface005 %{public}d ret=%{public}d", __LINE__,
2857                ret);
2858     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2859     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface005 %{public}d size=%{public}zu", __LINE__,
2860                delist.size());
2861     USBDevicePipe pipe;
2862         UsbDevice device;
2863     bool hasDevice = false;
2864     for (int32_t i = 0; i < delist.size(); i++) {
2865         if (delist[i].GetClass() != 9) {
2866             device = delist[i];
2867             hasDevice = true;
2868         }
2869     }
2870     EXPECT_TRUE(hasDevice);
2871     UsbSrvClient.RequestRight(device.GetName());
2872     ret = UsbSrvClient.OpenDevice(device, pipe);
2873     ASSERT_EQ(ret, 0);
2874     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface005 %{public}d OpenDevice=%{public}d",
2875                __LINE__, ret);
2876     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
2877     pipe.SetBusNum(BUFFER_SIZE);
2878     ret = UsbSrvClient.ReleaseInterface(pipe, interface);
2879     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface005 %{public}d ReleaseInterface=%{public}d",
2880                __LINE__, ret);
2881     ASSERT_NE(ret, 0);
2882     pipe.SetBusNum(device.GetBusNum());
2883     bool close = UsbSrvClient.Close(pipe);
2884     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface005 %{public}d close=%{public}d", __LINE__,
2885                close);
2886     EXPECT_TRUE(close);
2887     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbReleaseInterface005 : ReleaseInterface");
2888 }
2889 
2890 /**
2891  * @tc.name: UsbReleaseInterface006
2892  * @tc.desc: Test functions to ReleaseInterface(const UsbInterface &interface);
2893  * @tc.type: FUNC
2894  */
2895 HWTEST_F(UsbDevicePipeTest, UsbReleaseInterface006, TestSize.Level1)
2896 {
2897     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbReleaseInterface006 : ReleaseInterface");
2898     vector<UsbDevice> delist;
2899     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2900     auto ret = UsbSrvClient.GetDevices(delist);
2901     ASSERT_EQ(ret, 0);
2902     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface006 %{public}d ret=%{public}d", __LINE__,
2903                ret);
2904     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2905     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface006 %{public}d size=%{public}zu", __LINE__,
2906                delist.size());
2907     USBDevicePipe pipe;
2908         UsbDevice device;
2909     bool hasDevice = false;
2910     for (int32_t i = 0; i < delist.size(); i++) {
2911         if (delist[i].GetClass() != 9) {
2912             device = delist[i];
2913             hasDevice = true;
2914         }
2915     }
2916     EXPECT_TRUE(hasDevice);
2917     UsbSrvClient.RequestRight(device.GetName());
2918     ret = UsbSrvClient.OpenDevice(device, pipe);
2919     ASSERT_EQ(ret, 0);
2920     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface006 %{public}d OpenDevice=%{public}d",
2921                __LINE__, ret);
2922     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
2923     pipe.SetDevAddr(BUFFER_SIZE);
2924     ret = UsbSrvClient.ReleaseInterface(pipe, interface);
2925     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface006 %{public}d ReleaseInterface=%{public}d",
2926                __LINE__, ret);
2927     ASSERT_NE(ret, 0);
2928     pipe.SetDevAddr(device.GetDevAddr());
2929     bool close = UsbSrvClient.Close(pipe);
2930     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbReleaseInterface006 %{public}d close=%{public}d", __LINE__,
2931                close);
2932     EXPECT_TRUE(close);
2933     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbReleaseInterface006 : ReleaseInterface");
2934 }
2935 
2936 /**
2937  * @tc.name: UsbBulkTransfer001
2938  * @tc.desc: Test functions to BulkTransfer(const USBEndpoint &endpoint, uint8_t *buffer, uint32_t &length, int32_t
2939  * timeout);
2940  * @tc.type: FUNC
2941  */
2942 HWTEST_F(UsbDevicePipeTest, UsbBulkTransfer001, TestSize.Level1)
2943 {
2944     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbBulkTransfer001 : BulkTransfer");
2945     vector<UsbDevice> delist;
2946     auto &UsbSrvClient = UsbSrvClient::GetInstance();
2947     auto ret = UsbSrvClient.GetDevices(delist);
2948     ASSERT_EQ(ret, 0);
2949     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer001 %{public}d ret=%{public}d", __LINE__, ret);
2950     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
2951     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer001 %{public}d size=%{public}zu", __LINE__,
2952                delist.size());
2953     USBDevicePipe pipe;
2954         UsbDevice device;
2955     bool hasDevice = false;
2956     for (int32_t i = 0; i < delist.size(); i++) {
2957         if (delist[i].GetClass() != 9) {
2958             device = delist[i];
2959             hasDevice = true;
2960         }
2961     }
2962     EXPECT_TRUE(hasDevice);
2963     UsbSrvClient.RequestRight(device.GetName());
2964     ret = UsbSrvClient.OpenDevice(device, pipe);
2965     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer001 %{public}d OpenDevice=%{public}d", __LINE__,
2966                ret);
2967     ASSERT_EQ(ret, 0);
2968     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
2969     USBEndpoint point = interface.GetEndpoints().front();
2970     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer001 %{public}d point=%{public}d", __LINE__,
2971                point.GetInterfaceId());
2972     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
2973     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer001 %{public}d ClaimInterface=%{public}d",
2974                __LINE__, ret);
2975     ASSERT_EQ(ret, 0);
2976     uint8_t buffer[BUFFER_SIZE] = "bulk read";
2977     uint32_t len = BUFFER_SIZE;
2978     std::vector<uint8_t> bulkbuffer = {buffer, buffer + len};
2979     ret = UsbSrvClient.BulkTransfer(pipe, point, bulkbuffer, 3000);
2980     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer001 %{public}d BulkTransfer=%{public}d", __LINE__,
2981                ret);
2982     ASSERT_EQ(ret, 0);
2983     bool close = UsbSrvClient.Close(pipe);
2984     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer001 %{public}d close=%{public}d", __LINE__,
2985                close);
2986     EXPECT_TRUE(close);
2987     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbBulkTransfer001 : BulkTransfer");
2988 }
2989 
2990 /**
2991  * @tc.name: UsbBulkTransfer002
2992  * @tc.desc: Test functions to BulkTransfer(const USBEndpoint &endpoint, uint8_t *buffer, uint32_t &length, int32_t
2993  * timeout);
2994  * @tc.type: FUNC
2995  */
2996 HWTEST_F(UsbDevicePipeTest, UsbBulkTransfer002, TestSize.Level1)
2997 {
2998     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbBulkTransfer002 : BulkTransfer");
2999     vector<UsbDevice> delist;
3000     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3001     auto ret = UsbSrvClient.GetDevices(delist);
3002     ASSERT_EQ(ret, 0);
3003     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer002 %{public}d ret=%{public}d", __LINE__, ret);
3004     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3005     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer002 %{public}d size=%{public}zu", __LINE__,
3006                delist.size());
3007     USBDevicePipe pipe;
3008         UsbDevice device;
3009     bool hasDevice = false;
3010     for (int32_t i = 0; i < delist.size(); i++) {
3011         if (delist[i].GetClass() != 9) {
3012             device = delist[i];
3013             hasDevice = true;
3014         }
3015     }
3016     EXPECT_TRUE(hasDevice);
3017     UsbSrvClient.RequestRight(device.GetName());
3018     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
3019     USBEndpoint point = interface.GetEndpoints().front();
3020     ret = UsbSrvClient.OpenDevice(device, pipe);
3021     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer002 %{public}d OpenDevice=%{public}d", __LINE__,
3022                ret);
3023     ASSERT_EQ(ret, 0);
3024     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3025     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer002 %{public}d ClaimInterface=%{public}d",
3026                __LINE__, ret);
3027     ASSERT_EQ(ret, 0);
3028     uint8_t buffer[BUFFER_SIZE] = "bulk read";
3029     uint32_t len = BUFFER_SIZE;
3030     std::vector<uint8_t> bulkbuffer = {buffer, buffer + len};
3031     ret = UsbSrvClient.BulkTransfer(pipe, point, bulkbuffer, -5);
3032     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer002 %{public}d BulkTransfer=%{public}d", __LINE__,
3033                ret);
3034     ASSERT_EQ(ret, 0);
3035     bool close = UsbSrvClient.Close(pipe);
3036     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer002 %{public}d close=%{public}d", __LINE__,
3037                close);
3038     EXPECT_TRUE(close);
3039     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbBulkTransfer002 : BulkTransfer");
3040 }
3041 
3042 /**
3043  * @tc.name: UsbBulkTransfer003
3044  * @tc.desc: Test functions to BulkTransfer(const USBEndpoint &endpoint, uint8_t *buffer, uint32_t &length, int32_t
3045  * timeout);
3046  * @tc.type: FUNC
3047  */
3048 HWTEST_F(UsbDevicePipeTest, UsbBulkTransfer003, TestSize.Level1)
3049 {
3050     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbBulkTransfer003 : BulkTransfer");
3051     vector<UsbDevice> delist;
3052     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3053     auto ret = UsbSrvClient.GetDevices(delist);
3054     ASSERT_EQ(ret, 0);
3055     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer003 %{public}d ret=%{public}d", __LINE__, ret);
3056     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3057     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer003 %{public}d size=%{public}zu", __LINE__,
3058                delist.size());
3059     USBDevicePipe pipe;
3060         UsbDevice device;
3061     bool hasDevice = false;
3062     for (int32_t i = 0; i < delist.size(); i++) {
3063         if (delist[i].GetClass() != 9) {
3064             device = delist[i];
3065             hasDevice = true;
3066         }
3067     }
3068     EXPECT_TRUE(hasDevice);
3069     UsbSrvClient.RequestRight(device.GetName());
3070     ret = UsbSrvClient.OpenDevice(device, pipe);
3071     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer003 %{public}d OpenDevice=%{public}d", __LINE__,
3072                ret);
3073     ASSERT_EQ(ret, 0);
3074     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
3075     USBEndpoint point = interface.GetEndpoints().front();
3076     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3077     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer003 %{public}d ClaimInterface=%{public}d",
3078                __LINE__, ret);
3079     ASSERT_EQ(ret, 0);
3080     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer003 %{public}d point=%{public}d", __LINE__,
3081                point.GetInterfaceId());
3082     uint8_t buffer[BUFFER_SIZE] = "bulk read";
3083     uint32_t len = BUFFER_SIZE;
3084     pipe.SetBusNum(BUFFER_SIZE);
3085     std::vector<uint8_t> bulkbuffer = {buffer, buffer + len};
3086     ret = UsbSrvClient.BulkTransfer(pipe, point, bulkbuffer, 500);
3087     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer003 %{public}d BulkTransfer=%{public}d", __LINE__,
3088                ret);
3089     ASSERT_NE(ret, 0);
3090     pipe.SetBusNum(device.GetBusNum());
3091     bool close = UsbSrvClient.Close(pipe);
3092     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer003 %{public}d close=%{public}d", __LINE__,
3093                close);
3094     EXPECT_TRUE(close);
3095     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbBulkTransfer003 : BulkTransfer");
3096 }
3097 
3098 /**
3099  * @tc.name: UsbBulkTransfer004
3100  * @tc.desc: Test functions to BulkTransfer(const USBEndpoint &endpoint, uint8_t *buffer, uint32_t &length, int32_t
3101  * timeout);
3102  * @tc.type: FUNC
3103  */
3104 HWTEST_F(UsbDevicePipeTest, UsbBulkTransfer004, TestSize.Level1)
3105 {
3106     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbBulkTransfer004 : BulkTransfer");
3107     vector<UsbDevice> delist;
3108     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3109     auto ret = UsbSrvClient.GetDevices(delist);
3110     ASSERT_EQ(ret, 0);
3111     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer004 %{public}d ret=%{public}d", __LINE__, ret);
3112     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3113     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer004 %{public}d size=%{public}zu", __LINE__,
3114                delist.size());
3115     USBDevicePipe pipe;
3116         UsbDevice device;
3117     bool hasDevice = false;
3118     for (int32_t i = 0; i < delist.size(); i++) {
3119         if (delist[i].GetClass() != 9) {
3120             device = delist[i];
3121             hasDevice = true;
3122         }
3123     }
3124     EXPECT_TRUE(hasDevice);
3125     UsbSrvClient.RequestRight(device.GetName());
3126     ret = UsbSrvClient.OpenDevice(device, pipe);
3127     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer004 %{public}d OpenDevice=%{public}d", __LINE__,
3128                ret);
3129     ASSERT_EQ(ret, 0);
3130     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
3131     USBEndpoint point = interface.GetEndpoints().front();
3132     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer004 %{public}d point=%{public}d", __LINE__,
3133                point.GetInterfaceId());
3134     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3135     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer004 %{public}d ClaimInterface=%{public}d",
3136                __LINE__, ret);
3137     ASSERT_EQ(ret, 0);
3138     uint8_t buffer[BUFFER_SIZE] = "bulk read";
3139     uint32_t len = BUFFER_SIZE;
3140     pipe.SetDevAddr(BUFFER_SIZE);
3141     std::vector<uint8_t> bulkbuffer = {buffer, buffer + len};
3142     ret = UsbSrvClient.BulkTransfer(pipe, point, bulkbuffer, 500);
3143     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer004 %{public}d BulkTransfer=%{public}d", __LINE__,
3144                ret);
3145     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer004 %{public}d len=%{public}d", __LINE__, len);
3146     ASSERT_NE(ret, 0);
3147     pipe.SetDevAddr(device.GetDevAddr());
3148     bool close = UsbSrvClient.Close(pipe);
3149     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer004 %{public}d close=%{public}d", __LINE__,
3150                close);
3151     EXPECT_TRUE(close);
3152     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbBulkTransfer004 : BulkTransfer");
3153 }
3154 
3155 /**
3156  * @tc.name: UsbBulkTransfer005
3157  * @tc.desc: Test functions to BulkTransfer(const USBEndpoint &endpoint, uint8_t *buffer, uint32_t &length, int32_t
3158  * timeout);
3159  * @tc.type: FUNC
3160  */
3161 HWTEST_F(UsbDevicePipeTest, UsbBulkTransfer005, TestSize.Level1)
3162 {
3163     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbBulkTransfer005 : BulkTransfer");
3164     vector<UsbDevice> delist;
3165     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3166     auto ret = UsbSrvClient.GetDevices(delist);
3167     ASSERT_EQ(ret, 0);
3168     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer005 %{public}d ret=%{public}d", __LINE__, ret);
3169     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3170     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer005 %{public}d size=%{public}zu", __LINE__,
3171                delist.size());
3172     USBDevicePipe pipe;
3173         UsbDevice device;
3174     bool hasDevice = false;
3175     for (int32_t i = 0; i < delist.size(); i++) {
3176         if (delist[i].GetClass() != 9) {
3177             device = delist[i];
3178             hasDevice = true;
3179         }
3180     }
3181     EXPECT_TRUE(hasDevice);
3182     UsbSrvClient.RequestRight(device.GetName());
3183     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
3184     USBEndpoint point = interface.GetEndpoints().front();
3185     ret = UsbSrvClient.OpenDevice(device, pipe);
3186     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer005 %{public}d OpenDevice=%{public}d", __LINE__,
3187                ret);
3188     ASSERT_EQ(ret, 0);
3189     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3190     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer005 %{public}d ClaimInterface=%{public}d",
3191                __LINE__, ret);
3192     ASSERT_EQ(ret, 0);
3193     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer005 %{public}d point=%{public}d", __LINE__,
3194                point.GetInterfaceId());
3195     uint8_t buffer[BUFFER_SIZE] = "bulk read";
3196     uint32_t len = BUFFER_SIZE;
3197     point.SetInterfaceId(BUFFER_SIZE);
3198     std::vector<uint8_t> bulkbuffer = {buffer, buffer + len};
3199     ret = UsbSrvClient.BulkTransfer(pipe, point, bulkbuffer, 500);
3200     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer005 %{public}d BulkTransfer=%{public}d", __LINE__,
3201                ret);
3202     ASSERT_NE(ret, 0);
3203     bool close = UsbSrvClient.Close(pipe);
3204     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer005 %{public}d close=%{public}d", __LINE__,
3205                close);
3206     EXPECT_TRUE(close);
3207     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbBulkTransfer005 : BulkTransfer");
3208 }
3209 
3210 /**
3211  * @tc.name: UsbBulkTransfer006
3212  * @tc.desc: Test functions to BulkTransfer(const USBEndpoint &endpoint, uint8_t *buffer, uint32_t &length, int32_t
3213  * timeout);
3214  * @tc.type: FUNC
3215  */
3216 HWTEST_F(UsbDevicePipeTest, UsbBulkTransfer006, TestSize.Level1)
3217 {
3218     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbBulkTransfer006 : BulkTransfer");
3219     vector<UsbDevice> delist;
3220     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3221     auto ret = UsbSrvClient.GetDevices(delist);
3222     ASSERT_EQ(ret, 0);
3223     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer006 %{public}d ret=%{public}d", __LINE__, ret);
3224     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3225     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer006 %{public}d size=%{public}zu", __LINE__,
3226                delist.size());
3227     USBDevicePipe pipe;
3228         UsbDevice device;
3229     bool hasDevice = false;
3230     for (int32_t i = 0; i < delist.size(); i++) {
3231         if (delist[i].GetClass() != 9) {
3232             device = delist[i];
3233             hasDevice = true;
3234         }
3235     }
3236     EXPECT_TRUE(hasDevice);
3237     UsbSrvClient.RequestRight(device.GetName());
3238     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
3239     USBEndpoint point = interface.GetEndpoints().front();
3240     ret = UsbSrvClient.OpenDevice(device, pipe);
3241     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer006 %{public}d OpenDevice=%{public}d", __LINE__,
3242                ret);
3243     ASSERT_EQ(ret, 0);
3244     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3245     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer006 %{public}d ClaimInterface=%{public}d",
3246                __LINE__, ret);
3247     ASSERT_EQ(ret, 0);
3248     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer006 %{public}d point=%{public}d", __LINE__,
3249                point.GetInterfaceId());
3250     uint8_t buffer[BUFFER_SIZE] = "bulk read";
3251     uint32_t len = BUFFER_SIZE;
3252     point.SetAddr(BUFFER_SIZE);
3253     std::vector<uint8_t> bulkbuffer = {buffer, buffer + len};
3254     ret = UsbSrvClient.BulkTransfer(pipe, point, bulkbuffer, 500);
3255     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer006 %{public}d BulkTransfer=%{public}d", __LINE__,
3256                ret);
3257     ASSERT_NE(ret, 0);
3258     bool close = UsbSrvClient.Close(pipe);
3259     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer006 %{public}d close=%{public}d", __LINE__,
3260                close);
3261     EXPECT_TRUE(close);
3262     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbBulkTransfer006 : BulkTransfer");
3263 }
3264 
3265 /**
3266  * @tc.name: UsbBulkTransfer007
3267  * @tc.desc: Test functions to BulkTransfer(const USBEndpoint &endpoint, uint8_t *buffer, uint32_t &length, int32_t
3268  * timeout);
3269  * @tc.type: FUNC
3270  */
3271 HWTEST_F(UsbDevicePipeTest, UsbBulkTransfer007, TestSize.Level1)
3272 {
3273     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbBulkTransfer007 : BulkTransfer");
3274     vector<UsbDevice> delist;
3275     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3276     auto ret = UsbSrvClient.GetDevices(delist);
3277     ASSERT_EQ(ret, 0);
3278     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer007 %{public}d ret=%{public}d", __LINE__, ret);
3279     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3280     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer007 %{public}d size=%{public}zu", __LINE__,
3281                delist.size());
3282     USBDevicePipe pipe;
3283         UsbDevice device;
3284     bool hasDevice = false;
3285     for (int32_t i = 0; i < delist.size(); i++) {
3286         if (delist[i].GetClass() != 9) {
3287             device = delist[i];
3288             hasDevice = true;
3289         }
3290     }
3291     EXPECT_TRUE(hasDevice);
3292     UsbSrvClient.RequestRight(device.GetName());
3293     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
3294     USBEndpoint point = interface.GetEndpoints().at(1);
3295     ret = UsbSrvClient.OpenDevice(device, pipe);
3296     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer007 %{public}d OpenDevice=%{public}d", __LINE__,
3297                ret);
3298     ASSERT_EQ(ret, 0);
3299     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3300     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer007 %{public}d ClaimInterface=%{public}d",
3301                __LINE__, ret);
3302     ASSERT_EQ(ret, 0);
3303     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer007 %{public}d point=%{public}d", __LINE__,
3304                point.GetInterfaceId());
3305     uint8_t buffer[BUFFER_SIZE] = "hello world Bulk transfer007";
3306     uint32_t len = BUFFER_SIZE;
3307     std::vector<uint8_t> bulkbuffer = {buffer, buffer + len};
3308     ret = UsbSrvClient.BulkTransfer(pipe, point, bulkbuffer, 500);
3309     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer007 %{public}d BulkTransfer=%{public}d", __LINE__,
3310                ret);
3311     ASSERT_EQ(ret, 0);
3312     bool close = UsbSrvClient.Close(pipe);
3313     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer007 %{public}d close=%{public}d", __LINE__,
3314                close);
3315     EXPECT_TRUE(close);
3316     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbBulkTransfer007 : BulkTransfer");
3317 }
3318 
3319 /**
3320  * @tc.name: UsbBulkTransfer008
3321  * @tc.desc: Test functions to BulkTransfer(const USBEndpoint &endpoint, uint8_t *buffer, uint32_t &length, int32_t
3322  * timeout);
3323  * @tc.type: FUNC
3324  */
3325 HWTEST_F(UsbDevicePipeTest, UsbBulkTransfer008, TestSize.Level1)
3326 {
3327     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbBulkTransfer008 : BulkTransfer");
3328     vector<UsbDevice> delist;
3329     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3330     auto ret = UsbSrvClient.GetDevices(delist);
3331     ASSERT_EQ(ret, 0);
3332     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer008 %{public}d ret=%{public}d", __LINE__, ret);
3333     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3334     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer008 %{public}d size=%{public}zu", __LINE__,
3335                delist.size());
3336     USBDevicePipe pipe;
3337         UsbDevice device;
3338     bool hasDevice = false;
3339     for (int32_t i = 0; i < delist.size(); i++) {
3340         if (delist[i].GetClass() != 9) {
3341             device = delist[i];
3342             hasDevice = true;
3343         }
3344     }
3345     EXPECT_TRUE(hasDevice);
3346     UsbSrvClient.RequestRight(device.GetName());
3347     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
3348     USBEndpoint point = interface.GetEndpoints().at(1);
3349     ret = UsbSrvClient.OpenDevice(device, pipe);
3350     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer008 %{public}d OpenDevice=%{public}d", __LINE__,
3351                ret);
3352     ASSERT_EQ(ret, 0);
3353     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3354     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer008 %{public}d ClaimInterface=%{public}d",
3355                __LINE__, ret);
3356     ASSERT_EQ(ret, 0);
3357     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer008 %{public}d point=%{public}d", __LINE__,
3358                point.GetInterfaceId());
3359     uint8_t buffer[BUFFER_SIZE] = "hello world Bulk transfer008";
3360     uint32_t len = BUFFER_SIZE;
3361     pipe.SetDevAddr(BUFFER_SIZE);
3362     std::vector<uint8_t> bulkbuffer = {buffer, buffer + len};
3363     ret = UsbSrvClient.BulkTransfer(pipe, point, bulkbuffer, 500);
3364     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer008 %{public}d BulkTransfer=%{public}d", __LINE__,
3365                ret);
3366     ASSERT_NE(ret, 0);
3367     pipe.SetDevAddr(device.GetDevAddr());
3368     bool close = UsbSrvClient.Close(pipe);
3369     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer008 %{public}d close=%{public}d", __LINE__,
3370                close);
3371     EXPECT_TRUE(close);
3372     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbBulkTransfer008 : BulkTransfer");
3373 }
3374 
3375 /**
3376  * @tc.name: UsbBulkTransfer009
3377  * @tc.desc: Test functions to BulkTransfer(const USBEndpoint &endpoint, uint8_t *buffer, uint32_t &length, int32_t
3378  * timeout);
3379  * @tc.type: FUNC
3380  */
3381 HWTEST_F(UsbDevicePipeTest, UsbBulkTransfer009, TestSize.Level1)
3382 {
3383     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbBulkTransfer009 : BulkTransfer");
3384     vector<UsbDevice> delist;
3385     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3386     auto ret = UsbSrvClient.GetDevices(delist);
3387     ASSERT_EQ(ret, 0);
3388     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer009 %{public}d ret=%{public}d", __LINE__, ret);
3389     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3390     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer009 %{public}d size=%{public}zu", __LINE__,
3391                delist.size());
3392     USBDevicePipe pipe;
3393         UsbDevice device;
3394     bool hasDevice = false;
3395     for (int32_t i = 0; i < delist.size(); i++) {
3396         if (delist[i].GetClass() != 9) {
3397             device = delist[i];
3398             hasDevice = true;
3399         }
3400     }
3401     EXPECT_TRUE(hasDevice);
3402     UsbSrvClient.RequestRight(device.GetName());
3403     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
3404     USBEndpoint point = interface.GetEndpoints().at(1);
3405     ret = UsbSrvClient.OpenDevice(device, pipe);
3406     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer009 %{public}d OpenDevice=%{public}d", __LINE__,
3407                ret);
3408     ASSERT_EQ(ret, 0);
3409     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3410     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer009 %{public}d ClaimInterface=%{public}d",
3411                __LINE__, ret);
3412     ASSERT_EQ(ret, 0);
3413     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer009 %{public}d point=%{public}d", __LINE__,
3414                point.GetInterfaceId());
3415     uint8_t buffer[BUFFER_SIZE] = "hello world Bulk transfer009";
3416     uint32_t len = BUFFER_SIZE;
3417     pipe.SetBusNum(BUFFER_SIZE);
3418     std::vector<uint8_t> bulkbuffer = {buffer, buffer + len};
3419     ret = UsbSrvClient.BulkTransfer(pipe, point, bulkbuffer, 500);
3420     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer009 %{public}d BulkTransfer=%{public}d", __LINE__,
3421                ret);
3422     ASSERT_NE(ret, 0);
3423     pipe.SetBusNum(device.GetBusNum());
3424     bool close = UsbSrvClient.Close(pipe);
3425     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer009 %{public}d close=%{public}d", __LINE__,
3426                close);
3427     EXPECT_TRUE(close);
3428     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbBulkTransfer009 : BulkTransfer");
3429 }
3430 
3431 /**
3432  * @tc.name: UsbBulkTransfer010
3433  * @tc.desc: Test functions to BulkTransfer(const USBEndpoint &endpoint, uint8_t *buffer, uint32_t &length, int32_t
3434  * timeout);
3435  * @tc.type: FUNC
3436  */
3437 HWTEST_F(UsbDevicePipeTest, UsbBulkTransfer010, TestSize.Level1)
3438 {
3439     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbBulkTransfer010 : BulkTransfer");
3440     vector<UsbDevice> delist;
3441     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3442     auto ret = UsbSrvClient.GetDevices(delist);
3443     ASSERT_EQ(ret, 0);
3444     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer010 %{public}d ret=%{public}d", __LINE__, ret);
3445     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3446     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer010 %{public}d size=%{public}zu", __LINE__,
3447                delist.size());
3448     USBDevicePipe pipe;
3449         UsbDevice device;
3450     bool hasDevice = false;
3451     for (int32_t i = 0; i < delist.size(); i++) {
3452         if (delist[i].GetClass() != 9) {
3453             device = delist[i];
3454             hasDevice = true;
3455         }
3456     }
3457     EXPECT_TRUE(hasDevice);
3458     UsbSrvClient.RequestRight(device.GetName());
3459     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
3460     USBEndpoint point = interface.GetEndpoints().at(1);
3461     ret = UsbSrvClient.OpenDevice(device, pipe);
3462     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer010 %{public}d OpenDevice=%{public}d", __LINE__,
3463                ret);
3464     ASSERT_EQ(ret, 0);
3465     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3466     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer010 %{public}d ClaimInterface=%{public}d",
3467                __LINE__, ret);
3468     ASSERT_EQ(ret, 0);
3469     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer010 %{public}d point=%{public}d", __LINE__,
3470                point.GetInterfaceId());
3471     uint8_t buffer[BUFFER_SIZE] = "hello world Bulk transfer010";
3472     uint32_t len = BUFFER_SIZE;
3473     std::vector<uint8_t> bulkbuffer = {buffer, buffer + len};
3474     ret = UsbSrvClient.BulkTransfer(pipe, point, bulkbuffer, -5);
3475     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer010 %{public}d BulkTransfer=%{public}d", __LINE__,
3476                ret);
3477     ASSERT_EQ(ret, 0);
3478     bool close = UsbSrvClient.Close(pipe);
3479     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer010 %{public}d close=%{public}d", __LINE__,
3480                close);
3481     EXPECT_TRUE(close);
3482     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbBulkTransfer010 : BulkTransfer");
3483 }
3484 
3485 /**
3486  * @tc.name: UsbBulkTransfer011
3487  * @tc.desc: Test functions to BulkTransfer(const USBEndpoint &endpoint, uint8_t *buffer, uint32_t &length, int32_t
3488  * timeout);
3489  * @tc.type: FUNC
3490  */
3491 HWTEST_F(UsbDevicePipeTest, UsbBulkTransfer011, TestSize.Level1)
3492 {
3493     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : UsbBulkTransfer011 : BulkTransfer");
3494     vector<UsbDevice> delist;
3495     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3496     auto ret = UsbSrvClient.GetDevices(delist);
3497     ASSERT_EQ(ret, 0);
3498     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer011 %{public}d ret=%{public}d", __LINE__, ret);
3499     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3500     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer011 %{public}d size=%{public}zu", __LINE__,
3501                delist.size());
3502     USBDevicePipe pipe;
3503         UsbDevice device;
3504     bool hasDevice = false;
3505     for (int32_t i = 0; i < delist.size(); i++) {
3506         if (delist[i].GetClass() != 9) {
3507             device = delist[i];
3508             hasDevice = true;
3509         }
3510     }
3511     EXPECT_TRUE(hasDevice);
3512     UsbSrvClient.RequestRight(device.GetName());
3513     ret = UsbSrvClient.OpenDevice(device, pipe);
3514     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer011 %{public}d OpenDevice=%{public}d", __LINE__,
3515                ret);
3516     ASSERT_EQ(ret, 0);
3517     ret = UsbSrvClient.OpenDevice(device, pipe);
3518     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer011 %{public}d OpenDevice again=%{public}d",
3519     __LINE__, ret);
3520     ASSERT_EQ(ret, 0);
3521     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(1);
3522     USBEndpoint point = interface.GetEndpoints().front();
3523     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer011 %{public}d point=%{public}d", __LINE__,
3524                point.GetInterfaceId());
3525     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3526     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer011 %{public}d ClaimInterface=%{public}d",
3527                __LINE__, ret);
3528     ASSERT_EQ(ret, 0);
3529     bool close = UsbSrvClient.Close(pipe);
3530     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer011 %{public}d close=%{public}d", __LINE__,
3531                close);
3532     EXPECT_TRUE(close);
3533     uint8_t buffer[BUFFER_SIZE] = "bulk read";
3534     uint32_t len = BUFFER_SIZE;
3535     std::vector<uint8_t> bulkbuffer = {buffer, buffer + len};
3536     ret = UsbSrvClient.BulkTransfer(pipe, point, bulkbuffer, 500);
3537     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer011 %{public}d BulkTransfer=%{public}d", __LINE__,
3538                ret);
3539     ASSERT_EQ(ret, 0);
3540     close = UsbSrvClient.Close(pipe);
3541     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::UsbBulkTransfer011 %{public}d close=%{public}d", __LINE__,
3542                close);
3543     EXPECT_TRUE(close);
3544     USB_HILOGI(MODULE_USB_SERVICE, "Case End : UsbBulkTransfer011 : BulkTransfer");
3545 }
3546 
3547 /**
3548  * @tc.name: SetConfiguration001
3549  * @tc.desc: Test functions to  SetConfiguration(const USBConfig &config);
3550  * @tc.type: FUNC
3551  */
3552 HWTEST_F(UsbDevicePipeTest, SetConfiguration001, TestSize.Level1)
3553 {
3554     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : SetConfiguration001 : SetConfiguration");
3555     vector<UsbDevice> delist;
3556     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3557     auto ret = UsbSrvClient.GetDevices(delist);
3558     ASSERT_EQ(ret, 0);
3559     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration001 %{public}d ret=%{public}d", __LINE__, ret);
3560     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3561     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration001 %{public}d size=%{public}zu", __LINE__,
3562                delist.size());
3563     USBDevicePipe pipe;
3564         UsbDevice device;
3565     bool hasDevice = false;
3566     for (int32_t i = 0; i < delist.size(); i++) {
3567         if (delist[i].GetClass() != 9) {
3568             device = delist[i];
3569             hasDevice = true;
3570         }
3571     }
3572     EXPECT_TRUE(hasDevice);
3573     UsbSrvClient.RequestRight(device.GetName());
3574     USBConfig config = device.GetConfigs().front();
3575     ret = UsbSrvClient.OpenDevice(device, pipe);
3576     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration001 %{public}d OpenDevice=%{public}d", __LINE__,
3577                ret);
3578     ASSERT_EQ(ret, 0);
3579     ret = UsbSrvClient.SetConfiguration(pipe, config);
3580     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration001 %{public}d SetConfiguration=%{public}d",
3581                __LINE__, ret);
3582     ASSERT_EQ(ret, 0);
3583     bool close = UsbSrvClient.Close(pipe);
3584     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration001 %{public}d close=%{public}d", __LINE__,
3585                close);
3586     EXPECT_TRUE(close);
3587     USB_HILOGI(MODULE_USB_SERVICE, "Case End : SetConfiguration001 : SetConfiguration");
3588 }
3589 
3590 /**
3591  * @tc.name: SetConfiguration002
3592  * @tc.desc: Test functions to  SetConfiguration(const USBConfig &config);
3593  * @tc.type: FUNC
3594  */
3595 HWTEST_F(UsbDevicePipeTest, SetConfiguration002, TestSize.Level1)
3596 {
3597     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : SetConfiguration002 : SetConfiguration");
3598     vector<UsbDevice> delist;
3599     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3600     auto ret = UsbSrvClient.GetDevices(delist);
3601     ASSERT_EQ(ret, 0);
3602     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration002 %{public}d ret=%{public}d", __LINE__, ret);
3603     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3604     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration002 %{public}d size=%{public}zu", __LINE__,
3605                delist.size());
3606     USBDevicePipe pipe;
3607         UsbDevice device;
3608     bool hasDevice = false;
3609     for (int32_t i = 0; i < delist.size(); i++) {
3610         if (delist[i].GetClass() != 9) {
3611             device = delist[i];
3612             hasDevice = true;
3613         }
3614     }
3615     EXPECT_TRUE(hasDevice);
3616     UsbSrvClient.RequestRight(device.GetName());
3617     USBConfig config = device.GetConfigs().front();
3618     ret = UsbSrvClient.OpenDevice(device, pipe);
3619     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration002 %{public}d OpenDevice=%{public}d", __LINE__,
3620                ret);
3621     ASSERT_EQ(ret, 0);
3622     pipe.SetBusNum(BUFFER_SIZE);
3623     ret = UsbSrvClient.SetConfiguration(pipe, config);
3624     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration002 %{public}d SetConfiguration=%{public}d",
3625                __LINE__, ret);
3626     ASSERT_NE(ret, 0);
3627     pipe.SetBusNum(device.GetBusNum());
3628     bool close = UsbSrvClient.Close(pipe);
3629     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration002 %{public}d close=%{public}d", __LINE__,
3630                close);
3631     EXPECT_TRUE(close);
3632     USB_HILOGI(MODULE_USB_SERVICE, "Case End : SetConfiguration002 : SetConfiguration");
3633 }
3634 
3635 /**
3636  * @tc.name: SetConfiguration003
3637  * @tc.desc: Test functions to  SetConfiguration(const USBConfig &config);
3638  * @tc.type: FUNC
3639  */
3640 HWTEST_F(UsbDevicePipeTest, SetConfiguration003, TestSize.Level1)
3641 {
3642     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : SetConfiguration003 : SetConfiguration");
3643     vector<UsbDevice> delist;
3644     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3645     auto ret = UsbSrvClient.GetDevices(delist);
3646     ASSERT_EQ(ret, 0);
3647     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration003 %{public}d ret=%{public}d", __LINE__, ret);
3648     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3649     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration003 %{public}d size=%{public}zu", __LINE__,
3650                delist.size());
3651     USBDevicePipe pipe;
3652         UsbDevice device;
3653     bool hasDevice = false;
3654     for (int32_t i = 0; i < delist.size(); i++) {
3655         if (delist[i].GetClass() != 9) {
3656             device = delist[i];
3657             hasDevice = true;
3658         }
3659     }
3660     EXPECT_TRUE(hasDevice);
3661     UsbSrvClient.RequestRight(device.GetName());
3662     USBConfig config = device.GetConfigs().front();
3663     ret = UsbSrvClient.OpenDevice(device, pipe);
3664     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration003 %{public}d OpenDevice=%{public}d", __LINE__,
3665                ret);
3666     ASSERT_EQ(ret, 0);
3667     pipe.SetDevAddr(BUFFER_SIZE);
3668     ret = UsbSrvClient.SetConfiguration(pipe, config);
3669     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration003 %{public}d SetConfiguration=%{public}d",
3670                __LINE__, ret);
3671     ASSERT_NE(ret, 0);
3672     pipe.SetDevAddr(device.GetDevAddr());
3673     bool close = UsbSrvClient.Close(pipe);
3674     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetConfiguration003 %{public}d close=%{public}d", __LINE__,
3675                close);
3676     EXPECT_TRUE(close);
3677 
3678     USB_HILOGI(MODULE_USB_SERVICE, "Case End : SetConfiguration003 : SetConfiguration");
3679 }
3680 
3681 /**
3682  * @tc.name: Close001
3683  * @tc.desc: Test functions to  Close();
3684  * @tc.type: FUNC
3685  */
3686 HWTEST_F(UsbDevicePipeTest, Close001, TestSize.Level1)
3687 {
3688     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Close001 : Close");
3689     vector<UsbDevice> delist;
3690     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3691     auto ret = UsbSrvClient.GetDevices(delist);
3692     ASSERT_EQ(ret, 0);
3693     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close001 %{public}d ret=%{public}d", __LINE__, ret);
3694     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3695     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close001 %{public}d size=%{public}zu", __LINE__, delist.size());
3696     USBDevicePipe pipe;
3697         UsbDevice device;
3698     bool hasDevice = false;
3699     for (int32_t i = 0; i < delist.size(); i++) {
3700         if (delist[i].GetClass() != 9) {
3701             device = delist[i];
3702             hasDevice = true;
3703         }
3704     }
3705     EXPECT_TRUE(hasDevice);
3706     UsbSrvClient.RequestRight(device.GetName());
3707     ret = UsbSrvClient.OpenDevice(device, pipe);
3708     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close001 %{public}d OpenDevice=%{public}d", __LINE__, ret);
3709     ASSERT_EQ(ret, 0);
3710     ret = UsbSrvClient.Close(pipe);
3711     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close001 %{public}d close=%{public}d", __LINE__, ret);
3712     EXPECT_TRUE(ret);
3713     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Close001 : Close");
3714 }
3715 
3716 /**
3717  * @tc.name: Close002
3718  * @tc.desc: Test functions to  Close();
3719  * @tc.type: FUNC
3720  */
3721 HWTEST_F(UsbDevicePipeTest, Close002, TestSize.Level1)
3722 {
3723     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Close002 : Close");
3724     vector<UsbDevice> delist;
3725     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3726     auto ret = UsbSrvClient.GetDevices(delist);
3727     ASSERT_EQ(ret, 0);
3728     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close002 %{public}d ret=%{public}d", __LINE__, ret);
3729     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3730     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close002 %{public}d size=%{public}zu", __LINE__, delist.size());
3731     USBDevicePipe pipe;
3732         UsbDevice device;
3733     bool hasDevice = false;
3734     for (int32_t i = 0; i < delist.size(); i++) {
3735         if (delist[i].GetClass() != 9) {
3736             device = delist[i];
3737             hasDevice = true;
3738         }
3739     }
3740     EXPECT_TRUE(hasDevice);
3741     UsbSrvClient.RequestRight(device.GetName());
3742     ret = UsbSrvClient.OpenDevice(device, pipe);
3743     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close002 %{public}d OpenDevice=%{public}d", __LINE__, ret);
3744     ASSERT_EQ(ret, 0);
3745     pipe.SetBusNum(BUFFER_SIZE);
3746     ret = UsbSrvClient.Close(pipe);
3747     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close002 %{public}d close=%{public}d", __LINE__, ret);
3748     EXPECT_TRUE(!ret);
3749     pipe.SetBusNum(device.GetBusNum());
3750     ret = UsbSrvClient.Close(pipe);
3751     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close002 %{public}d close=%{public}d", __LINE__, ret);
3752     EXPECT_TRUE(ret);
3753     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Close002 : Close");
3754 }
3755 
3756 /**
3757  * @tc.name: Close003
3758  * @tc.desc: Test functions to  Close();
3759  * @tc.type: FUNC
3760  */
3761 HWTEST_F(UsbDevicePipeTest, Close003, TestSize.Level1)
3762 {
3763     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : Close003 : Close");
3764     vector<UsbDevice> delist;
3765     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3766     auto ret = UsbSrvClient.GetDevices(delist);
3767     ASSERT_EQ(ret, 0);
3768     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close003 %{public}d ret=%{public}d", __LINE__, ret);
3769     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3770     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close003 %{public}d size=%{public}zu", __LINE__, delist.size());
3771     USBDevicePipe pipe;
3772         UsbDevice device;
3773     bool hasDevice = false;
3774     for (int32_t i = 0; i < delist.size(); i++) {
3775         if (delist[i].GetClass() != 9) {
3776             device = delist[i];
3777             hasDevice = true;
3778         }
3779     }
3780     EXPECT_TRUE(hasDevice);
3781     UsbSrvClient.RequestRight(device.GetName());
3782     ret = UsbSrvClient.OpenDevice(device, pipe);
3783     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close003 %{public}d OpenDevice=%{public}d", __LINE__, ret);
3784     ASSERT_EQ(ret, 0);
3785     pipe.SetDevAddr(BUFFER_SIZE);
3786     ret = UsbSrvClient.Close(pipe);
3787     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close003 %{public}d close=%{public}d", __LINE__, ret);
3788     EXPECT_TRUE(!ret);
3789     pipe.SetDevAddr(device.GetDevAddr());
3790     ret = UsbSrvClient.Close(pipe);
3791     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close003 %{public}d close=%{public}d", __LINE__, ret);
3792     EXPECT_TRUE(ret);
3793     USB_HILOGI(MODULE_USB_SERVICE, "Case End : Close003 : Close");
3794 }
3795 
3796 /**
3797  * @tc.name: SetInterface001
3798  * @tc.desc: Test functions to SetInterface(const UsbInterface &interface);
3799  * @tc.type: FUNC
3800  */
3801 HWTEST_F(UsbDevicePipeTest, SetInterface001, TestSize.Level1)
3802 {
3803     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : SetInterface001 : SetInterface");
3804     vector<UsbDevice> delist;
3805     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3806     auto ret = UsbSrvClient.GetDevices(delist);
3807     ASSERT_EQ(ret, 0);
3808     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface001 %{public}d ret=%{public}d", __LINE__, ret);
3809     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3810     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface001 %{public}d size=%{public}zu", __LINE__,
3811                delist.size());
3812     USBDevicePipe pipe;
3813         UsbDevice device;
3814     bool hasDevice = false;
3815     for (int32_t i = 0; i < delist.size(); i++) {
3816         if (delist[i].GetClass() != 9) {
3817             device = delist[i];
3818             hasDevice = true;
3819         }
3820     }
3821     EXPECT_TRUE(hasDevice);
3822     UsbSrvClient.RequestRight(device.GetName());
3823     ret = UsbSrvClient.OpenDevice(device, pipe);
3824     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface001 %{public}d OpenDevice=%{public}d", __LINE__,
3825                ret);
3826     ASSERT_EQ(ret, 0);
3827     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(0);
3828     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3829     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface001 %{public}d ClaimInterface=%{public}d", __LINE__,
3830                ret);
3831     ASSERT_EQ(ret, 0);
3832     ret = UsbSrvClient.SetInterface(pipe, interface);
3833     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface001 %{public}d SetInterface=%{public}d", __LINE__,
3834                ret);
3835     ASSERT_EQ(ret, 0);
3836     bool close = UsbSrvClient.Close(pipe);
3837     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface001 %{public}d close=%{public}d", __LINE__, close);
3838     EXPECT_TRUE(close);
3839     USB_HILOGI(MODULE_USB_SERVICE, "Case End : SetInterface001 : SetInterface");
3840 }
3841 
3842 /**
3843  * @tc.name: SetInterface002
3844  * @tc.desc: Test functions to SetInterface(const UsbInterface &interface);
3845  * @tc.type: FUNC
3846  */
3847 HWTEST_F(UsbDevicePipeTest, SetInterface002, TestSize.Level1)
3848 {
3849     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : SetInterface002 : SetInterface");
3850     vector<UsbDevice> delist;
3851     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3852     auto ret = UsbSrvClient.GetDevices(delist);
3853     ASSERT_EQ(ret, 0);
3854     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface002 %{public}d ret=%{public}d", __LINE__, ret);
3855     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3856     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface002 %{public}d size=%{public}zu", __LINE__,
3857                delist.size());
3858     USBDevicePipe pipe;
3859         UsbDevice device;
3860     bool hasDevice = false;
3861     for (int32_t i = 0; i < delist.size(); i++) {
3862         if (delist[i].GetClass() != 9) {
3863             device = delist[i];
3864             hasDevice = true;
3865         }
3866     }
3867     EXPECT_TRUE(hasDevice);
3868     UsbSrvClient.RequestRight(device.GetName());
3869     ret = UsbSrvClient.OpenDevice(device, pipe);
3870     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface002 %{public}d OpenDevice=%{public}d", __LINE__,
3871                ret);
3872     ASSERT_EQ(ret, 0);
3873     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(0);
3874     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3875     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface002 %{public}d ClaimInterface=%{public}d", __LINE__,
3876                ret);
3877     ASSERT_EQ(ret, 0);
3878     pipe.SetBusNum(BUFFER_SIZE);
3879     ret = UsbSrvClient.SetInterface(pipe, interface);
3880     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface002 %{public}d SetInterface=%{public}d", __LINE__,
3881                ret);
3882     ASSERT_NE(ret, 0);
3883     pipe.SetBusNum(device.GetBusNum());
3884     bool close = UsbSrvClient.Close(pipe);
3885     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface002 %{public}d close=%{public}d", __LINE__, close);
3886     EXPECT_TRUE(close);
3887     USB_HILOGI(MODULE_USB_SERVICE, "Case End : SetInterface002 : SetInterface");
3888 }
3889 
3890 /**
3891  * @tc.name: SetInterface003
3892  * @tc.desc: Test functions to SetInterface(const UsbInterface &interface);
3893  * @tc.type: FUNC
3894  */
3895 HWTEST_F(UsbDevicePipeTest, SetInterface003, TestSize.Level1)
3896 {
3897     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : SetInterface003 : SetInterface");
3898     vector<UsbDevice> delist;
3899     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3900     auto ret = UsbSrvClient.GetDevices(delist);
3901     ASSERT_EQ(ret, 0);
3902     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface003 %{public}d ret=%{public}d", __LINE__, ret);
3903     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3904     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface003 %{public}d size=%{public}zu", __LINE__,
3905                delist.size());
3906     USBDevicePipe pipe;
3907         UsbDevice device;
3908     bool hasDevice = false;
3909     for (int32_t i = 0; i < delist.size(); i++) {
3910         if (delist[i].GetClass() != 9) {
3911             device = delist[i];
3912             hasDevice = true;
3913         }
3914     }
3915     EXPECT_TRUE(hasDevice);
3916     UsbSrvClient.RequestRight(device.GetName());
3917     ret = UsbSrvClient.OpenDevice(device, pipe);
3918     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface003 %{public}d OpenDevice=%{public}d", __LINE__,
3919                ret);
3920     ASSERT_EQ(ret, 0);
3921     UsbInterface interface = device.GetConfigs().front().GetInterfaces().at(0);
3922     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3923     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface003 %{public}d ClaimInterface=%{public}d", __LINE__,
3924                ret);
3925     ASSERT_EQ(ret, 0);
3926     pipe.SetDevAddr(BUFFER_SIZE);
3927     ret = UsbSrvClient.SetInterface(pipe, interface);
3928     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface003 %{public}d SetInterface=%{public}d", __LINE__,
3929                ret);
3930     ASSERT_NE(ret, 0);
3931     pipe.SetDevAddr(device.GetDevAddr());
3932     bool close = UsbSrvClient.Close(pipe);
3933     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface003 %{public}d close=%{public}d", __LINE__, close);
3934     EXPECT_TRUE(close);
3935     USB_HILOGI(MODULE_USB_SERVICE, "Case End : SetInterface003 : SetInterface");
3936 }
3937 
3938 /**
3939  * @tc.name: SetInterface004
3940  * @tc.desc: Test functions to  SetInterface(const UsbInterface &interface);
3941  * @tc.type: FUNC
3942  */
3943 HWTEST_F(UsbDevicePipeTest, SetInterface004, TestSize.Level1)
3944 {
3945     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : SetInterface004 : SetInterface");
3946     vector<UsbDevice> delist;
3947     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3948     auto ret = UsbSrvClient.GetDevices(delist);
3949     ASSERT_EQ(ret, 0);
3950     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface004 %{public}d ret=%{public}d", __LINE__, ret);
3951     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3952     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface004 %{public}d size=%{public}zu", __LINE__,
3953                delist.size());
3954     USBDevicePipe pipe;
3955         UsbDevice device;
3956     bool hasDevice = false;
3957     for (int32_t i = 0; i < delist.size(); i++) {
3958         if (delist[i].GetClass() != 9) {
3959             device = delist[i];
3960             hasDevice = true;
3961         }
3962     }
3963     EXPECT_TRUE(hasDevice);
3964     UsbSrvClient.RequestRight(device.GetName());
3965     ret = UsbSrvClient.OpenDevice(device, pipe);
3966     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface004 %{public}d OpenDevice=%{public}d", __LINE__,
3967                ret);
3968     ASSERT_EQ(ret, 0);
3969     UsbInterface interface = device.GetConfigs().at(0).GetInterfaces().at(1);
3970     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
3971     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface004 %{public}d ClaimInterface=%{public}d", __LINE__,
3972                ret);
3973     ASSERT_EQ(ret, 0);
3974     ret = UsbSrvClient.SetInterface(pipe, interface);
3975     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface004 %{public}d SetInterface=%{public}d", __LINE__,
3976                ret);
3977     ASSERT_EQ(ret, 0);
3978     bool close = UsbSrvClient.Close(pipe);
3979     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface004 %{public}d close=%{public}d", __LINE__, close);
3980     EXPECT_TRUE(close);
3981     USB_HILOGI(MODULE_USB_SERVICE, "Case End : SetInterface004 : SetInterface");
3982 }
3983 
3984 /**
3985  * @tc.name: SetInterface005
3986  * @tc.desc: Test functions to  SetInterface(const UsbInterface &interface);
3987  * @tc.type: FUNC
3988  */
3989 HWTEST_F(UsbDevicePipeTest, SetInterface005, TestSize.Level1)
3990 {
3991     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : SetInterface005 : SetInterface");
3992     vector<UsbDevice> delist;
3993     auto &UsbSrvClient = UsbSrvClient::GetInstance();
3994     auto ret = UsbSrvClient.GetDevices(delist);
3995     ASSERT_EQ(ret, 0);
3996     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface005 %{public}d ret=%{public}d", __LINE__, ret);
3997     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
3998     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface005 %{public}d size=%{public}zu", __LINE__,
3999                delist.size());
4000     USBDevicePipe pipe;
4001         UsbDevice device;
4002     bool hasDevice = false;
4003     for (int32_t i = 0; i < delist.size(); i++) {
4004         if (delist[i].GetClass() != 9) {
4005             device = delist[i];
4006             hasDevice = true;
4007         }
4008     }
4009     EXPECT_TRUE(hasDevice);
4010     UsbSrvClient.RequestRight(device.GetName());
4011     ret = UsbSrvClient.OpenDevice(device, pipe);
4012     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface005 %{public}d OpenDevice=%{public}d", __LINE__,
4013                ret);
4014     ASSERT_EQ(ret, 0);
4015     UsbInterface interface = device.GetConfigs().at(0).GetInterfaces().at(1);
4016     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
4017     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface005 %{public}d ClaimInterface=%{public}d", __LINE__,
4018                ret);
4019     ASSERT_EQ(ret, 0);
4020     pipe.SetBusNum(BUFFER_SIZE);
4021     ret = UsbSrvClient.SetInterface(pipe, interface);
4022     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface005 %{public}d SetInterface=%{public}d", __LINE__,
4023                ret);
4024     ASSERT_NE(ret, 0);
4025     pipe.SetBusNum(device.GetBusNum());
4026     bool close = UsbSrvClient.Close(pipe);
4027     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface005 %{public}d close=%{public}d", __LINE__, close);
4028     EXPECT_TRUE(close);
4029     USB_HILOGI(MODULE_USB_SERVICE, "Case End : SetInterface005 : SetInterface");
4030 }
4031 
4032 /**
4033  * @tc.name: SetInterface006
4034  * @tc.desc: Test functions to  SetInterface(const UsbInterface &interface);
4035  * @tc.type: FUNC
4036  */
4037 HWTEST_F(UsbDevicePipeTest, SetInterface006, TestSize.Level1)
4038 {
4039     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : SetInterface006 : SetInterface");
4040     vector<UsbDevice> delist;
4041     auto &UsbSrvClient = UsbSrvClient::GetInstance();
4042     auto ret = UsbSrvClient.GetDevices(delist);
4043     ASSERT_EQ(ret, 0);
4044     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface006 %{public}d ret=%{public}d", __LINE__, ret);
4045     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
4046     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface006 %{public}d size=%{public}zu", __LINE__,
4047                delist.size());
4048     USBDevicePipe pipe;
4049         UsbDevice device;
4050     bool hasDevice = false;
4051     for (int32_t i = 0; i < delist.size(); i++) {
4052         if (delist[i].GetClass() != 9) {
4053             device = delist[i];
4054             hasDevice = true;
4055         }
4056     }
4057     EXPECT_TRUE(hasDevice);
4058     UsbSrvClient.RequestRight(device.GetName());
4059     ret = UsbSrvClient.OpenDevice(device, pipe);
4060     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface006 %{public}d OpenDevice=%{public}d", __LINE__,
4061                ret);
4062     ASSERT_EQ(ret, 0);
4063     UsbInterface interface = device.GetConfigs().at(0).GetInterfaces().at(1);
4064     ret = UsbSrvClient.ClaimInterface(pipe, interface, true);
4065     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface006 %{public}d ClaimInterface=%{public}d", __LINE__,
4066                ret);
4067     ASSERT_EQ(ret, 0);
4068     pipe.SetDevAddr(BUFFER_SIZE);
4069     ret = UsbSrvClient.SetInterface(pipe, interface);
4070     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface006 %{public}d SetInterface=%{public}d", __LINE__,
4071                ret);
4072     ASSERT_NE(ret, 0);
4073     pipe.SetDevAddr(device.GetDevAddr());
4074     bool close = UsbSrvClient.Close(pipe);
4075     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::SetInterface006 %{public}d close=%{public}d", __LINE__, close);
4076     EXPECT_TRUE(close);
4077     USB_HILOGI(MODULE_USB_SERVICE, "Case End : SetInterface006 : SetInterface");
4078 }
4079 
4080 /**
4081  * @tc.name: GetRawDescriptors001
4082  * @tc.desc: Test functions to GetRawDescriptors
4083  * @tc.type: FUNC
4084  */
4085 HWTEST_F(UsbDevicePipeTest, GetRawDescriptors001, TestSize.Level1)
4086 {
4087     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : GetRawDescriptors001 : GetRawDescriptors");
4088     vector<UsbDevice> delist;
4089     auto &UsbSrvClient = UsbSrvClient::GetInstance();
4090     auto ret = UsbSrvClient.GetDevices(delist);
4091     ASSERT_EQ(ret, 0);
4092     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors001 %{public}d ret=%{public}d", __LINE__, ret);
4093     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
4094     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors001 %{public}d size=%{public}zu", __LINE__,
4095                delist.size());
4096     USBDevicePipe pipe;
4097         UsbDevice device;
4098     bool hasDevice = false;
4099     for (int32_t i = 0; i < delist.size(); i++) {
4100         if (delist[i].GetClass() != 9) {
4101             device = delist[i];
4102             hasDevice = true;
4103         }
4104     }
4105     EXPECT_TRUE(hasDevice);
4106     UsbSrvClient.RequestRight(device.GetName());
4107     ret = UsbSrvClient.OpenDevice(device, pipe);
4108     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors001 %{public}d OpenDevice=%{public}d",
4109                __LINE__, ret);
4110     ASSERT_EQ(ret, 0);
4111     std::vector<uint8_t> vData;
4112     ret = UsbSrvClient.GetRawDescriptors(pipe, vData);
4113     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors001 %{public}d GetRawDescriptors=%{public}d",
4114                __LINE__, ret);
4115     ASSERT_EQ(ret, 0);
4116     ret = UsbSrvClient.Close(pipe);
4117     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
4118     EXPECT_TRUE(ret);
4119     USB_HILOGI(MODULE_USB_SERVICE, "Case End : GetRawDescriptors001 : ControlTransfer");
4120 }
4121 
4122 /**
4123  * @tc.name: GetRawDescriptors002
4124  * @tc.desc: Test functions to GetRawDescriptors
4125  * @tc.type: FUNC
4126  */
4127 HWTEST_F(UsbDevicePipeTest, GetRawDescriptors002, TestSize.Level1)
4128 {
4129     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : GetRawDescriptors002 : GetRawDescriptors");
4130     vector<UsbDevice> delist;
4131     auto &UsbSrvClient = UsbSrvClient::GetInstance();
4132     auto ret = UsbSrvClient.GetDevices(delist);
4133     ASSERT_EQ(ret, 0);
4134     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors002 %{public}d ret=%{public}d", __LINE__, ret);
4135     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
4136     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors002 %{public}d size=%{public}zu", __LINE__,
4137                delist.size());
4138     USBDevicePipe pipe;
4139         UsbDevice device;
4140     bool hasDevice = false;
4141     for (int32_t i = 0; i < delist.size(); i++) {
4142         if (delist[i].GetClass() != 9) {
4143             device = delist[i];
4144             hasDevice = true;
4145         }
4146     }
4147     EXPECT_TRUE(hasDevice);
4148     UsbSrvClient.RequestRight(device.GetName());
4149     ret = UsbSrvClient.OpenDevice(device, pipe);
4150     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors002 %{public}d OpenDevice=%{public}d",
4151                __LINE__, ret);
4152     ASSERT_EQ(ret, 0);
4153     std::vector<uint8_t> vData;
4154     USBDevicePipe pipeTmp = pipe;
4155     pipeTmp.SetBusNum(BUFFER_SIZE);
4156     ret = UsbSrvClient.GetRawDescriptors(pipeTmp, vData);
4157     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors002 %{public}d GetRawDescriptors=%{public}d",
4158                __LINE__, ret);
4159     ASSERT_NE(ret, 0);
4160     ret = UsbSrvClient.Close(pipe);
4161     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
4162     EXPECT_TRUE(ret);
4163     USB_HILOGI(MODULE_USB_SERVICE, "Case End : GetRawDescriptors002 : ControlTransfer");
4164 }
4165 
4166 /**
4167  * @tc.name: GetRawDescriptors003
4168  * @tc.desc: Test functions to GetRawDescriptors
4169  * @tc.type: FUNC
4170  */
4171 HWTEST_F(UsbDevicePipeTest, GetRawDescriptors003, TestSize.Level1)
4172 {
4173     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : GetRawDescriptors003 : GetRawDescriptors");
4174     vector<UsbDevice> delist;
4175     auto &UsbSrvClient = UsbSrvClient::GetInstance();
4176     auto ret = UsbSrvClient.GetDevices(delist);
4177     ASSERT_EQ(ret, 0);
4178     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors003 %{public}d ret=%{public}d", __LINE__, ret);
4179     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
4180     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors003 %{public}d size=%{public}zu", __LINE__,
4181                delist.size());
4182     USBDevicePipe pipe;
4183         UsbDevice device;
4184     bool hasDevice = false;
4185     for (int32_t i = 0; i < delist.size(); i++) {
4186         if (delist[i].GetClass() != 9) {
4187             device = delist[i];
4188             hasDevice = true;
4189         }
4190     }
4191     EXPECT_TRUE(hasDevice);
4192     UsbSrvClient.RequestRight(device.GetName());
4193     ret = UsbSrvClient.OpenDevice(device, pipe);
4194     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors003 %{public}d OpenDevice=%{public}d",
4195                __LINE__, ret);
4196     ASSERT_EQ(ret, 0);
4197     std::vector<uint8_t> vData;
4198     USBDevicePipe pipeTmp = pipe;
4199     pipeTmp.SetDevAddr(BUFFER_SIZE);
4200     ret = UsbSrvClient.GetRawDescriptors(pipeTmp, vData);
4201     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetRawDescriptors003 %{public}d GetRawDescriptors=%{public}d",
4202                __LINE__, ret);
4203     ASSERT_NE(ret, 0);
4204     ret = UsbSrvClient.Close(pipe);
4205     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
4206     EXPECT_TRUE(ret);
4207     USB_HILOGI(MODULE_USB_SERVICE, "Case End : GetRawDescriptors003 : ControlTransfer");
4208 }
4209 
4210 /**
4211  * @tc.name: GetFileDescriptors001
4212  * @tc.desc: Test functions to GetRawDescriptors
4213  * @tc.type: FUNC
4214  */
4215 HWTEST_F(UsbDevicePipeTest, GetFileDescriptors001, TestSize.Level1)
4216 {
4217     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : GetFileDescriptors001 : GetRawDescriptors");
4218     vector<UsbDevice> delist;
4219     auto &UsbSrvClient = UsbSrvClient::GetInstance();
4220     auto ret = UsbSrvClient.GetDevices(delist);
4221     ASSERT_EQ(ret, 0);
4222     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors001 %{public}d ret=%{public}d", __LINE__, ret);
4223     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
4224     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors001 %{public}d size=%{public}zu", __LINE__,
4225                delist.size());
4226     USBDevicePipe pipe;
4227         UsbDevice device;
4228     bool hasDevice = false;
4229     for (int32_t i = 0; i < delist.size(); i++) {
4230         if (delist[i].GetClass() != 9) {
4231             device = delist[i];
4232             hasDevice = true;
4233         }
4234     }
4235     EXPECT_TRUE(hasDevice);
4236     UsbSrvClient.RequestRight(device.GetName());
4237     ret = UsbSrvClient.OpenDevice(device, pipe);
4238     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors001 %{public}d OpenDevice=%{public}d",
4239                __LINE__, ret);
4240     ASSERT_EQ(ret, 0);
4241     std::vector<uint8_t> vData;
4242     ret = UsbSrvClient.GetRawDescriptors(pipe, vData);
4243     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors001 %{public}d GetRawDescriptors=%{public}d",
4244                __LINE__, ret);
4245     ASSERT_EQ(ret, 0);
4246     int32_t fd = 0;
4247     ret = UsbSrvClient.GetFileDescriptor(pipe, fd);
4248     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors001 %{public}d GetFileDescriptor=%{public}d",
4249                __LINE__, ret);
4250     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors001 %{public}d fd=%{public}d",
4251                __LINE__, fd);
4252     ASSERT_EQ(ret, 0);
4253     ret = ioctl(fd, USBDEVFS_GET_SPEED, NULL);
4254     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptor001 %{public}d fd=%{public}d ret=%{public}d",
4255                __LINE__, fd, ret);
4256     EXPECT_GE(ret, 0);
4257     ret = UsbSrvClient.Close(pipe);
4258     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
4259     EXPECT_TRUE(ret);
4260     USB_HILOGI(MODULE_USB_SERVICE, "Case End : GetFileDescriptors001 : ControlTransfer");
4261 }
4262 
4263 /**
4264  * @tc.name: GetFileDescriptors002
4265  * @tc.desc: Test functions to GetRawDescriptors
4266  * @tc.type: FUNC
4267  */
4268 HWTEST_F(UsbDevicePipeTest, GetFileDescriptors002, TestSize.Level1)
4269 {
4270     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : GetFileDescriptors002 : GetRawDescriptors");
4271     vector<UsbDevice> delist;
4272     auto &UsbSrvClient = UsbSrvClient::GetInstance();
4273     auto ret = UsbSrvClient.GetDevices(delist);
4274     ASSERT_EQ(ret, 0);
4275     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors002 %{public}d ret=%{public}d", __LINE__, ret);
4276     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
4277     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors002 %{public}d size=%{public}zu", __LINE__,
4278                delist.size());
4279     USBDevicePipe pipe;
4280         UsbDevice device;
4281     bool hasDevice = false;
4282     for (int32_t i = 0; i < delist.size(); i++) {
4283         if (delist[i].GetClass() != 9) {
4284             device = delist[i];
4285             hasDevice = true;
4286         }
4287     }
4288     EXPECT_TRUE(hasDevice);
4289     UsbSrvClient.RequestRight(device.GetName());
4290     ret = UsbSrvClient.OpenDevice(device, pipe);
4291     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors002 %{public}d OpenDevice=%{public}d",
4292                __LINE__, ret);
4293     ASSERT_EQ(ret, 0);
4294     std::vector<uint8_t> vData;
4295     ret = UsbSrvClient.GetRawDescriptors(pipe, vData);
4296     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors002 %{public}d GetRawDescriptors=%{public}d",
4297                __LINE__, ret);
4298     ASSERT_EQ(ret, 0);
4299     USBDevicePipe pipeTmp = pipe;
4300     pipeTmp.SetBusNum(BUFFER_SIZE);
4301     int32_t fd = 0;
4302     ret = UsbSrvClient.GetFileDescriptor(pipeTmp, fd);
4303     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors002 %{public}d GetFileDescriptor=%{public}d",
4304                __LINE__, ret);
4305     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors001 %{public}d fd=%{public}d",
4306                __LINE__, fd);
4307     ASSERT_NE(ret, 0);
4308     ret = UsbSrvClient.Close(pipe);
4309     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
4310     EXPECT_TRUE(ret);
4311     USB_HILOGI(MODULE_USB_SERVICE, "Case End : GetFileDescriptors002 : ControlTransfer");
4312 }
4313 
4314 /**
4315  * @tc.name: GetFileDescriptors003
4316  * @tc.desc: Test functions to GetRawDescriptors
4317  * @tc.type: FUNC
4318  */
4319 HWTEST_F(UsbDevicePipeTest, GetFileDescriptors003, TestSize.Level1)
4320 {
4321     USB_HILOGI(MODULE_USB_SERVICE, "Case Start : GetFileDescriptors003 : GetRawDescriptors");
4322     vector<UsbDevice> delist;
4323     auto &UsbSrvClient = UsbSrvClient::GetInstance();
4324     auto ret = UsbSrvClient.GetDevices(delist);
4325     ASSERT_EQ(ret, 0);
4326     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors003 %{public}d ret=%{public}d", __LINE__, ret);
4327     EXPECT_TRUE(!(delist.empty())) << "delist NULL";
4328     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors003 %{public}d size=%{public}zu", __LINE__,
4329                delist.size());
4330     USBDevicePipe pipe;
4331         UsbDevice device;
4332     bool hasDevice = false;
4333     for (int32_t i = 0; i < delist.size(); i++) {
4334         if (delist[i].GetClass() != 9) {
4335             device = delist[i];
4336             hasDevice = true;
4337         }
4338     }
4339     EXPECT_TRUE(hasDevice);
4340     UsbSrvClient.RequestRight(device.GetName());
4341     ret = UsbSrvClient.OpenDevice(device, pipe);
4342     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors003 %{public}d OpenDevice=%{public}d",
4343                __LINE__, ret);
4344     ASSERT_EQ(ret, 0);
4345     std::vector<uint8_t> vData;
4346     ret = UsbSrvClient.GetRawDescriptors(pipe, vData);
4347     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors003 %{public}d GetRawDescriptors=%{public}d",
4348                __LINE__, ret);
4349     ASSERT_EQ(ret, 0);
4350     USBDevicePipe pipeTmp = pipe;
4351     pipeTmp.SetDevAddr(BUFFER_SIZE);
4352     int32_t fd = 0;
4353     ret = UsbSrvClient.GetFileDescriptor(pipeTmp, fd);
4354     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors003 %{public}d GetFileDescriptor=%{public}d",
4355                __LINE__, ret);
4356     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::GetFileDescriptors001 %{public}d fd=%{public}d",
4357                __LINE__, fd);
4358     ASSERT_NE(ret, 0);
4359     ret = UsbSrvClient.Close(pipe);
4360     USB_HILOGI(MODULE_USB_SERVICE, "UsbDevicePipeTest::Close=%{public}d", ret);
4361     EXPECT_TRUE(ret);
4362     USB_HILOGI(MODULE_USB_SERVICE, "Case End : GetFileDescriptors003 : ControlTransfer");
4363 }
4364 } // DevicePipe
4365 } // USB
4366 } // OHOS
4367