1094332d3Sopenharmony_ci/* 2094332d3Sopenharmony_ci * Copyright (c) 2021-2023 Huawei Device Co., Ltd. 3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4094332d3Sopenharmony_ci * you may not use this file except in compliance with the License. 5094332d3Sopenharmony_ci * You may obtain a copy of the License at 6094332d3Sopenharmony_ci * 7094332d3Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8094332d3Sopenharmony_ci * 9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and 13094332d3Sopenharmony_ci * limitations under the License. 14094332d3Sopenharmony_ci */ 15094332d3Sopenharmony_ci 16094332d3Sopenharmony_ci#include "usbd_device_test.h" 17094332d3Sopenharmony_ci 18094332d3Sopenharmony_ci#include <iostream> 19094332d3Sopenharmony_ci#include <vector> 20094332d3Sopenharmony_ci 21094332d3Sopenharmony_ci#include "UsbSubscriberTest.h" 22094332d3Sopenharmony_ci#include "hdf_log.h" 23094332d3Sopenharmony_ci#include "v1_1/iusb_interface.h" 24094332d3Sopenharmony_ci#include "v1_1/usb_types.h" 25094332d3Sopenharmony_ci 26094332d3Sopenharmony_ciusing namespace testing::ext; 27094332d3Sopenharmony_ciusing namespace OHOS; 28094332d3Sopenharmony_ciusing namespace OHOS::USB; 29094332d3Sopenharmony_ciusing namespace std; 30094332d3Sopenharmony_ciusing namespace OHOS::HDI::Usb::V1_0; 31094332d3Sopenharmony_ciusing namespace OHOS::HDI::Usb::V1_1; 32094332d3Sopenharmony_ci 33094332d3Sopenharmony_ciconst int SLEEP_TIME = 3; 34094332d3Sopenharmony_ciconst uint8_t BUS_NUM_INVALID = 255; 35094332d3Sopenharmony_ciconst uint8_t DEV_ADDR_INVALID = 255; 36094332d3Sopenharmony_ciUsbDev UsbdDeviceTest::dev_ = {0, 0}; 37094332d3Sopenharmony_cisptr<UsbSubscriberTest> UsbdDeviceTest::subscriber_ = nullptr; 38094332d3Sopenharmony_ci 39094332d3Sopenharmony_cinamespace { 40094332d3Sopenharmony_cisptr<OHOS::HDI::Usb::V1_1::IUsbInterface> g_usbInterface = nullptr; 41094332d3Sopenharmony_ci 42094332d3Sopenharmony_ciint32_t SwitchErrCode(int32_t ret) 43094332d3Sopenharmony_ci{ 44094332d3Sopenharmony_ci return ret == HDF_ERR_NOT_SUPPORT ? HDF_SUCCESS : ret; 45094332d3Sopenharmony_ci} 46094332d3Sopenharmony_ci 47094332d3Sopenharmony_civoid UsbdDeviceTest::SetUpTestCase(void) 48094332d3Sopenharmony_ci{ 49094332d3Sopenharmony_ci g_usbInterface = OHOS::HDI::Usb::V1_1::IUsbInterface::Get(); 50094332d3Sopenharmony_ci if (g_usbInterface == nullptr) { 51094332d3Sopenharmony_ci HDF_LOGE("%{public}s:IUsbInterface::Get() failed.", __func__); 52094332d3Sopenharmony_ci exit(0); 53094332d3Sopenharmony_ci } 54094332d3Sopenharmony_ci auto ret = g_usbInterface->SetPortRole(1, 1, 1); 55094332d3Sopenharmony_ci sleep(SLEEP_TIME); 56094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest::[Device] %{public}d SetPortRole=%{public}d", __LINE__, ret); 57094332d3Sopenharmony_ci ret = SwitchErrCode(ret); 58094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 59094332d3Sopenharmony_ci if (ret != 0) { 60094332d3Sopenharmony_ci exit(0); 61094332d3Sopenharmony_ci } 62094332d3Sopenharmony_ci 63094332d3Sopenharmony_ci subscriber_ = new UsbSubscriberTest(); 64094332d3Sopenharmony_ci if (g_usbInterface->BindUsbdSubscriber(subscriber_) != HDF_SUCCESS) { 65094332d3Sopenharmony_ci HDF_LOGE("%{public}s: bind usbd subscriber_ failed", __func__); 66094332d3Sopenharmony_ci exit(0); 67094332d3Sopenharmony_ci } 68094332d3Sopenharmony_ci dev_ = {subscriber_->busNum_, subscriber_->devAddr_}; 69094332d3Sopenharmony_ci 70094332d3Sopenharmony_ci std::cout << "please connect device, press enter to continue" << std::endl; 71094332d3Sopenharmony_ci int c; 72094332d3Sopenharmony_ci while ((c = getchar()) != '\n' && c != EOF) {} 73094332d3Sopenharmony_ci} 74094332d3Sopenharmony_ci 75094332d3Sopenharmony_civoid UsbdDeviceTest::TearDownTestCase(void) 76094332d3Sopenharmony_ci{ 77094332d3Sopenharmony_ci g_usbInterface->UnbindUsbdSubscriber(subscriber_); 78094332d3Sopenharmony_ci} 79094332d3Sopenharmony_ci 80094332d3Sopenharmony_civoid UsbdDeviceTest::SetUp(void) {} 81094332d3Sopenharmony_ci 82094332d3Sopenharmony_civoid UsbdDeviceTest::TearDown(void) {} 83094332d3Sopenharmony_ci 84094332d3Sopenharmony_ci/** 85094332d3Sopenharmony_ci * @tc.name: UsbdDevice001 86094332d3Sopenharmony_ci * @tc.desc: Test functions to OpenDevice 87094332d3Sopenharmony_ci * @tc.desc: int32_t OpenDevice(const UsbDev &dev); 88094332d3Sopenharmony_ci * @tc.desc: 正向测试:参数正确 89094332d3Sopenharmony_ci * @tc.type: FUNC 90094332d3Sopenharmony_ci */ 91094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdOpenDevice001, TestSize.Level1) 92094332d3Sopenharmony_ci{ 93094332d3Sopenharmony_ci struct UsbDev dev = dev_; 94094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 95094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result =%{public}d", __LINE__, ret); 96094332d3Sopenharmony_ci EXPECT_EQ(0, ret); 97094332d3Sopenharmony_ci} 98094332d3Sopenharmony_ci 99094332d3Sopenharmony_ci/** 100094332d3Sopenharmony_ci * @tc.name: UsbdDevice002 101094332d3Sopenharmony_ci * @tc.desc: Test functions to OpenDevice 102094332d3Sopenharmony_ci * @tc.desc: int32_t OpenDevice(const UsbDev &dev); 103094332d3Sopenharmony_ci * @tc.desc: 104094332d3Sopenharmony_ci * @tc.type: FUNC 105094332d3Sopenharmony_ci */ 106094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdOpenDevice002, TestSize.Level1) 107094332d3Sopenharmony_ci{ 108094332d3Sopenharmony_ci struct UsbDev dev = {BUS_NUM_INVALID, dev_.devAddr}; 109094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 110094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result=%{public}d", __LINE__, ret); 111094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 112094332d3Sopenharmony_ci} 113094332d3Sopenharmony_ci 114094332d3Sopenharmony_ci/** 115094332d3Sopenharmony_ci * @tc.name: UsbdDevice003 116094332d3Sopenharmony_ci * @tc.desc: Test functions to OpenDevice 117094332d3Sopenharmony_ci * @tc.desc: int32_t OpenDevice(const UsbDev &dev); 118094332d3Sopenharmony_ci * @tc.desc: 119094332d3Sopenharmony_ci * @tc.type: FUNC 120094332d3Sopenharmony_ci */ 121094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdOpenDevice003, TestSize.Level1) 122094332d3Sopenharmony_ci{ 123094332d3Sopenharmony_ci struct UsbDev dev = {dev_.busNum, DEV_ADDR_INVALID}; 124094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 125094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result=%{public}d", __LINE__, ret); 126094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 127094332d3Sopenharmony_ci} 128094332d3Sopenharmony_ci 129094332d3Sopenharmony_ci/** 130094332d3Sopenharmony_ci * @tc.name: UsbdDevice004 131094332d3Sopenharmony_ci * @tc.desc: Test functions to OpenDevice 132094332d3Sopenharmony_ci * @tc.desc: int32_t OpenDevice(const UsbDev &dev); 133094332d3Sopenharmony_ci * @tc.desc: 134094332d3Sopenharmony_ci * @tc.type: FUNC 135094332d3Sopenharmony_ci */ 136094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdOpenDevice004, TestSize.Level1) 137094332d3Sopenharmony_ci{ 138094332d3Sopenharmony_ci struct UsbDev dev = {BUS_NUM_INVALID, DEV_ADDR_INVALID}; 139094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 140094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result=%{public}d", __LINE__, ret); 141094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 142094332d3Sopenharmony_ci} 143094332d3Sopenharmony_ci 144094332d3Sopenharmony_ci/**********************************************************************************************************/ 145094332d3Sopenharmony_ci 146094332d3Sopenharmony_ci/** 147094332d3Sopenharmony_ci * @tc.name: UsbdDevice011 148094332d3Sopenharmony_ci * @tc.desc: Test functions to CloseDevice 149094332d3Sopenharmony_ci * @tc.desc: int32_t CloseDevice(const UsbDev &dev); 150094332d3Sopenharmony_ci * @tc.desc: 正向测试:参数正确 151094332d3Sopenharmony_ci * @tc.type: FUNC 152094332d3Sopenharmony_ci */ 153094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdCloseDevice001, TestSize.Level1) 154094332d3Sopenharmony_ci{ 155094332d3Sopenharmony_ci struct UsbDev dev = dev_; 156094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 157094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result=%{public}d", __LINE__, ret); 158094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 159094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 160094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d Close result=%{public}d", __LINE__, ret); 161094332d3Sopenharmony_ci EXPECT_EQ(0, ret); 162094332d3Sopenharmony_ci} 163094332d3Sopenharmony_ci 164094332d3Sopenharmony_ci/** 165094332d3Sopenharmony_ci * @tc.name: UsbdDevice012 166094332d3Sopenharmony_ci * @tc.desc: Test functions to CloseDevice 167094332d3Sopenharmony_ci * @tc.desc: int32_t CloseDevice(const UsbDev &dev); 168094332d3Sopenharmony_ci * @tc.desc: 169094332d3Sopenharmony_ci * @tc.type: FUNC 170094332d3Sopenharmony_ci */ 171094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdCloseDevice002, TestSize.Level1) 172094332d3Sopenharmony_ci{ 173094332d3Sopenharmony_ci struct UsbDev dev = dev_; 174094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 175094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result=%{public}d", __LINE__, ret); 176094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 177094332d3Sopenharmony_ci dev.busNum = BUS_NUM_INVALID; 178094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 179094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d Close result=%{public}d", __LINE__, ret); 180094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 181094332d3Sopenharmony_ci dev = dev_; 182094332d3Sopenharmony_ci g_usbInterface->CloseDevice(dev); 183094332d3Sopenharmony_ci} 184094332d3Sopenharmony_ci 185094332d3Sopenharmony_ci/** 186094332d3Sopenharmony_ci * @tc.name: UsbdDevice013 187094332d3Sopenharmony_ci * @tc.desc: Test functions to CloseDevice 188094332d3Sopenharmony_ci * @tc.desc: int32_t CloseDevice(const UsbDev &dev); 189094332d3Sopenharmony_ci * @tc.desc: 190094332d3Sopenharmony_ci * @tc.type: FUNC 191094332d3Sopenharmony_ci */ 192094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdCloseDevice003, TestSize.Level1) 193094332d3Sopenharmony_ci{ 194094332d3Sopenharmony_ci struct UsbDev dev = dev_; 195094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 196094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result=%{public}d", __LINE__, ret); 197094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 198094332d3Sopenharmony_ci dev.devAddr = DEV_ADDR_INVALID; 199094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 200094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d Close result=%{public}d", __LINE__, ret); 201094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 202094332d3Sopenharmony_ci dev = dev_; 203094332d3Sopenharmony_ci g_usbInterface->CloseDevice(dev); 204094332d3Sopenharmony_ci} 205094332d3Sopenharmony_ci 206094332d3Sopenharmony_ci/** 207094332d3Sopenharmony_ci * @tc.name: UsbdDevice014 208094332d3Sopenharmony_ci * @tc.desc: Test functions to CloseDevice 209094332d3Sopenharmony_ci * @tc.desc: int32_t CloseDevice(const UsbDev &dev); 210094332d3Sopenharmony_ci * @tc.desc: 211094332d3Sopenharmony_ci * @tc.type: FUNC 212094332d3Sopenharmony_ci */ 213094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdCloseDevice004, TestSize.Level1) 214094332d3Sopenharmony_ci{ 215094332d3Sopenharmony_ci struct UsbDev dev = dev_; 216094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 217094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result=%{public}d", __LINE__, ret); 218094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 219094332d3Sopenharmony_ci dev.busNum = BUS_NUM_INVALID; 220094332d3Sopenharmony_ci dev.devAddr = DEV_ADDR_INVALID; 221094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 222094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d Close result=%{public}d", __LINE__, ret); 223094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 224094332d3Sopenharmony_ci dev = dev_; 225094332d3Sopenharmony_ci g_usbInterface->CloseDevice(dev); 226094332d3Sopenharmony_ci} 227094332d3Sopenharmony_ci 228094332d3Sopenharmony_ci/** 229094332d3Sopenharmony_ci * @tc.name: UsbdResetDevice001 230094332d3Sopenharmony_ci * @tc.desc: Test functions to ResetDevice 231094332d3Sopenharmony_ci * @tc.desc: int32_t ResetDevice(const UsbDev &dev); 232094332d3Sopenharmony_ci * @tc.desc: 正向测试:参数正确 233094332d3Sopenharmony_ci * @tc.type: FUNC 234094332d3Sopenharmony_ci */ 235094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdResetDevice001, TestSize.Level1) 236094332d3Sopenharmony_ci{ 237094332d3Sopenharmony_ci struct UsbDev dev = dev_; 238094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 239094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result=%{public}d", __LINE__, ret); 240094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 241094332d3Sopenharmony_ci ret = g_usbInterface->ResetDevice(dev); 242094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d ResetDevice result=%{public}d", __LINE__, ret); 243094332d3Sopenharmony_ci EXPECT_EQ(0, ret); 244094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 245094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d Close result=%{public}d", __LINE__, ret); 246094332d3Sopenharmony_ci EXPECT_EQ(0, ret); 247094332d3Sopenharmony_ci} 248094332d3Sopenharmony_ci 249094332d3Sopenharmony_ci/** 250094332d3Sopenharmony_ci * @tc.name: UsbdResetDevice002 251094332d3Sopenharmony_ci * @tc.desc: Test functions to ResetDevice 252094332d3Sopenharmony_ci * @tc.desc: int32_t ResetDevice(const UsbDev &dev); 253094332d3Sopenharmony_ci * @tc.desc: 254094332d3Sopenharmony_ci * @tc.type: FUNC 255094332d3Sopenharmony_ci */ 256094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdResetDevice002, TestSize.Level1) 257094332d3Sopenharmony_ci{ 258094332d3Sopenharmony_ci struct UsbDev dev = dev_; 259094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 260094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result=%{public}d", __LINE__, ret); 261094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 262094332d3Sopenharmony_ci dev.busNum = BUS_NUM_INVALID; 263094332d3Sopenharmony_ci ret = g_usbInterface->ResetDevice(dev); 264094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d ResetDevice result=%{public}d", __LINE__, ret); 265094332d3Sopenharmony_ci EXPECT_NE(0, ret); 266094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 267094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d Close result=%{public}d", __LINE__, ret); 268094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 269094332d3Sopenharmony_ci dev = dev_; 270094332d3Sopenharmony_ci g_usbInterface->CloseDevice(dev); 271094332d3Sopenharmony_ci} 272094332d3Sopenharmony_ci 273094332d3Sopenharmony_ci/** 274094332d3Sopenharmony_ci * @tc.name: UsbdResetDevice003 275094332d3Sopenharmony_ci * @tc.desc: Test functions to ResetDevice 276094332d3Sopenharmony_ci * @tc.desc: int32_t ResetDevice(const UsbDev &dev); 277094332d3Sopenharmony_ci * @tc.desc: 278094332d3Sopenharmony_ci * @tc.type: FUNC 279094332d3Sopenharmony_ci */ 280094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdResetDevice003, TestSize.Level1) 281094332d3Sopenharmony_ci{ 282094332d3Sopenharmony_ci struct UsbDev dev = dev_; 283094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 284094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result=%{public}d", __LINE__, ret); 285094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 286094332d3Sopenharmony_ci dev.devAddr = DEV_ADDR_INVALID; 287094332d3Sopenharmony_ci ret = g_usbInterface->ResetDevice(dev); 288094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d ResetDevice result=%{public}d", __LINE__, ret); 289094332d3Sopenharmony_ci EXPECT_NE(0, ret); 290094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 291094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d Close result=%{public}d", __LINE__, ret); 292094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 293094332d3Sopenharmony_ci dev = dev_; 294094332d3Sopenharmony_ci g_usbInterface->CloseDevice(dev); 295094332d3Sopenharmony_ci} 296094332d3Sopenharmony_ci 297094332d3Sopenharmony_ci/** 298094332d3Sopenharmony_ci * @tc.name: UsbdResetDevice004 299094332d3Sopenharmony_ci * @tc.desc: Test functions to ResetDevice 300094332d3Sopenharmony_ci * @tc.desc: int32_t ResetDevice(const UsbDev &dev); 301094332d3Sopenharmony_ci * @tc.desc: 302094332d3Sopenharmony_ci * @tc.type: FUNC 303094332d3Sopenharmony_ci */ 304094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, UsbdResetDevice004, TestSize.Level1) 305094332d3Sopenharmony_ci{ 306094332d3Sopenharmony_ci struct UsbDev dev = dev_; 307094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 308094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d OpenDevice result=%{public}d", __LINE__, ret); 309094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 310094332d3Sopenharmony_ci dev.busNum = BUS_NUM_INVALID; 311094332d3Sopenharmony_ci dev.devAddr = DEV_ADDR_INVALID; 312094332d3Sopenharmony_ci ret = g_usbInterface->ResetDevice(dev); 313094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d ResetDevice result=%{public}d", __LINE__, ret); 314094332d3Sopenharmony_ci EXPECT_NE(0, ret); 315094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 316094332d3Sopenharmony_ci HDF_LOGI("UsbdDeviceTest:: Line:%{public}d Close result=%{public}d", __LINE__, ret); 317094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 318094332d3Sopenharmony_ci dev = dev_; 319094332d3Sopenharmony_ci g_usbInterface->CloseDevice(dev); 320094332d3Sopenharmony_ci} 321094332d3Sopenharmony_ci 322094332d3Sopenharmony_ci/** 323094332d3Sopenharmony_ci * @tc.number: SUB_USB_DeviceManager_HDI_CompatDeviceTest_0100 324094332d3Sopenharmony_ci * @tc.name: testHdiUsbDeviceTestOpenDevice001 325094332d3Sopenharmony_ci * @tc.desc: Opens a USB device to set up a connection. dev ={1, 255}. 326094332d3Sopenharmony_ci */ 327094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, testHdiUsbDeviceTestOpenDevice001, Function | MediumTest | Level2) 328094332d3Sopenharmony_ci{ 329094332d3Sopenharmony_ci struct UsbDev dev = {1, 255}; 330094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 331094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 332094332d3Sopenharmony_ci} 333094332d3Sopenharmony_ci 334094332d3Sopenharmony_ci/** 335094332d3Sopenharmony_ci * @tc.number: SUB_USB_DeviceManager_HDI_CompatDeviceTest_0200 336094332d3Sopenharmony_ci * @tc.name: testHdiUsbDeviceTestOpenDevice002 337094332d3Sopenharmony_ci * @tc.desc: Opens a USB device to set up a connection. dev ={255, 1}. 338094332d3Sopenharmony_ci */ 339094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, testHdiUsbDeviceTestOpenDevice002, Function | MediumTest | Level2) 340094332d3Sopenharmony_ci{ 341094332d3Sopenharmony_ci struct UsbDev dev = {255, 1}; 342094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 343094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 344094332d3Sopenharmony_ci} 345094332d3Sopenharmony_ci 346094332d3Sopenharmony_ci/** 347094332d3Sopenharmony_ci * @tc.number: SUB_USB_DeviceManager_HDI_CompatDeviceTest_0300 348094332d3Sopenharmony_ci * @tc.name: testHdiUsbDeviceTestOpenDevice003 349094332d3Sopenharmony_ci * @tc.desc: Opens a USB device to set up a connection. dev ={255, 100}. 350094332d3Sopenharmony_ci */ 351094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, testHdiUsbDeviceTestOpenDevice003, Function | MediumTest | Level2) 352094332d3Sopenharmony_ci{ 353094332d3Sopenharmony_ci struct UsbDev dev = {255, 100}; 354094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 355094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 356094332d3Sopenharmony_ci} 357094332d3Sopenharmony_ci 358094332d3Sopenharmony_ci/** 359094332d3Sopenharmony_ci * @tc.number: SUB_USB_DeviceManager_HDI_CompatDeviceTest_0400 360094332d3Sopenharmony_ci * @tc.name: testHdiUsbDeviceTestOpenDevice004 361094332d3Sopenharmony_ci * @tc.desc: Opens a USB device to set up a connection. dev ={100, 255}. 362094332d3Sopenharmony_ci */ 363094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, testHdiUsbDeviceTestOpenDevice004, Function | MediumTest | Level2) 364094332d3Sopenharmony_ci{ 365094332d3Sopenharmony_ci struct UsbDev dev = {100, 255}; 366094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 367094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 368094332d3Sopenharmony_ci} 369094332d3Sopenharmony_ci 370094332d3Sopenharmony_ci/** 371094332d3Sopenharmony_ci * @tc.number: SUB_USB_DeviceManager_HDI_CompatDeviceTest_0500 372094332d3Sopenharmony_ci * @tc.name: testHdiUsbDeviceTestCloseDevice001 373094332d3Sopenharmony_ci * @tc.desc: Closes a USB device to release all system resources related to the device. dev ={1, 255}. 374094332d3Sopenharmony_ci */ 375094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, testHdiUsbDeviceTestCloseDevice001, Function | MediumTest | Level2) 376094332d3Sopenharmony_ci{ 377094332d3Sopenharmony_ci struct UsbDev dev = dev_; 378094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 379094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 380094332d3Sopenharmony_ci dev = {1, 255}; 381094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 382094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 383094332d3Sopenharmony_ci dev = dev_; 384094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 385094332d3Sopenharmony_ci EXPECT_EQ(ret, 0); 386094332d3Sopenharmony_ci} 387094332d3Sopenharmony_ci 388094332d3Sopenharmony_ci/** 389094332d3Sopenharmony_ci * @tc.number: SUB_USB_DeviceManager_HDI_CompatDeviceTest_0600 390094332d3Sopenharmony_ci * @tc.name: testHdiUsbDeviceTestCloseDevice002 391094332d3Sopenharmony_ci * @tc.desc: Closes a USB device to release all system resources related to the device. dev ={255, 1}. 392094332d3Sopenharmony_ci */ 393094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, testHdiUsbDeviceTestCloseDevice002, Function | MediumTest | Level2) 394094332d3Sopenharmony_ci{ 395094332d3Sopenharmony_ci struct UsbDev dev = dev_; 396094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 397094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 398094332d3Sopenharmony_ci dev = {255, 1}; 399094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 400094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 401094332d3Sopenharmony_ci dev = dev_; 402094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 403094332d3Sopenharmony_ci EXPECT_EQ(ret, 0); 404094332d3Sopenharmony_ci} 405094332d3Sopenharmony_ci 406094332d3Sopenharmony_ci/** 407094332d3Sopenharmony_ci * @tc.number: SUB_USB_DeviceManager_HDI_CompatDeviceTest_0700 408094332d3Sopenharmony_ci * @tc.name: testHdiUsbDeviceTestCloseDevice003 409094332d3Sopenharmony_ci * @tc.desc: Closes a USB device to release all system resources related to the device. dev ={255, 100}. 410094332d3Sopenharmony_ci */ 411094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, testHdiUsbDeviceTestCloseDevice003, Function | MediumTest | Level2) 412094332d3Sopenharmony_ci{ 413094332d3Sopenharmony_ci struct UsbDev dev = dev_; 414094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 415094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 416094332d3Sopenharmony_ci dev = {255, 100}; 417094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 418094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 419094332d3Sopenharmony_ci dev = dev_; 420094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 421094332d3Sopenharmony_ci EXPECT_EQ(ret, 0); 422094332d3Sopenharmony_ci} 423094332d3Sopenharmony_ci 424094332d3Sopenharmony_ci/** 425094332d3Sopenharmony_ci * @tc.number: SUB_USB_DeviceManager_HDI_CompatDeviceTest_0800 426094332d3Sopenharmony_ci * @tc.name: testHdiUsbDeviceTestCloseDevice004 427094332d3Sopenharmony_ci * @tc.desc: Closes a USB device to release all system resources related to the device. dev ={100, 255}. 428094332d3Sopenharmony_ci */ 429094332d3Sopenharmony_ciHWTEST_F(UsbdDeviceTest, testHdiUsbDeviceTestCloseDevice004, Function | MediumTest | Level2) 430094332d3Sopenharmony_ci{ 431094332d3Sopenharmony_ci struct UsbDev dev = dev_; 432094332d3Sopenharmony_ci auto ret = g_usbInterface->OpenDevice(dev); 433094332d3Sopenharmony_ci ASSERT_EQ(0, ret); 434094332d3Sopenharmony_ci dev = {100, 255}; 435094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 436094332d3Sopenharmony_ci EXPECT_NE(ret, 0); 437094332d3Sopenharmony_ci dev = dev_; 438094332d3Sopenharmony_ci ret = g_usbInterface->CloseDevice(dev); 439094332d3Sopenharmony_ci EXPECT_EQ(ret, 0); 440094332d3Sopenharmony_ci} 441094332d3Sopenharmony_ci} // namespace 442