From 05b27a0b8b7762175bfd63bc3483b33f90a54148 Mon Sep 17 00:00:00 2001 From: chaos Date: Sun, 15 Jun 2025 16:35:00 +0800 Subject: [PATCH 1/5] bug Signed-off-by: chaos --- .../include/display_manager_adapter_lite.h | 1 + dm_lite/include/display_manager_lite_proxy.h | 1 + dm_lite/src/display_manager_adapter_lite.cpp | 7 +++ dm_lite/src/display_manager_lite_proxy.cpp | 40 ++++++++++++++++ dm_lite/src/screen_manager_lite.cpp | 14 ++---- .../display_manager_adapter_lite_test.cpp | 12 +++++ .../unittest/screen_manager_lite_test.cpp | 12 +++++ .../include/display_manager_interface_code.h | 1 + .../include/screen_session_manager.h | 1 + .../zidl/screen_session_manager_interface.h | 1 + .../zidl/screen_session_manager_proxy.h | 1 + .../src/screen_session_manager.cpp | 25 ++++++++++ .../src/zidl/screen_session_manager_proxy.cpp | 39 +++++++++++++++ .../src/zidl/screen_session_manager_stub.cpp | 15 ++++++ .../screen_session_manager_proxy_test.cpp | 48 +++++++++++++++++++ .../screen_session_manager_stub_test.cpp | 19 ++++++++ .../screen_session_manager_test2.cpp | 19 ++++++++ 17 files changed, 246 insertions(+), 10 deletions(-) diff --git a/dm_lite/include/display_manager_adapter_lite.h b/dm_lite/include/display_manager_adapter_lite.h index 1c89fc9816..8536481355 100644 --- a/dm_lite/include/display_manager_adapter_lite.h +++ b/dm_lite/include/display_manager_adapter_lite.h @@ -88,6 +88,7 @@ public: /* * used by powermgr */ + virtual DMError GetPhysicalScreenIds(std::vector& screenIds); virtual bool SetSpecifiedScreenPower(ScreenId screenId, ScreenPowerState state, PowerStateChangeReason reason); virtual bool SetScreenPowerForAll(ScreenPowerState state, PowerStateChangeReason reason); virtual ScreenPowerState GetScreenPower(ScreenId dmsScreenId); diff --git a/dm_lite/include/display_manager_lite_proxy.h b/dm_lite/include/display_manager_lite_proxy.h index 170267951b..2437bd05fe 100644 --- a/dm_lite/include/display_manager_lite_proxy.h +++ b/dm_lite/include/display_manager_lite_proxy.h @@ -72,6 +72,7 @@ public: bool SetScreenBrightness(uint64_t screenId, uint32_t level); uint32_t GetScreenBrightness(uint64_t screenId); std::vector GetAllDisplayIds(); + DMError GetPhysicalScreenIds(std::vector& screenIds); DMError GetAllScreenInfos(std::vector>& screenInfos); DMError SetSystemKeyboardStatus(bool isTpKeyboardOn = false); sptr GetScreenInfoById(ScreenId screenId); diff --git a/dm_lite/src/display_manager_adapter_lite.cpp b/dm_lite/src/display_manager_adapter_lite.cpp index 6c22446589..d22f748275 100644 --- a/dm_lite/src/display_manager_adapter_lite.cpp +++ b/dm_lite/src/display_manager_adapter_lite.cpp @@ -299,6 +299,13 @@ DMError ScreenManagerAdapterLite::GetAllScreenInfos(std::vector return displayManagerServiceProxy_->GetAllScreenInfos(screenInfos); } +DMError ScreenManagerAdapterLite::GetPhysicalScreenIds(std::vector& screenIds) +{ + INIT_PROXY_CHECK_RETURN(DMError::DM_ERROR_INIT_DMS_PROXY_LOCKED); + + return displayManagerServiceProxy_->GetPhysicalScreenIds(screenIds); +} + DMSDeathRecipientLite::DMSDeathRecipientLite(BaseAdapterLite& adapter) : adapter_(adapter) { } diff --git a/dm_lite/src/display_manager_lite_proxy.cpp b/dm_lite/src/display_manager_lite_proxy.cpp index 1b64582103..1810d8b547 100644 --- a/dm_lite/src/display_manager_lite_proxy.cpp +++ b/dm_lite/src/display_manager_lite_proxy.cpp @@ -933,6 +933,46 @@ DMError DisplayManagerLiteProxy::GetAllScreenInfos(std::vector> #endif } +DMError DisplayManagerLiteProxy::GetPhysicalScreenIds(std::vector& screenIds) +{ + sptr remote = Remote(); + if (remote == nullptr) { + TLOGW(WmsLogTag::DMS, "remote is nullptr"); + return DMError::DM_ERROR_NULLPTR; + } + MessageParcel data; + MessageParcel reply; + MessageOption option; + if (!data.WriteInterfaceToken(GetDescriptor())) { + TLOGE(WmsLogTag::DMS, "WriteInterfaceToken failed"); + return DMError::DM_ERROR_WRITE_INTERFACE_TOKEN_FAILED; + } + if (remote->SendRequest(static_cast(DisplayManagerMessage::TRANS_ID_GET_PHYSICAL_SCREEN_IDS), + data, reply, option) != ERR_NONE) { + TLOGW(WmsLogTag::DMS, "SendRequest failed"); + return DMError::DM_ERROR_IPC_FAILED; + } + + DMError ret = static_cast(reply.ReadInt32()); + if (ret != DMError::DM_OK) { + return ret; + } + + bool res = MarshallingHelper::UnmarshallingVectorObj(reply, screenIds, + [](Parcel& parcel, ScreenId& screenId) { + uint64_t value; + bool res = parcel.ReadUint64(value); + screenId = static_cast(value); + return res; + } + ); + if (!res) { + TLOGW(WmsLogTag::DMS, "fail to read SystemBarRegionTints"); + return DMError::DM_ERROR_IPC_FAILED; + } + return ret; +} + DMError DisplayManagerLiteProxy::SetSystemKeyboardStatus(bool isTpKeyboardOn) { #ifdef SCENE_BOARD_ENABLED diff --git a/dm_lite/src/screen_manager_lite.cpp b/dm_lite/src/screen_manager_lite.cpp index 624746b008..0d74dab262 100644 --- a/dm_lite/src/screen_manager_lite.cpp +++ b/dm_lite/src/screen_manager_lite.cpp @@ -409,20 +409,14 @@ ScreenPowerState ScreenManagerLite::GetScreenPower() return SingletonContainer::Get().GetScreenPower(); } -DMError ScreenManagerLite::GetPhysicalScreenIds(std::vector& screenIds) +DMError ScreenManagerLite::GetPhysicalScreenIds(std::vector& screenIds) { - std::vector> screenInfos; - DMError ret = SingletonContainer::Get().GetAllScreenInfos(screenInfos); + TLOGI(WmsLogTag::DMS, "enter"); + DMError ret = SingletonContainer::Get().GetPhysicalScreenIds(screenIds); if (ret != DMError::DM_OK) { + TLOGE(WmsLogTag::DMS, "failed"); return ret; } - - for (const auto& screenInfo : screenInfos) { - auto id = screenInfo->GetScreenId(); - if (screenInfo->GetType() == ScreenType::REAL && id != SCREEN_ID_INVALID) { - screenIds.push_back(id); - } - } return DMError::DM_OK; } diff --git a/dm_lite/test/unittest/display_manager_adapter_lite_test.cpp b/dm_lite/test/unittest/display_manager_adapter_lite_test.cpp index 960d5d0e37..67eb59eed4 100644 --- a/dm_lite/test/unittest/display_manager_adapter_lite_test.cpp +++ b/dm_lite/test/unittest/display_manager_adapter_lite_test.cpp @@ -194,6 +194,18 @@ HWTEST_F(DisplayManagerAdapterLiteTest, SetSystemKeyboardStatus02, TestSize.Leve auto ret = SingletonContainer::Get().SetSystemKeyboardStatus(false); ASSERT_NE(ret, DMError::DM_OK); } + +/** + * @tc.name: GetPhysicalScreenIds + * @tc.desc: GetPhysicalScreenIds + * @tc.type: FUNC + */ +HWTEST_F(DisplayManagerAdapterLiteTest, GetPhysicalScreenIds, TestSize.Level1) +{ + std::vector screenIds; + auto ret = SingletonContainer::Get().GetPhysicalScreenIds(screenIds); + ASSERT_NE(ret, DMError::DM_OK); +} } } } diff --git a/dm_lite/test/unittest/screen_manager_lite_test.cpp b/dm_lite/test/unittest/screen_manager_lite_test.cpp index 35e5e45922..cb50fc7d5a 100644 --- a/dm_lite/test/unittest/screen_manager_lite_test.cpp +++ b/dm_lite/test/unittest/screen_manager_lite_test.cpp @@ -60,6 +60,18 @@ HWTEST_F(ScreenManagerLiteTest, GetScreenInfoById, TestSize.Level1) ret = sml_.GetScreenInfoById(0); ASSERT_NE(ret, nullptr); } + +/** + * @tc.name: GetPhysicalScreenIds + * @tc.desc: GetPhysicalScreenIds + * @tc.type: FUNC + */ +HWTEST_F(ScreenManagerLiteTest, GetPhysicalScreenIds, TestSize.Level1) +{ + std::vector screenIds; + auto ret = sml_.GetPhysicalScreenIds(screenIds); + ASSERT_EQ(ret, DMError::DM_OK); +} } } // namespace Rosen } // namespace OHOS \ No newline at end of file diff --git a/dmserver/include/display_manager_interface_code.h b/dmserver/include/display_manager_interface_code.h index 5fed47ac68..27c54744cc 100644 --- a/dmserver/include/display_manager_interface_code.h +++ b/dmserver/include/display_manager_interface_code.h @@ -53,6 +53,7 @@ enum class DisplayManagerMessage : unsigned int { TRANS_ID_GET_SCREEN_GROUP_INFO_BY_ID, TRANS_ID_SET_SCREEN_ACTIVE_MODE, TRANS_ID_GET_ALL_SCREEN_INFOS, + TRANS_ID_GET_PHYSICAL_SCREEN_IDS, TRANS_ID_SET_ORIENTATION, TRANS_ID_SET_VIRTUAL_PIXEL_RATIO, TRANS_ID_SET_VIRTUAL_PIXEL_RATIO_SYSTEM, diff --git a/window_scene/screen_session_manager/include/screen_session_manager.h b/window_scene/screen_session_manager/include/screen_session_manager.h index f9c75a5050..e431e56026 100644 --- a/window_scene/screen_session_manager/include/screen_session_manager.h +++ b/window_scene/screen_session_manager/include/screen_session_manager.h @@ -157,6 +157,7 @@ public: virtual DMError GetAllScreenInfos(std::vector>& screenInfos) override; virtual DMError GetScreenSupportedColorGamuts(ScreenId screenId, std::vector& colorGamuts) override; + DMError GetPhysicalScreenIds(std::vector& screenIds) override; DMError IsScreenRotationLocked(bool& isLocked) override; DMError SetScreenRotationLocked(bool isLocked) override; DMError SetScreenRotationLockedFromJs(bool isLocked) override; diff --git a/window_scene/screen_session_manager/include/zidl/screen_session_manager_interface.h b/window_scene/screen_session_manager/include/zidl/screen_session_manager_interface.h index 112c9b1307..52a229c0df 100644 --- a/window_scene/screen_session_manager/include/zidl/screen_session_manager_interface.h +++ b/window_scene/screen_session_manager/include/zidl/screen_session_manager_interface.h @@ -240,6 +240,7 @@ public: virtual void SetFoldStatusExpandAndLocked(bool locked) {} virtual FoldDisplayMode GetFoldDisplayMode() { return FoldDisplayMode::UNKNOWN; } + virtual DMError GetPhysicalScreenIds(std::vector& screenIds) { return DMError::DM_OK; } virtual bool IsFoldable() { return false; } virtual bool IsCaptured() { return false; } diff --git a/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h b/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h index 9c17c00a63..6abb0ab038 100644 --- a/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h +++ b/window_scene/screen_session_manager/include/zidl/screen_session_manager_proxy.h @@ -156,6 +156,7 @@ public: void SetFoldStatusExpandAndLocked(bool locked) override; FoldDisplayMode GetFoldDisplayMode() override; + DMError GetPhysicalScreenIds(std::vector& screenIds) override; bool IsFoldable() override; bool IsCaptured() override; diff --git a/window_scene/screen_session_manager/src/screen_session_manager.cpp b/window_scene/screen_session_manager/src/screen_session_manager.cpp index 505684ee23..26cb3f8232 100644 --- a/window_scene/screen_session_manager/src/screen_session_manager.cpp +++ b/window_scene/screen_session_manager/src/screen_session_manager.cpp @@ -3834,6 +3834,31 @@ std::vector ScreenSessionManager::GetAllScreenIds() return res; } +DMError ScreenSessionManager::GetPhysicalScreenIds(std::vector& screenIds) +{ + TLOGI(WmsLogTag::DMS, "enter"); + if (!SessionPermission::IsSystemCalling() && !SessionPermission::IsStartByHdcd()) { + TLOGE(WmsLogTag::DMS, "permission denied! calling: %{public}s, pid: %{public}d", + SysCapUtil::GetClientName().c_str(), IPCSkeleton::GetCallingPid()); + return DMError::DM_ERROR_NOT_SYSTEM_APP; + } + + std::lock_guard lock(screenSessionMapMutex_); + for (const auto& iter : screenSessionMap_) { + auto screenSession = iter.second; + auto screenId = iter.first; + if (screenSession == nullptr) { + TLOGE(WmsLogTag::DMS, "screensession is nullptr, screenId: %{public}" PRIu64"", screenId); + continue; + } + if (screenSession->GetScreenProperty().GetScreenType() == ScreenType::REAL + && screenId != SCREEN_ID_INVALID) { + screenIds.emplace_back(screenId); + } + } + return DMError::DM_OK; +} + DisplayState ScreenSessionManager::GetDisplayState(DisplayId displayId) { return sessionDisplayPowerController_->GetDisplayState(displayId); diff --git a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp index cca620812b..ead1efe55a 100644 --- a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp +++ b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp @@ -2056,6 +2056,45 @@ DMError ScreenSessionManagerProxy::GetScreenSupportedColorGamuts(ScreenId screen return ret; } +DMError ScreenSessionManagerProxy::GetPhysicalScreenIds(std::vector& screenIds) +{ + sptr remote = Remote(); + if (remote == nullptr) { + TLOGE(WmsLogTag::DMS, "remote is nullptr"); + return DMError::DM_ERROR_NULLPTR; + } + + MessageParcel data; + MessageParcel reply; + MessageOption option; + if (!data.WriteInterfaceToken(GetDescriptor())) { + TLOGW(WmsLogTag::DMS, "WriteInterfaceToken failed"); + return DMError::DM_ERROR_WRITE_INTERFACE_TOKEN_FAILED; + } + if (remote->SendRequest(static_cast(DisplayManagerMessage::TRANS_ID_GET_PHYSICAL_SCREEN_IDS), + data, reply, option) != ERR_NONE) { + TLOGW(WmsLogTag::DMS, "SendRequest failed"); + return DMError::DM_ERROR_IPC_FAILED; + } + DMError ret = static_cast(reply.ReadInt32()); + if (ret != DMError::DM_OK) { + return ret; + } + bool res = MarshallingHelper::UnmarshallingVectorObj(reply, screenIds, + [](Parcel& parcel, ScreenId& screenId) { + uint64_t value; + bool res = parcel.ReadUint64(value); + screenId = static_cast(value); + return res; + } + ); + if (!res) { + TLOGE(WmsLogTag::DMS, "fail to marshalling screenIds in stub."); + return DMError::DM_ERROR_IPC_FAILED; + } + return ret; +} + DMError OHOS::Rosen::ScreenSessionManagerProxy::SetOrientation(ScreenId screenId, Orientation orientation) { sptr remote = Remote(); diff --git a/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp b/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp index e16a3ad9a4..24a78009eb 100644 --- a/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp +++ b/window_scene/screen_session_manager/src/zidl/screen_session_manager_stub.cpp @@ -188,6 +188,21 @@ int32_t ScreenSessionManagerStub::OnRemoteRequest(uint32_t code, MessageParcel& } break; } + case DisplayManagerMessage::TRANS_ID_GET_PHYSICAL_SCREEN_IDS: { + std::vector screenIds; + DMError ret = GetPhysicalScreenIds(screenIds); + reply.WriteInt32(static_cast(ret)); + bool res = MarshallingHelper::MarshallingVectorObj(reply, screenIds, + [](Parcel& parcel, const ScreenId& screenId) { + return parcel.WriteUint64(static_cast(screenId)); + } + ); + if (!res) { + TLOGE(WmsLogTag::DMS, "fail to marshalling screenIds in stub."); + break; + } + break; + } case DisplayManagerMessage::TRANS_ID_SCREEN_GET_SUPPORTED_COLOR_GAMUTS: { ScreenId screenId = static_cast(data.ReadUint64()); std::vector colorGamuts; diff --git a/window_scene/test/dms_unittest/screen_session_manager_proxy_test.cpp b/window_scene/test/dms_unittest/screen_session_manager_proxy_test.cpp index 464f693ed2..cc9efd771a 100644 --- a/window_scene/test/dms_unittest/screen_session_manager_proxy_test.cpp +++ b/window_scene/test/dms_unittest/screen_session_manager_proxy_test.cpp @@ -25,10 +25,20 @@ #include "screen_session_manager/include/screen_session_manager.h" #include "session_manager/include/scene_session_manager.h" #include "zidl/screen_session_manager_proxy.h" +#include "mock_message_parcel.h" using namespace testing; using namespace testing::ext; +namespace OHOS::Rosen { + std::string logMsg; +void MyLogCallback(const LogType type, const LogLevel level, const unsigned int domain, const char *tag, + const char *msg) + { + logMsg = msg; + } +} + namespace OHOS::Rosen { class ScreenSessionManagerProxyTest : public testing::Test { public: @@ -1793,5 +1803,43 @@ HWTEST_F(ScreenSessionManagerProxyTest, SetPrimaryDisplaySystemDpi, Function | S auto ret = screenSessionManagerProxy->SetPrimaryDisplaySystemDpi(dpi); EXPECT_EQ(DMError::DM_OK, ret); } + +/** + * @tc.name: GetPhysicalScreenIds + * @tc.desc: GetPhysicalScreenIds + * @tc.type: FUNC + */ +HWTEST_F(ScreenSessionManagerProxyTest, GetPhysicalScreenIds, Function | SmallTest | Level1) +{ + std::vector screenIds; + sptr impl; + auto ret = screenSessionManagerProxy->GetPhysicalScreenIds(screenIds); + EXPECT_EQ(DMError::DM_ERROR_IPC_FAILED, ret); + + if (SceneBoardJudgement::IsSceneBoardEnabled()) { + ASSERT_NE(SingletonContainer::Get().screenSessionManagerServiceProxy_, nullptr); + impl = SingletonContainer::Get().screenSessionManagerServiceProxy_->AsObject(); + } else { + ASSERT_NE(SingletonContainer::Get().displayManagerServiceProxy_, nullptr); + impl = SingletonContainer::Get().displayManagerServiceProxy_->AsObject(); + } + + screenSessionManagerProxy = new (std::nothrow) ScreenSessionManagerProxy(impl); + ASSERT_NE(screenSessionManagerProxy, nullptr); + + MockMessageParcel::ClearAllErrorFlag(); + MockMessageParcel::SetWriteInterfaceTokenErrorFlag(true); + ret = screenSessionManagerProxy->GetPhysicalScreenIds(screenIds); + EXPECT_EQ(DMRect::DM_ERROR_WRITE_INTERFACE_TOKEN_FAILED, ret); + + MockMessageParcel::SetWriteInterfaceTokenErrorFlag(false); + MockMessageParcel::SetReadInt32ErrorFlag(true); + ret = screenSessionManagerProxy->GetPhysicalScreenIds(screenIds); + EXPECT_EQ(DMRect::DM_ERROR_IPC_FAILED, ret); + + MockMessageParcel::SetReadInt32ErrorFlag(false); + ret = screenSessionManagerProxy->GetPhysicalScreenIds(screenIds); + EXPECT_EQ(DMRect::DM_OK, ret); +} } } diff --git a/window_scene/test/dms_unittest/screen_session_manager_stub_test.cpp b/window_scene/test/dms_unittest/screen_session_manager_stub_test.cpp index 5f8a40e324..61d64fae36 100644 --- a/window_scene/test/dms_unittest/screen_session_manager_stub_test.cpp +++ b/window_scene/test/dms_unittest/screen_session_manager_stub_test.cpp @@ -3288,6 +3288,25 @@ HWTEST_F(ScreenSessionManagerStubTest, ProcSetPrimaryDisplaySystemDpi, Function int res = stub_->OnRemoteRequest(code, data, reply, option); EXPECT_EQ(res, 0); } + +/** + * @tc.name: GetPhysicalScreenIds + * @tc.desc: normal function, GetPhysicalScreenIds test + * @tc.type: FUNC + */ +HWTEST_F(ScreenSessionManagerStubTest, GetPhysicalScreenIds, Function | SmallTest | Level2) +{ + MessageParcel data; + MessageParcel reply; + MessageOption option; + std::vector screenIds; + + data.WriteInterfaceToken(ScreenSessionManagerStub::GetDescriptor()); + data.WriteFloat(2.2f); + uint32_t code = static_cast(DisplayManagerMessage::TRANS_ID_GET_PHYSICAL_SCREEN_IDS); + int res = stub_->OnRemoteRequest(code, data, reply, option); + EXPECT_EQ(res, 0); +} } } } \ No newline at end of file diff --git a/window_scene/test/dms_unittest/screen_session_manager_test2.cpp b/window_scene/test/dms_unittest/screen_session_manager_test2.cpp index 1f7db2934e..8faec697b2 100644 --- a/window_scene/test/dms_unittest/screen_session_manager_test2.cpp +++ b/window_scene/test/dms_unittest/screen_session_manager_test2.cpp @@ -853,6 +853,25 @@ HWTEST_F(ScreenSessionManagerTest, ConvertIntToRotation, Function | SmallTest | targetRotation = ssm_->ConvertIntToRotation(rotation); EXPECT_EQ(targetRotation, Rotation::ROTATION_270); } + +/** + * @tc.name: GetPhysicalScreenIds + * @tc.desc: GetPhysicalScreenIds + * @tc.type: FUNC + */ +HWTEST_F(ScreenSessionManagerTest, GetPhysicalScreenIds, Function | SmallTest | Level3) +{ + ASSERT_NE(ssm_, nullptr); + std::vector screenIds; + auto ret = ssm_->GetPhysicalScreenIds(screenIds); + EXPECT_EQ(ret, DMError::DM_OK); + + ScreenId screenId = 11; + sptr screenSession = nullptr; + ssm_->screenSessionMap_.insert(std::make_pair(screenId, screenSession)); + std::vector screenIds1; + auto ret1 = ssm_->GetPhysicalScreenIds(screenIds1); +} } } } \ No newline at end of file -- Gitee From ba257fe02f2cd04ebb596344de94c955a4ff11e9 Mon Sep 17 00:00:00 2001 From: chaos Date: Mon, 16 Jun 2025 11:01:16 +0800 Subject: [PATCH 2/5] fix Signed-off-by: chaos --- dm_lite/test/unittest/display_manager_adapter_lite_test.cpp | 2 +- dm_lite/test/unittest/screen_manager_lite_test.cpp | 2 +- .../screen_session_manager/src/screen_session_manager.cpp | 2 +- window_scene/test/dms_unittest/screen_session_manager_test2.cpp | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dm_lite/test/unittest/display_manager_adapter_lite_test.cpp b/dm_lite/test/unittest/display_manager_adapter_lite_test.cpp index 67eb59eed4..693522b6dc 100644 --- a/dm_lite/test/unittest/display_manager_adapter_lite_test.cpp +++ b/dm_lite/test/unittest/display_manager_adapter_lite_test.cpp @@ -204,7 +204,7 @@ HWTEST_F(DisplayManagerAdapterLiteTest, GetPhysicalScreenIds, TestSize.Level1) { std::vector screenIds; auto ret = SingletonContainer::Get().GetPhysicalScreenIds(screenIds); - ASSERT_NE(ret, DMError::DM_OK); + EXPECT_NE(ret, DMError::DM_OK); } } } diff --git a/dm_lite/test/unittest/screen_manager_lite_test.cpp b/dm_lite/test/unittest/screen_manager_lite_test.cpp index cb50fc7d5a..a75a21daab 100644 --- a/dm_lite/test/unittest/screen_manager_lite_test.cpp +++ b/dm_lite/test/unittest/screen_manager_lite_test.cpp @@ -70,7 +70,7 @@ HWTEST_F(ScreenManagerLiteTest, GetPhysicalScreenIds, TestSize.Level1) { std::vector screenIds; auto ret = sml_.GetPhysicalScreenIds(screenIds); - ASSERT_EQ(ret, DMError::DM_OK); + EXPECT_EQ(ret, DMError::DM_OK); } } } // namespace Rosen diff --git a/window_scene/screen_session_manager/src/screen_session_manager.cpp b/window_scene/screen_session_manager/src/screen_session_manager.cpp index 26cb3f8232..f9a58c9954 100644 --- a/window_scene/screen_session_manager/src/screen_session_manager.cpp +++ b/window_scene/screen_session_manager/src/screen_session_manager.cpp @@ -3848,7 +3848,7 @@ DMError ScreenSessionManager::GetPhysicalScreenIds(std::vector& screen auto screenSession = iter.second; auto screenId = iter.first; if (screenSession == nullptr) { - TLOGE(WmsLogTag::DMS, "screensession is nullptr, screenId: %{public}" PRIu64"", screenId); + TLOGE(WmsLogTag::DMS, "screensession is nullptr, screenId: %{public}" PRIu64, screenId); continue; } if (screenSession->GetScreenProperty().GetScreenType() == ScreenType::REAL diff --git a/window_scene/test/dms_unittest/screen_session_manager_test2.cpp b/window_scene/test/dms_unittest/screen_session_manager_test2.cpp index 8faec697b2..0b96b3ae00 100644 --- a/window_scene/test/dms_unittest/screen_session_manager_test2.cpp +++ b/window_scene/test/dms_unittest/screen_session_manager_test2.cpp @@ -871,6 +871,7 @@ HWTEST_F(ScreenSessionManagerTest, GetPhysicalScreenIds, Function | SmallTest | ssm_->screenSessionMap_.insert(std::make_pair(screenId, screenSession)); std::vector screenIds1; auto ret1 = ssm_->GetPhysicalScreenIds(screenIds1); + EXPECT_EQ(ret, DMError::DM_OK); } } } -- Gitee From 9476a8b1227070c139f44785b7f95a8833c5db7e Mon Sep 17 00:00:00 2001 From: chaos Date: Mon, 16 Jun 2025 11:22:01 +0800 Subject: [PATCH 3/5] fix1 Signed-off-by: chaos --- .../test/dms_unittest/screen_session_manager_stub_test.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/window_scene/test/dms_unittest/screen_session_manager_stub_test.cpp b/window_scene/test/dms_unittest/screen_session_manager_stub_test.cpp index 61d64fae36..e9d857d188 100644 --- a/window_scene/test/dms_unittest/screen_session_manager_stub_test.cpp +++ b/window_scene/test/dms_unittest/screen_session_manager_stub_test.cpp @@ -3302,7 +3302,6 @@ HWTEST_F(ScreenSessionManagerStubTest, GetPhysicalScreenIds, Function | SmallTes std::vector screenIds; data.WriteInterfaceToken(ScreenSessionManagerStub::GetDescriptor()); - data.WriteFloat(2.2f); uint32_t code = static_cast(DisplayManagerMessage::TRANS_ID_GET_PHYSICAL_SCREEN_IDS); int res = stub_->OnRemoteRequest(code, data, reply, option); EXPECT_EQ(res, 0); -- Gitee From 69fba250c9f3153a1339c7532da028ad04573fe4 Mon Sep 17 00:00:00 2001 From: chaos Date: Mon, 16 Jun 2025 11:25:21 +0800 Subject: [PATCH 4/5] fix2 Signed-off-by: chaos --- .../screen_session_manager/src/screen_session_manager.cpp | 2 +- .../src/zidl/screen_session_manager_proxy.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/window_scene/screen_session_manager/src/screen_session_manager.cpp b/window_scene/screen_session_manager/src/screen_session_manager.cpp index f9a58c9954..fd492333ce 100644 --- a/window_scene/screen_session_manager/src/screen_session_manager.cpp +++ b/window_scene/screen_session_manager/src/screen_session_manager.cpp @@ -3853,7 +3853,7 @@ DMError ScreenSessionManager::GetPhysicalScreenIds(std::vector& screen } if (screenSession->GetScreenProperty().GetScreenType() == ScreenType::REAL && screenId != SCREEN_ID_INVALID) { - screenIds.emplace_back(screenId); + screenIds.emplace_back(screenId); } } return DMError::DM_OK; diff --git a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp index ead1efe55a..4261265ae8 100644 --- a/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp +++ b/window_scene/screen_session_manager/src/zidl/screen_session_manager_proxy.cpp @@ -2089,7 +2089,7 @@ DMError ScreenSessionManagerProxy::GetPhysicalScreenIds(std::vector& s } ); if (!res) { - TLOGE(WmsLogTag::DMS, "fail to marshalling screenIds in stub."); + TLOGE(WmsLogTag::DMS, "fail to unmarshalling screenIds in stub."); return DMError::DM_ERROR_IPC_FAILED; } return ret; -- Gitee From 5e7d04f4513d752d50d574abadb46081ad543b95 Mon Sep 17 00:00:00 2001 From: chaos Date: Mon, 16 Jun 2025 17:30:21 +0800 Subject: [PATCH 5/5] fix3 Signed-off-by: chaos --- .../dms_unittest/screen_session_manager_proxy_test.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/window_scene/test/dms_unittest/screen_session_manager_proxy_test.cpp b/window_scene/test/dms_unittest/screen_session_manager_proxy_test.cpp index cc9efd771a..3e23e63b5d 100644 --- a/window_scene/test/dms_unittest/screen_session_manager_proxy_test.cpp +++ b/window_scene/test/dms_unittest/screen_session_manager_proxy_test.cpp @@ -30,15 +30,6 @@ using namespace testing; using namespace testing::ext; -namespace OHOS::Rosen { - std::string logMsg; -void MyLogCallback(const LogType type, const LogLevel level, const unsigned int domain, const char *tag, - const char *msg) - { - logMsg = msg; - } -} - namespace OHOS::Rosen { class ScreenSessionManagerProxyTest : public testing::Test { public: -- Gitee