diff --git a/services/BUILD.gn b/services/BUILD.gn index c1495f03bdc426aee8679f3a5327bc4840913886..6a6f3518cd14031153373178521b56cb0241eeaa 100644 --- a/services/BUILD.gn +++ b/services/BUILD.gn @@ -127,6 +127,7 @@ ohos_shared_library("powermgrservice") { "libxml2:libxml2", "safwk:system_ability_fwk", "samgr:samgr_proxy", + "window_manager:libwm_lite", ] if (power_manager_feature_tv_dreaming) { diff --git a/services/native/include/power_mgr_service.h b/services/native/include/power_mgr_service.h index 0741f57d33f22ef0d39160d81a186be76f7defde..6b5962a04220b152fb8f6218a6282d299a4c5397 100644 --- a/services/native/include/power_mgr_service.h +++ b/services/native/include/power_mgr_service.h @@ -166,6 +166,7 @@ public: #endif bool IsCollaborationState(); void QueryRunningLockListsInner(std::map& runningLockLists); + bool IsExistAudioStream(pid_t uid); #ifdef POWER_MANAGER_WAKEUP_ACTION void WakeupActionControllerInit(); #endif diff --git a/services/native/include/power_state_machine.h b/services/native/include/power_state_machine.h index 656781464f11ed797eafc78b1dc5285d8d6d0e1a..313471ceb923d3e494c47d101dc56fcc15ebc648 100644 --- a/services/native/include/power_state_machine.h +++ b/services/native/include/power_state_machine.h @@ -31,6 +31,7 @@ #include "running_lock_info.h" #include "power_mgr_notify.h" #include "proximity_controller_base.h" +#include "window_manager_lite.h" namespace OHOS { namespace PowerMgr { @@ -368,6 +369,8 @@ private: bool IsProximityClose(); #endif void StartSleepTimer(PowerState from); + void ReportScreenOffInvalidEvent(); + void ReportAbnormalScreenOffEvent(); const wptr pms_; std::shared_ptr ffrtTimer_ {nullptr}; diff --git a/services/native/src/power_mgr_service.cpp b/services/native/src/power_mgr_service.cpp index e10f232ac0a423292cff6934cacd5033aa8aeeca..d1a0cb8e784211cf5e34efa68a8592fb75bca63c 100644 --- a/services/native/src/power_mgr_service.cpp +++ b/services/native/src/power_mgr_service.cpp @@ -1476,6 +1476,11 @@ bool PowerMgrService::RegisterRunningLockCallback(const sptrIsExistAudioStream(uid); +} + bool PowerMgrService::UnRegisterRunningLockCallback(const sptr& callback) { std::lock_guard lock(lockMutex_); diff --git a/services/native/src/power_state_machine.cpp b/services/native/src/power_state_machine.cpp index 4cf06fb96d2931ae1cf57dc0113aa1449739cfe8..4bd12027f09041c22c6f375b35d968fec4e4efa5 100644 --- a/services/native/src/power_state_machine.cpp +++ b/services/native/src/power_state_machine.cpp @@ -70,6 +70,8 @@ std::atomic_bool g_prepareResult = true; pid_t g_callSetForceTimingOutPid = 0; pid_t g_callSetForceTimingOutUid = 0; const std::string LID_STATUS_SCENE_NAME = "lid_status"; +constexpr int32_t SCREEN_OFF_ABNORMAL = 0; +constexpr int32_t SCREEN_OFF_INVALID = 1; } PowerStateMachine::PowerStateMachine(const wptr& pms, const std::shared_ptr& ffrtTimer) : pms_(pms), ffrtTimer_(ffrtTimer), currentState_(PowerState::UNKNOWN) @@ -352,6 +354,9 @@ void PowerStateMachine::EmplaceInactive() && isDozeEnabled_.load(std::memory_order_relaxed)) { state = DisplayState::DISPLAY_DOZE; } + if (IsRunningLockEnabled(RunningLockType::RUNNINGLOCK_SCREEN)) { + ReportScreenOffInvalidEvent(); + } uint32_t ret = this->stateAction_->SetDisplayState(state, reason); if (ret != ActionResult::SUCCESS) { POWER_HILOGE(FEATURE_POWER_STATE, "Failed to go to INACTIVE, display error, ret: %{public}u", ret); @@ -432,6 +437,7 @@ void PowerStateMachine::EmplaceDim() // failed but not return, still need to set screen off POWER_HILOGE(FEATURE_POWER_STATE, "Failed to go to DIM, display error, ret: %{public}u", ret); } + ReportAbnormalScreenOffEvent(); CancelDelayTimer(PowerStateMachine::CHECK_USER_ACTIVITY_TIMEOUT_MSG); CancelDelayTimer(PowerStateMachine::CHECK_USER_ACTIVITY_OFF_TIMEOUT_MSG); // Set a timer without checking runninglock, but the actual timeout event can still be blocked. @@ -2493,5 +2499,53 @@ bool PowerStateMachine::IsSwitchOpenByPath() POWER_HILOGI(FEATURE_POWER_STATE, "IsSwitchOpenByPath status: %{public}d", status); return status; } + +void PowerStateMachine::ReportScreenOffInvalidEvent() +{ + // when screenlock and no audiostream + auto pms = pms_.promote(); + if (pms == nullptr) { + POWER_HILOGE(FEATURE_POWER_STATE, "Pms is nullptr"); + return; + } + std::map screenOnLockLists; + pms_->QueryRunningLockListsInner(screenOnLockLists); + for (auto it : screenOnLockLists) { + if (!IsRunningLockEnabled(RunningLockType::RUNNINGLOCK_BACKGROUND_AUDIO)) { +#ifdef HAS_HIVIEWDFX_HISYSEVENT_PART + HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::POWER, "SCREEN_OFF_EXCEPTION", + HiviewDFX::HiSysEvent::EventType::FAULT, "EXCEPTION_TYPE", SCREEN_OFF_INVALID, + "PID", it.second.pid, "UID", it.second.uid, "BUNDLE_NAME", it.second.bundleName.c_str(), + "ABILITY_NAME", "", "WINDOW_ID", 0, "APP_BEHAVIOR", ""); +#endif + } + } +} + +void PowerStateMachine::ReportAbnormalScreenOffEvent() +{ + // The current visible window is not desktop + std::vector> infos; + Rosen::WindowManagerLite::GetInstance().GetVisibilityWindowInfo(infos); + for (const auto &it: infos) { + if (it->visibilityState_ < Rosen::WindowVisibilityState::WINDOW_LAYER_STATE_MAX && + it->bundleName_.compare(it->abilityName_) != 0) { + auto pms = pms_.promote(); + if (pms == nullptr) { + POWER_HILOGE(FEATURE_POWER_STATE, "Pms is nullptr"); + return; + } + // Audio streams exist in tne window, but no projection + if (pms_->IsExistAudioStream(it->uid_) && !forceTimingOut_.load()) { +#ifdef HAS_HIVIEWDFX_HISYSEVENT_PART + HiSysEventWrite(HiviewDFX::HiSysEvent::Domain::POWER, "SCREEN_OFF_EXCEPTION", + HiviewDFX::HiSysEvent::EventType::FAULT, "EXCEPTION_TYPE", SCREEN_OFF_ABNORMAL, + "PID", it->pid_, "UID", it->uid_, "BUNDLE_NAME", it->bundleName_.c_str(), "ABILITY_NAME", + it->abilityName_.c_str(), "WINDOW_ID", it->windowId_, "APP_BEHAVIOR", ""); +#endif + } + } + } +} } // namespace PowerMgr } // namespace OHOS diff --git a/services/native/src/runninglock/running_lock_mgr.cpp b/services/native/src/runninglock/running_lock_mgr.cpp index 570e6192921d521f9c7931d32d3cc857921ab0d1..582af87192ed4728d4bae5c5a0f6ba8c98ef83a3 100644 --- a/services/native/src/runninglock/running_lock_mgr.cpp +++ b/services/native/src/runninglock/running_lock_mgr.cpp @@ -939,6 +939,10 @@ void RunningLockMgr::ProximityController::OnAway() } } +bool RunningLockMgr::IsExistAudioStream(pid_t uid) { + return runninglockProxy_->IsExistAudioStream(uid); +} + void RunningLockMgr::SetProximity(uint32_t status) { switch (status) { diff --git a/services/native/src/runninglock/running_lock_mgr.h b/services/native/src/runninglock/running_lock_mgr.h index 88f3cc28b727f3e1d568928108f747f2b9c6a732..6ca4ef2400baef2890b7d9417b96627d1f53862b 100644 --- a/services/native/src/runninglock/running_lock_mgr.h +++ b/services/native/src/runninglock/running_lock_mgr.h @@ -82,6 +82,7 @@ public: #endif void DumpInfo(std::string& result); void EnableMock(IRunningLockAction* mockAction); + bool IsExistAudioStream(pid_t uid); private: void AsyncWakeup(); diff --git a/services/native/src/runninglock/running_lock_proxy.cpp b/services/native/src/runninglock/running_lock_proxy.cpp index 3ee484e11dcba78528fff1d5381cbbb0c71e3554..43040a4f3574a2a2be3c4fecf4a2d2b515cd31d0 100644 --- a/services/native/src/runninglock/running_lock_proxy.cpp +++ b/services/native/src/runninglock/running_lock_proxy.cpp @@ -349,6 +349,46 @@ bool RunningLockProxy::UpdateProxyState(pid_t pid, pid_t uid, const sptr::GetInstance(); + if (pms == nullptr) { + POWER_HILOGW(FEATURE_RUNNING_LOCK, "Power service is nullptr"); + return false; + } + auto rlmgr = pms->GetRunningLockMgr(); + if (rlmgr == nullptr) { + POWER_HILOGW(FEATURE_RUNNING_LOCK, "RunninglockMgr is nullptr"); + return false; + } + for (auto &proxyItem : proxyMap_) { + auto& tokenWksMap = proxyItem.second; + for (const auto &tokenWksItem : tokenWksMap) { + auto lockInner = rlmgr->GetRunningLockInner(tokenWksItem.first); + if (lockInner == nullptr) { + POWER_HILOGW(FEATURE_RUNNING_LOCK, "RunninglockMgr is nullptr"); + continue; + } + if (lockInner->GetType() != RunningLockType::RUNNINGLOCK_BACKGROUND_AUDIO) { + continue; + } + auto& wksMap = tokenWksItem.second.first; + bool existAudioStream = false; + for (auto &wksMapItem : wksMap) { + // Audio stream exist in the uid window + if (wksMapItem.first == uid && !wksMapItem.second.second) { + existAudioStream = true; + break; + } + } + if (wksMap.find(uid) != wksMap.end() && existAudioStream) { + return true; + } + } + } + return false; +} + void RunningLockProxy::Clear() { proxyMap_.clear(); diff --git a/services/native/src/runninglock/running_lock_proxy.h b/services/native/src/runninglock/running_lock_proxy.h index 87062493035a089a2b99cfaac1a8f82f22640dbc..8bd72bd27ef3abb35de79327c6d02eb23deceb19 100644 --- a/services/native/src/runninglock/running_lock_proxy.h +++ b/services/native/src/runninglock/running_lock_proxy.h @@ -48,6 +48,7 @@ public: std::string DumpProxyInfo(); void ResetRunningLocks(); bool UpdateProxyState(pid_t pid, pid_t uid, const sptr& remoteObj, bool state); + bool IsExistAudioStream(pid_t uid); private: std::string AssembleProxyKey(pid_t pid, pid_t uid); void ProxyInner(const sptr& remoteObj, const std::string& bundleNames, RunningLockEvent event); diff --git a/test/apitest/inner_api/shutdown/BUILD.gn b/test/apitest/inner_api/shutdown/BUILD.gn index 874a6a6aa6d20d170f0feda13028780957258cbf..85672138d554cb621e1b72d5c1ef562848a73aff 100644 --- a/test/apitest/inner_api/shutdown/BUILD.gn +++ b/test/apitest/inner_api/shutdown/BUILD.gn @@ -54,6 +54,7 @@ deps_ex = [ "power_manager:power_ffrt", "safwk:system_ability_fwk", "samgr:samgr_proxy", + "window_manager:libwm_lite", ] if (has_sensors_sensor_part) { diff --git a/test/fuzztest/asyncshutdowncallback_fuzzer/BUILD.gn b/test/fuzztest/asyncshutdowncallback_fuzzer/BUILD.gn index 55902fc3b7018816377e64e4aa8a67658701098c..6339938a008761b7da457eb4062c5450a86dc943 100644 --- a/test/fuzztest/asyncshutdowncallback_fuzzer/BUILD.gn +++ b/test/fuzztest/asyncshutdowncallback_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("AsyncShutdownCallbackFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/createrunninglock_fuzzer/BUILD.gn b/test/fuzztest/createrunninglock_fuzzer/BUILD.gn index a2f43028eb2be534f3cca6a303940b04b3062844..9e154ee630b2a33237ba815256ce8f2c1de07475 100644 --- a/test/fuzztest/createrunninglock_fuzzer/BUILD.gn +++ b/test/fuzztest/createrunninglock_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("CreateRunningLockFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/forcesuspenddevice_fuzzer/BUILD.gn b/test/fuzztest/forcesuspenddevice_fuzzer/BUILD.gn index d2e9592668ce0d66711a3296fc8ddde089376049..4709ff9916deddf05dfc7a7949a7373ad26d0b16 100644 --- a/test/fuzztest/forcesuspenddevice_fuzzer/BUILD.gn +++ b/test/fuzztest/forcesuspenddevice_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("ForceSuspendDeviceFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/getsetdevicemode_fuzzer/BUILD.gn b/test/fuzztest/getsetdevicemode_fuzzer/BUILD.gn index 0930fbf77e87f7538155973924fc39fb173d8956..c0414f2ba8265ced3ee6602a2b653b6f239b0bc9 100644 --- a/test/fuzztest/getsetdevicemode_fuzzer/BUILD.gn +++ b/test/fuzztest/getsetdevicemode_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("GetSetDeviceModeFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/getstate_fuzzer/BUILD.gn b/test/fuzztest/getstate_fuzzer/BUILD.gn index 0a0aa4313553f22017f96ea9b06af12654afc96b..df56aa530a0b240c7e05282505bffe2d4e605ab1 100644 --- a/test/fuzztest/getstate_fuzzer/BUILD.gn +++ b/test/fuzztest/getstate_fuzzer/BUILD.gn @@ -67,6 +67,7 @@ ohos_fuzztest("GetStateFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/hibernate_fuzzer/BUILD.gn b/test/fuzztest/hibernate_fuzzer/BUILD.gn index bd603fef8b0f750c8b42cca4397cc07fc3cd5a8f..7d2db4cbfd2f15f7cf32f264ebcde18abc19c467 100644 --- a/test/fuzztest/hibernate_fuzzer/BUILD.gn +++ b/test/fuzztest/hibernate_fuzzer/BUILD.gn @@ -67,6 +67,7 @@ ohos_fuzztest("HibernateFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/iscollaborationscreenon_fuzzer/BUILD.gn b/test/fuzztest/iscollaborationscreenon_fuzzer/BUILD.gn index 1e9e285801145756bef480a6056cc0297d2edad6..2aa5b85726a00d0e0e90514748435e19fc9b973e 100644 --- a/test/fuzztest/iscollaborationscreenon_fuzzer/BUILD.gn +++ b/test/fuzztest/iscollaborationscreenon_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("IsCollaborationScreenOnFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/isfoldscreenon_fuzzer/BUILD.gn b/test/fuzztest/isfoldscreenon_fuzzer/BUILD.gn index 61057ee3f09292c60cef4a1b07f9664f1027d870..ed278848a0d0e6f26925ccd2abe01e1dcdfc4dc1 100644 --- a/test/fuzztest/isfoldscreenon_fuzzer/BUILD.gn +++ b/test/fuzztest/isfoldscreenon_fuzzer/BUILD.gn @@ -67,6 +67,7 @@ ohos_fuzztest("IsFoldScreenOnFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/isrunninglocktypesupported_fuzzer/BUILD.gn b/test/fuzztest/isrunninglocktypesupported_fuzzer/BUILD.gn index 89c4597495f685f705019e7785ef3830cd174518..b9451362c65e32cf9f7c2a04e1244021d53e8b02 100644 --- a/test/fuzztest/isrunninglocktypesupported_fuzzer/BUILD.gn +++ b/test/fuzztest/isrunninglocktypesupported_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("IsRunningLockTypeSupportedFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/isscreenon_fuzzer/BUILD.gn b/test/fuzztest/isscreenon_fuzzer/BUILD.gn index 6f36e4b742a7bc9409a2b1f6e9e961fb8ac36ea9..235958ed805c05a292d429ae2668308d2f34fdd2 100644 --- a/test/fuzztest/isscreenon_fuzzer/BUILD.gn +++ b/test/fuzztest/isscreenon_fuzzer/BUILD.gn @@ -67,6 +67,7 @@ ohos_fuzztest("IsScreenOnFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/isstandby_fuzzer/BUILD.gn b/test/fuzztest/isstandby_fuzzer/BUILD.gn index 0edfac90572e4c038470691e95bc90f9f14714c2..b4513cdc6445986c1eaf92dbdfec29c18b84e8ab 100644 --- a/test/fuzztest/isstandby_fuzzer/BUILD.gn +++ b/test/fuzztest/isstandby_fuzzer/BUILD.gn @@ -67,6 +67,7 @@ ohos_fuzztest("IsStandbyFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/lockscreenaftertimingout_fuzzer/BUILD.gn b/test/fuzztest/lockscreenaftertimingout_fuzzer/BUILD.gn index f1a7e2088cbd8be3df3a40ad1564f39234a096f1..49736afddb4dda9f2f0ebd8a664397c9febc81c2 100644 --- a/test/fuzztest/lockscreenaftertimingout_fuzzer/BUILD.gn +++ b/test/fuzztest/lockscreenaftertimingout_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("LockScreenAfterTimingOutFuzzTest") { "jsoncpp:jsoncpp", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/lockunlockisused_fuzzer/BUILD.gn b/test/fuzztest/lockunlockisused_fuzzer/BUILD.gn index 5c531e82f101dd512c45648b379b7c518833a053..f4e398cf8435f882efa75ff4acaecdcb083d6b2a 100644 --- a/test/fuzztest/lockunlockisused_fuzzer/BUILD.gn +++ b/test/fuzztest/lockunlockisused_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("LockUnLockIsUsedFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/overridescreenofftime_fuzzer/BUILD.gn b/test/fuzztest/overridescreenofftime_fuzzer/BUILD.gn index 9bb12af3f78ef5871dbf3e31ae4bc04a5190da92..56c479ad687e9cd51ebde11cad5c06bc16ec3645 100644 --- a/test/fuzztest/overridescreenofftime_fuzzer/BUILD.gn +++ b/test/fuzztest/overridescreenofftime_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("OverrideScreenOffTimeFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/powermodecallback_fuzzer/BUILD.gn b/test/fuzztest/powermodecallback_fuzzer/BUILD.gn index e0bc0aec4083ba6654a1ad0be5ed4d61e09fb877..59eba1fc870cb0b8561fd6c6e90110d2dc941346 100644 --- a/test/fuzztest/powermodecallback_fuzzer/BUILD.gn +++ b/test/fuzztest/powermodecallback_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("PowerModeCallbackFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/powerstatecallback_fuzzer/BUILD.gn b/test/fuzztest/powerstatecallback_fuzzer/BUILD.gn index 1b73f0b7b50ab738b7259a3619ab92d0efaf65be..dc6a5bfab58b712bd821e5a32b6ed9e9dea21ab4 100644 --- a/test/fuzztest/powerstatecallback_fuzzer/BUILD.gn +++ b/test/fuzztest/powerstatecallback_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("PowerStateCallbackFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/proxyrunninglock_fuzzer/BUILD.gn b/test/fuzztest/proxyrunninglock_fuzzer/BUILD.gn index 67f63a44e73eb2b481a972c7ccaa8a4e8969234c..24153f29446b5ac0e8644d2b400d386f020ff3e0 100644 --- a/test/fuzztest/proxyrunninglock_fuzzer/BUILD.gn +++ b/test/fuzztest/proxyrunninglock_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("ProxyRunningLockFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/proxyrunninglocks_fuzzer/BUILD.gn b/test/fuzztest/proxyrunninglocks_fuzzer/BUILD.gn index 4b8315cddcf4ecf600835442aa3cc94a93fd141c..07e595ce8c3eadc05c637ad225808b0c49a72dcd 100644 --- a/test/fuzztest/proxyrunninglocks_fuzzer/BUILD.gn +++ b/test/fuzztest/proxyrunninglocks_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("ProxyRunningLocksFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/queryrunninglocklists_fuzzer/BUILD.gn b/test/fuzztest/queryrunninglocklists_fuzzer/BUILD.gn index aa0854d8edbc11435604392ac1860f36b323857f..41ee512f38cfba6f950b706668a95d62a31c8c2a 100644 --- a/test/fuzztest/queryrunninglocklists_fuzzer/BUILD.gn +++ b/test/fuzztest/queryrunninglocklists_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("QueryRunningLockListsFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/rebootdevice_fuzzer/BUILD.gn b/test/fuzztest/rebootdevice_fuzzer/BUILD.gn index e90fb0b100159597d42b84d9f1ec28cd78bcd064..7de3efc42ee1882781924867f2f8b44681429f63 100644 --- a/test/fuzztest/rebootdevice_fuzzer/BUILD.gn +++ b/test/fuzztest/rebootdevice_fuzzer/BUILD.gn @@ -67,6 +67,7 @@ ohos_fuzztest("RebootDeviceFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/refreshactivity_fuzzer/BUILD.gn b/test/fuzztest/refreshactivity_fuzzer/BUILD.gn index d9b23f89a53d84aaa1b9e18ef7ba0962dce8a065..5df5de66a1ff49033d8f64c309ea14470ebc7d6c 100644 --- a/test/fuzztest/refreshactivity_fuzzer/BUILD.gn +++ b/test/fuzztest/refreshactivity_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("RefreshActivityFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/releaserunninglock_fuzzer/BUILD.gn b/test/fuzztest/releaserunninglock_fuzzer/BUILD.gn index 8fee4eaf7c6abb9864a5abca76c7150808ff4620..2116b675663c94a4126f71213513cf4195bd5887 100644 --- a/test/fuzztest/releaserunninglock_fuzzer/BUILD.gn +++ b/test/fuzztest/releaserunninglock_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("ReleaseRunningLockFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/resetrunninglocks_fuzzer/BUILD.gn b/test/fuzztest/resetrunninglocks_fuzzer/BUILD.gn index d329905d65967a5f0fe07a71ad8ce8383e45d4a1..6b49d7678dca5fbe0d8b25453e2641220c99a783 100644 --- a/test/fuzztest/resetrunninglocks_fuzzer/BUILD.gn +++ b/test/fuzztest/resetrunninglocks_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("ResetRunningLocksFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/runninglockcallback_fuzzer/BUILD.gn b/test/fuzztest/runninglockcallback_fuzzer/BUILD.gn index c88e240671d8a1574fab439d2041b25afa5ccc34..54a4ddbd9bc0df290dc1c1cdcded497b3ad587bb 100644 --- a/test/fuzztest/runninglockcallback_fuzzer/BUILD.gn +++ b/test/fuzztest/runninglockcallback_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("RunningLockCallbackFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/screenstatecallback_fuzzer/BUILD.gn b/test/fuzztest/screenstatecallback_fuzzer/BUILD.gn index 2be27e9a242a2c6b0a61831ab70b47ca6e2dbcbd..7de96439a8e8376daccc7dd485b96ea208ac7587 100644 --- a/test/fuzztest/screenstatecallback_fuzzer/BUILD.gn +++ b/test/fuzztest/screenstatecallback_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("ScreenStateCallbackFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/setdisplaysuspend_fuzzer/BUILD.gn b/test/fuzztest/setdisplaysuspend_fuzzer/BUILD.gn index 70ccb8eb393d96f68d6ebd8173036de95fb90f19..3a734be572122c524d0e987be3b84d19970e6db6 100644 --- a/test/fuzztest/setdisplaysuspend_fuzzer/BUILD.gn +++ b/test/fuzztest/setdisplaysuspend_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("SetDisplaySuspendFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/setforcetimingout_fuzzer/BUILD.gn b/test/fuzztest/setforcetimingout_fuzzer/BUILD.gn index 32d741ae971bab0f7c473b0b2dcf93a691dc43bf..653bea5833d96f88fbffff83af1276a116c83dde 100644 --- a/test/fuzztest/setforcetimingout_fuzzer/BUILD.gn +++ b/test/fuzztest/setforcetimingout_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("SetForceTimingOutFuzzTest") { "jsoncpp:jsoncpp", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/setsuspendtag_fuzzer/BUILD.gn b/test/fuzztest/setsuspendtag_fuzzer/BUILD.gn index 8d49e9248cbf94d2408d8d39bb4b588eb94e370c..c3ddc0ec874e3f643df350e850794d4026a1992e 100644 --- a/test/fuzztest/setsuspendtag_fuzzer/BUILD.gn +++ b/test/fuzztest/setsuspendtag_fuzzer/BUILD.gn @@ -67,6 +67,7 @@ ohos_fuzztest("SetSuspendTagFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/shelldump_fuzzer/BUILD.gn b/test/fuzztest/shelldump_fuzzer/BUILD.gn index 8993e97619a2b823f81922879663041eac8d74b6..5384ebf4633bef502a2be819a3ed2648e58bffe7 100644 --- a/test/fuzztest/shelldump_fuzzer/BUILD.gn +++ b/test/fuzztest/shelldump_fuzzer/BUILD.gn @@ -67,6 +67,7 @@ ohos_fuzztest("ShellDumpFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/shutdowndevice_fuzzer/BUILD.gn b/test/fuzztest/shutdowndevice_fuzzer/BUILD.gn index 564985c3474efcd123378335850da76924ee8020..85c6b3267a139af9d4fe3c7328d3a4527bcbab0f 100644 --- a/test/fuzztest/shutdowndevice_fuzzer/BUILD.gn +++ b/test/fuzztest/shutdowndevice_fuzzer/BUILD.gn @@ -67,6 +67,7 @@ ohos_fuzztest("ShutDownDeviceFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/suspenddevice_fuzzer/BUILD.gn b/test/fuzztest/suspenddevice_fuzzer/BUILD.gn index cc5b61b6eba2f3c6a8a92ab79204a78291108537..9a0ae4204b228385f7fb58441dca0b02e66ed1b8 100644 --- a/test/fuzztest/suspenddevice_fuzzer/BUILD.gn +++ b/test/fuzztest/suspenddevice_fuzzer/BUILD.gn @@ -67,6 +67,7 @@ ohos_fuzztest("SuspendDeviceFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/synchibernatecallback_fuzzer/BUILD.gn b/test/fuzztest/synchibernatecallback_fuzzer/BUILD.gn index e7f52f972fa46a1ef3ec602a6e727cf311c5c072..0b64e88a1e8141d972f3ec3ef5b8799eb48f69ed 100644 --- a/test/fuzztest/synchibernatecallback_fuzzer/BUILD.gn +++ b/test/fuzztest/synchibernatecallback_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("SyncHibernateCallbackFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/syncshutdowncallback_fuzzer/BUILD.gn b/test/fuzztest/syncshutdowncallback_fuzzer/BUILD.gn index a7ff865e14a5a96c1b47003f345a89aa38a2554b..74c33bb63902dcf50d493a1a12268287c101cb72 100644 --- a/test/fuzztest/syncshutdowncallback_fuzzer/BUILD.gn +++ b/test/fuzztest/syncshutdowncallback_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("SyncShutdownCallbackFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/syncsleepcallback_fuzzer/BUILD.gn b/test/fuzztest/syncsleepcallback_fuzzer/BUILD.gn index 6ba9e783cc958e6f4e92005cffb26dafe4783c90..1b7b8871040e3250700acb452817d41aa75a767a 100644 --- a/test/fuzztest/syncsleepcallback_fuzzer/BUILD.gn +++ b/test/fuzztest/syncsleepcallback_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("SyncSleepCallbackFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/takeovershutdowncallback_fuzzer/BUILD.gn b/test/fuzztest/takeovershutdowncallback_fuzzer/BUILD.gn index 6f186decf92fc41553a262cb5746968ca652efcd..e71db36cfdd56ef5b4f03dcfdbfd5075930dc10a 100644 --- a/test/fuzztest/takeovershutdowncallback_fuzzer/BUILD.gn +++ b/test/fuzztest/takeovershutdowncallback_fuzzer/BUILD.gn @@ -68,6 +68,7 @@ ohos_fuzztest("TakeOverShutdownCallbackFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/fuzztest/wakeupdevice_fuzzer/BUILD.gn b/test/fuzztest/wakeupdevice_fuzzer/BUILD.gn index 644a650f7acfd1717699b39a3bfeb9522ce35cfe..62f84676b088a6fb385f0af63d9735bf20c221a6 100644 --- a/test/fuzztest/wakeupdevice_fuzzer/BUILD.gn +++ b/test/fuzztest/wakeupdevice_fuzzer/BUILD.gn @@ -67,6 +67,7 @@ ohos_fuzztest("WakeupDeviceFuzzTest") { "ipc:ipc_core", "power_manager:power_ffrt", "safwk:system_ability_fwk", + "window_manager:libwm_lite", ] defines = [] diff --git a/test/systemtest/BUILD.gn b/test/systemtest/BUILD.gn index 963d52bbd4d068c3feddc64ac694d1869a4ffc6f..d7fb756174b00fc1b971b78cca4f664026d8da92 100644 --- a/test/systemtest/BUILD.gn +++ b/test/systemtest/BUILD.gn @@ -54,6 +54,7 @@ deps_ex = [ "power_manager:power_ffrt", "safwk:system_ability_fwk", "samgr:samgr_proxy", + "window_manager:libwm_lite", ] if (has_sensors_sensor_part) { diff --git a/test/unittest/BUILD.gn b/test/unittest/BUILD.gn index 15b113f4f6824972e1fec2124bb3e6f0a34f5515..cd68f884d0067e3db2498b84eaf2acc915ac6976 100644 --- a/test/unittest/BUILD.gn +++ b/test/unittest/BUILD.gn @@ -75,6 +75,7 @@ deps_ex = [ "safwk:system_ability_fwk", "samgr:samgr_proxy", "window_manager:libdm_lite", + "window_manager:libwm_lite", ] if (has_sensors_sensor_part) { diff --git a/test/unittest/src/interface_test/running_lock_test.cpp b/test/unittest/src/interface_test/running_lock_test.cpp index 3e0d0eddeebb4b36c709ff7aa63c4384bfc2d3ed..4206c1eacd8f9144cf8f2b27da3f416f5fb9b6f2 100644 --- a/test/unittest/src/interface_test/running_lock_test.cpp +++ b/test/unittest/src/interface_test/running_lock_test.cpp @@ -538,4 +538,28 @@ HWTEST_F (RunningLockTest, RunningLockTest019, TestSize.Level1) EXPECT_TRUE(runninglockProxy->DecreaseProxyCnt(pid, uid)); POWER_HILOGI(LABEL_TEST, "RunningLockTest019 function end!"); } + +/** + * @tc.name: RunningLockTest020 + * @tc.desc: Test UpdateWorkSource function + * @tc.type: FUNC + * @tc.require + */ +HWTEST_F (RunningLockTest, RunningLockTest020, TestSize.Level1) +{ + POWER_HILOGI(LABEL_TEST, "RunningLockTest020 function start!"); + auto runninglockProxy = std::make_shared(); + auto& powerMgrClient = PowerMgrClient::GetInstance(); + std::shared_ptr runningLock = powerMgrClient.CreateRunningLock("backgroudAudio.test020", + RunningLockType::RUNNINGLOCK_BACKGROUND_AUDIO); + ASSERT_NE(runningLock, nullptr); + + pid_t curUid = 1; + runningLock->Lock(); + EXPECT_TRUE(runningLock->IsUsed()); + EXPECT_FALSE(runninglockProxy->IsExistAudioStream(curUid)); + runningLock->UnLock(); + EXPECT_FALSE(runningLock->IsUsed()); + POWER_HILOGI(LABEL_TEST, "RunningLockTest020 function end!"); +} } // namespace \ No newline at end of file diff --git a/test/unittest/src/servicetest/BUILD.gn b/test/unittest/src/servicetest/BUILD.gn index 40c80aa6ea8087df9d987d00fad24b20f984f422..a2b8cd871c57c22364f0b0bc83e3f8590a4fd564 100644 --- a/test/unittest/src/servicetest/BUILD.gn +++ b/test/unittest/src/servicetest/BUILD.gn @@ -63,6 +63,7 @@ deps_ex = [ "power_manager:power_ffrt", "safwk:system_ability_fwk", "samgr:samgr_proxy", + "window_manager:libwm_lite", ] if (has_sensors_sensor_part) {