From bf6a0b91bda89b2a9e64f0fff366ba81e9997b90 Mon Sep 17 00:00:00 2001 From: "xiaocong.ran" Date: Fri, 18 Feb 2022 10:10:57 +0800 Subject: [PATCH] offline Signed-off-by: xiaocong.ran Change-Id: I2e9e151d30626f0e81c2610042f1ce20f3a4e79c --- .../dependency/hichain/hichain_connector.h | 1 + .../include/dependency/timer/dm_timer.h | 38 ++++++- .../devicestate/dm_device_state_manager.h | 25 ++++- .../dependency/hichain/hichain_connector.cpp | 21 ++++ .../src/dependency/timer/dm_timer.cpp | 13 ++- .../src/device_manager_service.cpp | 2 +- .../devicestate/dm_device_state_manager.cpp | 64 +++++++++++- test/unittest/BUILD.gn | 99 ++++++++++--------- .../UTTest_dm_device_state_manager.cpp | 10 +- 9 files changed, 212 insertions(+), 61 deletions(-) diff --git a/services/devicemanagerservice/include/dependency/hichain/hichain_connector.h b/services/devicemanagerservice/include/dependency/hichain/hichain_connector.h index 99d534f6e..6c19fe3fd 100644 --- a/services/devicemanagerservice/include/dependency/hichain/hichain_connector.h +++ b/services/devicemanagerservice/include/dependency/hichain/hichain_connector.h @@ -64,6 +64,7 @@ public: int32_t GetRelatedGroups(std::string DeviceId, std::vector &groupList); int32_t GetGroupInfo(std::string queryParams, std::vector &groupList); int32_t GetGroupInfo(const int32_t userId, std::string queryParams, std::vector &groupList); + int32_t DeleteTimeOutGroup(const char* deviceId); private: int64_t GenRequestId(); int32_t SyncGroups(std::string deviceId, std::vector &remoteGroupIdList); diff --git a/services/devicemanagerservice/include/dependency/timer/dm_timer.h b/services/devicemanagerservice/include/dependency/timer/dm_timer.h index 4bf8896ed..db6ca52a9 100644 --- a/services/devicemanagerservice/include/dependency/timer/dm_timer.h +++ b/services/devicemanagerservice/include/dependency/timer/dm_timer.h @@ -29,9 +29,11 @@ namespace OHOS { namespace DistributedHardware { +class DmTimer; typedef void (*TimeoutHandle)(void *data); +typedef void (*TimerHandle)(const DmTimer &timer); -#define MAX_EVENTS 255 +#define MAXEVENTS 255 enum DmTimerStatus : int32_t { DM_STATUS_INIT = 0, @@ -46,9 +48,39 @@ public: DmTimer(const std::string &name); ~DmTimer(); DmTimerStatus Start(uint32_t timeOut, TimeoutHandle handle, void *data); + template + DmTimerStatus Start(uint32_t timeOut, TimerHandle handle, T *data) + { + if (mTimerName_.empty() || handle == nullptr || data == nullptr) { + LOGI("DmTimer is not init or param empty"); + return DmTimerStatus::DM_STATUS_FINISH; + } + LOGI("DmTimer %s start timeout(%d)", mTimerName_.c_str(), timeOut); + if (mStatus_ != DmTimerStatus::DM_STATUS_INIT) { + return DmTimerStatus::DM_STATUS_BUSY; + } + + mTimeOutSec_ = timeOut; + mTimerHandle_ = handle; + owner = data; + + if (CreateTimeFd()) { + return DmTimerStatus::DM_STATUS_CREATE_ERROR; + } + + mStatus_ = DmTimerStatus::DM_STATUS_RUNNING; + mThread_ = std::thread(&DmTimer::WaitForTimeout, this); + mThread_.detach(); + + return mStatus_; + }; + void Stop(int32_t code); void WaitForTimeout(); +public: + void *owner; + private: int32_t CreateTimeFd(); void Release(); @@ -57,10 +89,12 @@ private: DmTimerStatus mStatus_; uint32_t mTimeOutSec_; TimeoutHandle mHandle_; + TimerHandle mTimerHandle_; + void *mHandleOutData_; void *mHandleData_; int32_t mTimeFd_[2]; struct epoll_event mEv_; - struct epoll_event mEvents_[MAX_EVENTS]; + struct epoll_event mEvents_[MAXEVENTS]; int32_t mEpFd_; std::thread mThread_; std::string mTimerName_; diff --git a/services/devicemanagerservice/include/devicestate/dm_device_state_manager.h b/services/devicemanagerservice/include/devicestate/dm_device_state_manager.h index a54ef47ef..cdd78c915 100644 --- a/services/devicemanagerservice/include/devicestate/dm_device_state_manager.h +++ b/services/devicemanagerservice/include/devicestate/dm_device_state_manager.h @@ -19,14 +19,29 @@ #include "device_manager_service_listener.h" #include "dm_adapter_manager.h" #include "softbus_connector.h" - +#include "dm_timer.h" +#include "hichain_connector.h" namespace OHOS { namespace DistributedHardware { +class HmDevice { +public: + HmDevice(std::string deviceId, std::shared_ptr stateMgr); + ~HmDevice(); + +public: + std::string mDeviceId; + std::map mGroupMap; + std::shared_ptr mOfflineTimerPtr; + std::shared_ptr deviceStateMgr; +}; + +#define OFFLINE_TIMEOUT 300 class DmDeviceStateManager final : public ISoftbusStateCallback, public std::enable_shared_from_this { public: DmDeviceStateManager(std::shared_ptr softbusConnector, - std::shared_ptr listener); + std::shared_ptr listener, + std::shared_ptr hiChainConnector); ~DmDeviceStateManager(); void OnDeviceOnline(const std::string &pkgName, const DmDeviceInfo &info); void OnDeviceOffline(const std::string &pkgName, const DmDeviceInfo &info); @@ -34,6 +49,9 @@ public: void OnDeviceReady(const std::string &pkgName, const DmDeviceInfo &info); void OnProfileReady(const std::string &pkgName, const std::string deviceId); int32_t RegisterSoftbusStateCallback(); + void OnDeviceOnline(const DmDeviceInfo &deviceInfo); + void OnDeviceOffline(const DmDeviceInfo &deviceInfo); + void RmHichainGroup(HmDevice *hmDevice); private: std::shared_ptr softbusConnector_; @@ -41,7 +59,10 @@ private: std::shared_ptr listener_; std::map deviceStateMap_; std::map remoteDeviceInfos_; + std::map> timerMap_; + std::shared_ptr hiChainConnector_; std::string profileSoName_; + std::map mHmDeviceMap_ = {}; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/services/devicemanagerservice/src/dependency/hichain/hichain_connector.cpp b/services/devicemanagerservice/src/dependency/hichain/hichain_connector.cpp index 22a50c39d..dd4afeb86 100644 --- a/services/devicemanagerservice/src/dependency/hichain/hichain_connector.cpp +++ b/services/devicemanagerservice/src/dependency/hichain/hichain_connector.cpp @@ -490,5 +490,26 @@ int32_t HiChainConnector::DeleteGroup(const int32_t userId, std::string &groupId } return DM_OK; } + +int32_t HiChainConnector::DeleteTimeOutGroup(const char* deviceId) +{ + LOGE("HiChainConnector::DeleteTimeOutGroup start"); + int32_t userId = MultipleUserConnector::GetCurrentAccountUserID(); + if (userId < 0) { + LOGE("get current process account user id failed"); + return DM_FAILED; + } + std::vector peerGroupInfoList; + GetRelatedGroups(deviceId, peerGroupInfoList); + char localDeviceId[DEVICE_UUID_LENGTH] = {0}; + GetDevUdid(localDeviceId, DEVICE_UUID_LENGTH); + for (auto &group : peerGroupInfoList) { + if (deviceGroupManager_->isDeviceInGroup(userId, DM_PKG_NAME.c_str(), group.groupId.c_str(), localDeviceId)) { + DeleteGroup(group.groupId); + return DM_OK; + } + } + return DM_FAILED; +} } // namespace DistributedHardware } // namespace OHOS diff --git a/services/devicemanagerservice/src/dependency/timer/dm_timer.cpp b/services/devicemanagerservice/src/dependency/timer/dm_timer.cpp index a33034f48..0789050f2 100644 --- a/services/devicemanagerservice/src/dependency/timer/dm_timer.cpp +++ b/services/devicemanagerservice/src/dependency/timer/dm_timer.cpp @@ -33,6 +33,7 @@ DmTimer::DmTimer(const std::string &name) mStatus_ = DmTimerStatus::DM_STATUS_INIT; mTimeOutSec_ = 0; mHandle_ = nullptr; + mTimerHandle_ = nullptr; mHandleData_ = nullptr; (void)memset_s(mTimeFd_, sizeof(mTimeFd_), 0, sizeof(mTimeFd_)); (void)memset_s(&mEv_, sizeof(mEv_), 0, sizeof(mEv_)); @@ -64,7 +65,7 @@ DmTimerStatus DmTimer::Start(uint32_t timeOut, TimeoutHandle handle, void *data) mTimeOutSec_ = timeOut; mHandle_ = handle; - mHandleData_ = data; + mHandleOutData_ = data; if (CreateTimeFd()) { return DmTimerStatus::DM_STATUS_CREATE_ERROR; @@ -103,8 +104,7 @@ void DmTimer::WaitForTimeout() return; } LOGI("DmTimer %s start timer at (%d)s", mTimerName_.c_str(), mTimeOutSec_); - - int32_t nfds = epoll_wait(mEpFd_, mEvents_, MAX_EVENTS, mTimeOutSec_ * MILL_SECONDS_PER_SECOND); + int32_t nfds = epoll_wait(mEpFd_, mEvents_, MAXEVENTS, mTimeOutSec_ * MILL_SECONDS_PER_SECOND); if (nfds < 0) { LOGE("DmTimer %s epoll_wait returned n=%d, error: %d", mTimerName_.c_str(), nfds, errno); } @@ -123,7 +123,10 @@ void DmTimer::WaitForTimeout() return; } - mHandle_(mHandleData_); + if (mHandle_) + mHandle_(mHandleOutData_); + if (mTimerHandle_) + mTimerHandle_(*this); Release(); LOGE("DmTimer %s end timer at (%d)s", mTimerName_.c_str(), mTimeOutSec_); @@ -147,7 +150,7 @@ int32_t DmTimer::CreateTimeFd() mEv_.data.fd = mTimeFd_[0]; mEv_.events = EPOLLIN | EPOLLET; - mEpFd_ = epoll_create(MAX_EVENTS); + mEpFd_ = epoll_create(MAXEVENTS); ret = epoll_ctl(mEpFd_, EPOLL_CTL_ADD, mTimeFd_[0], &mEv_); if (ret != 0) { Release(); diff --git a/services/devicemanagerservice/src/device_manager_service.cpp b/services/devicemanagerservice/src/device_manager_service.cpp index 8a02d7265..88541338f 100644 --- a/services/devicemanagerservice/src/device_manager_service.cpp +++ b/services/devicemanagerservice/src/device_manager_service.cpp @@ -77,7 +77,7 @@ int32_t DeviceManagerService::Init() } } if (deviceStateMgr_ == nullptr) { - deviceStateMgr_ = std::make_shared(softbusConnector_, listener_); + deviceStateMgr_ = std::make_shared(softbusConnector_, listener_, hiChainConnector_); if (deviceStateMgr_ == nullptr) { LOGE("Init failed, deviceStateMgr_ apply for failure"); return DM_MAKE_SHARED_FAIL; diff --git a/services/devicemanagerservice/src/devicestate/dm_device_state_manager.cpp b/services/devicemanagerservice/src/devicestate/dm_device_state_manager.cpp index 8fc7214ac..1cf0753f7 100644 --- a/services/devicemanagerservice/src/devicestate/dm_device_state_manager.cpp +++ b/services/devicemanagerservice/src/devicestate/dm_device_state_manager.cpp @@ -20,9 +20,21 @@ #include "dm_log.h" namespace OHOS { namespace DistributedHardware { +static void TimeOut(const DmTimer &timer) +{ + LOGE("time out "); + if (timer.owner == nullptr) { + LOGE("OnDeviceOfflineTimeOut hmDevice owner = nullptr"); + return; + } + std::shared_ptr deviceStateMgr = ((HmDevice *)timer.owner)->deviceStateMgr; + deviceStateMgr->RmHichainGroup((HmDevice *)timer.owner); +} + DmDeviceStateManager::DmDeviceStateManager(std::shared_ptr softbusConnector, - std::shared_ptr listener) - : softbusConnector_(softbusConnector), listener_(listener) + std::shared_ptr listener, + std::shared_ptr hiChainConnector) + : softbusConnector_(softbusConnector), listener_(listener), hiChainConnector_(hiChainConnector) { LOGI("DmDeviceStateManager constructor"); profileSoName_ = "libdevicemanagerext_profile.z.so"; @@ -37,6 +49,7 @@ DmDeviceStateManager::~DmDeviceStateManager() void DmDeviceStateManager::OnDeviceOnline(const std::string &pkgName, const DmDeviceInfo &info) { LOGI("DmDeviceStateManager::OnDeviceOnline in"); + OnDeviceOnline(info); DmAdapterManager &adapterMgrPtr = DmAdapterManager::GetInstance(); std::shared_ptr profileAdapter = adapterMgrPtr.GetProfileAdapter(profileSoName_); if (profileAdapter == nullptr) { @@ -66,6 +79,7 @@ void DmDeviceStateManager::OnDeviceOnline(const std::string &pkgName, const DmDe void DmDeviceStateManager::OnDeviceOffline(const std::string &pkgName, const DmDeviceInfo &info) { + OnDeviceOffline(info); DmAdapterManager &adapterMgrPtr = DmAdapterManager::GetInstance(); std::shared_ptr profileAdapter = adapterMgrPtr.GetProfileAdapter(profileSoName_); if (profileAdapter == nullptr) { @@ -113,5 +127,51 @@ int32_t DmDeviceStateManager::RegisterSoftbusStateCallback() std::shared_ptr(shared_from_this())); return DM_OK; } + +void DmDeviceStateManager::OnDeviceOnline(const DmDeviceInfo &deviceInfo) +{ + std::string deviceId; + softbusConnector_->GetUdidByNetworkId(deviceInfo.deviceId, deviceId); + LOGI("Device<%s>Online", deviceId.c_str()); + auto iter = mHmDeviceMap_.find(deviceId); + if (iter != mHmDeviceMap_.end()) { + iter->second->mOfflineTimerPtr->Stop(0); + return; + } + + HmDevice *hmDevice = new HmDevice(deviceId, shared_from_this()); + mHmDeviceMap_[hmDevice->mDeviceId] = hmDevice; +} + +void DmDeviceStateManager::OnDeviceOffline(const DmDeviceInfo &deviceInfo) +{ + std::string deviceId; + softbusConnector_->GetUdidByNetworkId(deviceInfo.deviceId, deviceId); + LOGI("Device<%s>Offline", deviceId.c_str()); + for (auto &iter : mHmDeviceMap_) { + if (iter.second->mDeviceId.compare(deviceId) == 0) { + iter.second->mOfflineTimerPtr->Start(OFFLINE_TIMEOUT, TimeOut, iter.second); + } + } +} + +void DmDeviceStateManager::RmHichainGroup(HmDevice *hmDevice) +{ + LOGI("Remove DmDevice<%s> Hichain Group", hmDevice->mDeviceId.c_str()); + hiChainConnector_->DeleteTimeOutGroup(hmDevice->mDeviceId.c_str()); +} + +HmDevice::HmDevice(std::string deviceId, std::shared_ptr stateMgr) +{ + mDeviceId = deviceId; + std::string timerName = "HmDeviceTimer"; + mOfflineTimerPtr = std::make_shared(timerName); + deviceStateMgr = stateMgr; +} + +HmDevice::~HmDevice() +{ + mOfflineTimerPtr = nullptr; +} } // namespace DistributedHardware } // namespace OHOS diff --git a/test/unittest/BUILD.gn b/test/unittest/BUILD.gn index fd0d387c7..a625bbd7a 100644 --- a/test/unittest/BUILD.gn +++ b/test/unittest/BUILD.gn @@ -105,14 +105,16 @@ ohos_unittest("UTTest_dm_device_state_manager") { module_out_path = module_out_path sources = [ - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/adapter/standard/dm_adapter_manager.cpp", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/config/dm_config_manager.cpp", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/dependency/softbus/softbus_connector.cpp", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/dependency/softbus/softbus_session.cpp", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/dependency/timer/dm_timer.cpp", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/device_manager_service_listener.cpp", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/devicestate/dm_device_state_manager.cpp", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/discovery/dm_discovery_manager.cpp", + "${services_path}/src/dependency/hichain/hichain_connector.cpp", + "${services_path}/src/dependency/multipleuser/multiple_user_connector.cpp", + "${services_path}/src/adapter/standard/dm_adapter_manager.cpp", + "${services_path}/src/config/dm_config_manager.cpp", + "${services_path}/src/dependency/softbus/softbus_connector.cpp", + "${services_path}/src/dependency/softbus/softbus_session.cpp", + "${services_path}/src/dependency/timer/dm_timer.cpp", + "${services_path}/src/device_manager_service_listener.cpp", + "${services_path}/src/devicestate/dm_device_state_manager.cpp", + "${services_path}/src/discovery/dm_discovery_manager.cpp", "//foundation/distributedhardware/devicemanager/test/unittest/mock/ipc_server_listener.cpp", "//foundation/distributedhardware/devicemanager/test/unittest/mock/parameter.cpp", "UTTest_dm_device_state_manager.cpp", @@ -128,7 +130,7 @@ ohos_unittest("UTTest_device_manager_service_listener") { module_out_path = module_out_path sources = [ - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/device_manager_service_listener.cpp", + "${services_path}/src/device_manager_service_listener.cpp", "//foundation/distributedhardware/devicemanager/test/unittest/mock/ipc_server_listener.cpp", "UTTest_device_manager_service_listener.cpp", ] @@ -186,11 +188,11 @@ ohos_unittest("UTTest_dm_discovery_manager") { module_out_path = module_out_path sources = [ - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/dependency/softbus/softbus_connector.cpp", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/dependency/softbus/softbus_session.cpp", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/dependency/timer/dm_timer.cpp", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/device_manager_service_listener.cpp", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/src/discovery/dm_discovery_manager.cpp", + "${services_path}/src/dependency/softbus/softbus_connector.cpp", + "${services_path}/src/dependency/softbus/softbus_session.cpp", + "${services_path}/src/dependency/timer/dm_timer.cpp", + "${services_path}/src/device_manager_service_listener.cpp", + "${services_path}/src/discovery/dm_discovery_manager.cpp", "//foundation/distributedhardware/devicemanager/test/unittest/mock/ipc_server_listener.cpp", "//foundation/distributedhardware/devicemanager/test/unittest/mock/parameter.cpp", "UTTest_dm_discovery_manager.cpp", @@ -205,10 +207,10 @@ config("device_manager_test_common_public_config") { include_dirs = [ "//utils/native/base/include", "//utils/system/safwk/native/include", - "//foundation/distributedhardware/devicemanager/interfaces/inner_kits/native_cpp/include", - "//foundation/distributedhardware/devicemanager/interfaces/inner_kits/native_cpp/include/ipc/standard", - "//foundation/distributedhardware/devicemanager/interfaces/inner_kits/native_cpp/include/ipc", - "//foundation/distributedhardware/devicemanager/interfaces/inner_kits/native_cpp/include/notify", + "${innerkits_path}/native_cpp/include", + "${innerkits_path}/native_cpp/include/ipc/standard", + "${innerkits_path}/native_cpp/include/ipc", + "${innerkits_path}/native_cpp/include/notify", "//third_party/json/include", "${common_path}/include", "${common_path}/include/ipc", @@ -219,25 +221,25 @@ config("device_manager_test_common_public_config") { "${services_path}/include/dependency/timer", "${services_path}/include/discovery", "${services_path}/include/dependency/softbus", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/dependency/softbus", + "${services_path}/include/dependency/softbus", + "${services_path}/include/authentication", + "${services_path}/include/adapter", + "${services_path}/include", + "${services_path}/include/ipc/standard", + "${services_path}/include/discovery", + "${services_path}/include/dependency/hichain", + "${services_path}/include/deviceinfo/", + "${services_path}/include/devicestate", "//foundation/communication/dsoftbus/interfaces/kits/bus_center", "//foundation/communication/softbus_lite/interfaces/kits/transport", "//foundation/communication/ipc_lite/interfaces/kits", "//foundation/communication/dsoftbus/interfaces/kits/common", "//foundation/communication/dsoftbus/interfaces/kits/discovery", "//foundation/communication/dsoftbus/interfaces/inner_kits/transport", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/authentication", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/adapter", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/ipc/standard", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/discovery", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/dependency/hichain", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/deviceinfo/", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/devicestate", "//foundation/distributedhardware/devicemanager/test/unittest/mock", "//base/security/deviceauth/interfaces/innerkits", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/ability", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/config", + "${services_path}/include/ability", + "${services_path}/include/config", ] cflags = [ @@ -265,9 +267,9 @@ ohos_static_library("device_manager_test_common") { public_deps = [ "${utils_path}:devicemanagerutils", "//foundation/communication/ipc/interfaces/innerkits/ipc_core:ipc_core", - "//foundation/distributedhardware/devicemanager/interfaces/inner_kits/native_cpp:devicemanagersdk", + "${innerkits_path}/native_cpp:devicemanagersdk", "//foundation/distributedhardware/devicemanager/interfaces/kits/js:devicemanager", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice:devicemanagerservice", + "${services_path}:devicemanagerservice", "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy:samgr_proxy", "//third_party/googletest:gmock", "//third_party/googletest:gtest", @@ -283,9 +285,9 @@ config("device_manager_test_common_public") { include_dirs = [ "//utils/native/base/include", "//utils/system/safwk/native/include", - "//foundation/distributedhardware/devicemanager/interfaces/inner_kits/native_cpp/include", - "//foundation/distributedhardware/devicemanager/interfaces/inner_kits/native_cpp/include/ipc", - "//foundation/distributedhardware/devicemanager/interfaces/inner_kits/native_cpp/include/notify", + "${innerkits_path}/native_cpp/include", + "${innerkits_path}/native_cpp/include/ipc", + "${innerkits_path}/native_cpp/include/notify", "//third_party/json/include", "${common_path}/include", "${common_path}/include/ipc", @@ -296,23 +298,27 @@ config("device_manager_test_common_public") { "${services_path}/include/dependency/timer", "${services_path}/include/discovery", "${services_path}/include/dependency/softbus", + "${services_path}/include/dependency/hichain", + "${services_path}/include/dependency/multipleuser", + "${services_path}/include/dependency/softbus", + "${services_path}/include/authentication", + "${services_path}/include/adapter", + "${services_path}/include", + "${services_path}/include/discovery", + "${services_path}/include/deviceinfo/", + "${services_path}/include/devicestate", + "//foundation/distributedhardware/devicemanager/test/unittest/mock/", + "${services_path}/include/ability", + "${services_path}/include/config", "//foundation/communication/dsoftbus/interfaces/kits/bus_center", "//foundation/communication/ipc_lite/interfaces/kits", "//foundation/communication/dsoftbus/interfaces/kits/common", "//foundation/communication/dsoftbus/interfaces/kits/discovery", "//foundation/communication/dsoftbus/interfaces/inner_kits/transport", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/dependency/softbus", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/authentication", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/adapter", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/discovery", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/dependency/hichain", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/deviceinfo/", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/devicestate", - "//foundation/distributedhardware/devicemanager/test/unittest/mock/", "//base/security/deviceauth/interfaces/innerkits", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/ability", - "//foundation/distributedhardware/devicemanager/services/devicemanagerservice/include/config", + "//base/account/os_account/interfaces/innerkits/osaccount/native/include", + "//base/account/os_account/frameworks/common/database/include", + "//base/account/os_account/frameworks/common/account_error/include", ] cflags = [ @@ -340,7 +346,7 @@ ohos_static_library("device_manager_test") { public_deps = [ "${utils_path}:devicemanagerutils", "//foundation/communication/ipc/interfaces/innerkits/ipc_core:ipc_core", - "//foundation/distributedhardware/devicemanager/interfaces/inner_kits/native_cpp:devicemanagersdk", + "${innerkits_path}/native_cpp:devicemanagersdk", "//foundation/distributedhardware/devicemanager/interfaces/kits/js:devicemanager", "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy:samgr_proxy", "//third_party/googletest:gmock", @@ -355,6 +361,7 @@ ohos_static_library("device_manager_test") { "//foundation/aafwk/standard/interfaces/innerkits/ability_manager:ability_manager", "//foundation/aafwk/standard/interfaces/innerkits/want:want", "//foundation/aafwk/standard/services/abilitymgr:abilityms", + "//base/account/os_account/frameworks/osaccount/native:os_account_innerkits", ] external_deps = [ diff --git a/test/unittest/UTTest_dm_device_state_manager.cpp b/test/unittest/UTTest_dm_device_state_manager.cpp index 83b6eb9c0..507cdca5d 100644 --- a/test/unittest/UTTest_dm_device_state_manager.cpp +++ b/test/unittest/UTTest_dm_device_state_manager.cpp @@ -23,6 +23,7 @@ #include "dm_device_state_manager.h" #include "ipc_notify_device_found_req.h" #include "ipc_notify_discover_result_req.h" +#include "hichain_connector.h" #include "UTTest_dm_device_state_manager.h" namespace OHOS { @@ -43,10 +44,11 @@ void DmDeviceStateManagerTest::TearDownTestCase() { } namespace { + std::shared_ptr hiChainConnector_ = std::make_shared(); std::shared_ptr softbusConnector = std::make_shared(); std::shared_ptr listener_ = std::make_shared(); std::shared_ptr dmDeviceStateManager = - std::make_shared(softbusConnector, listener_); + std::make_shared(softbusConnector, listener_, hiChainConnector_); /** * @tc.name: DmDeviceStateManager_001 @@ -56,7 +58,8 @@ std::shared_ptr dmDeviceStateManager = */ HWTEST_F(DmDeviceStateManagerTest, DmDeviceStateManager_001, testing::ext::TestSize.Level0) { - std::shared_ptr p = std::make_shared(softbusConnector, listener_); + std::shared_ptr p = std::make_shared(softbusConnector, listener_, + hiChainConnector_); ASSERT_NE(p, nullptr); } @@ -68,7 +71,8 @@ HWTEST_F(DmDeviceStateManagerTest, DmDeviceStateManager_001, testing::ext::TestS */ HWTEST_F(DmDeviceStateManagerTest, DmDeviceStateManager_002, testing::ext::TestSize.Level0) { - std::shared_ptr p = std::make_shared(softbusConnector, listener_); + std::shared_ptr p = std::make_shared(softbusConnector, listener_, + hiChainConnector_); p.reset(); EXPECT_EQ(p, nullptr); } -- Gitee