From 0a36e513ba71d671fc40a1705dcd16d45b61db4c Mon Sep 17 00:00:00 2001 From: zhouoaoteng Date: Sat, 7 Jun 2025 20:34:51 +0800 Subject: [PATCH] add test Signed-off-by: zhouoaoteng --- .../include/distributed_input_sink_manager.h | 2 +- .../distributed_input_sinkmanager_test.h | 2 +- utils/include/dinput_context.h | 2 +- utils/src/dinput_context.cpp | 10 +++--- utils/test/unittest/dinput_context_test.cpp | 36 +++++++++++++++++++ 5 files changed, 45 insertions(+), 7 deletions(-) diff --git a/services/sink/sinkmanager/include/distributed_input_sink_manager.h b/services/sink/sinkmanager/include/distributed_input_sink_manager.h index ac7a6cd..ee7776e 100644 --- a/services/sink/sinkmanager/include/distributed_input_sink_manager.h +++ b/services/sink/sinkmanager/include/distributed_input_sink_manager.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2023 Huawei Device Co., Ltd. + * Copyright (c) 2021-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/services/sink/sinkmanager/test/sinkmanagerunittest/distributed_input_sinkmanager_test.h b/services/sink/sinkmanager/test/sinkmanagerunittest/distributed_input_sinkmanager_test.h index 9d14f7d..9be71bf 100644 --- a/services/sink/sinkmanager/test/sinkmanagerunittest/distributed_input_sinkmanager_test.h +++ b/services/sink/sinkmanager/test/sinkmanagerunittest/distributed_input_sinkmanager_test.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2024 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/utils/include/dinput_context.h b/utils/include/dinput_context.h index 610b3a3..af692f2 100644 --- a/utils/include/dinput_context.h +++ b/utils/include/dinput_context.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2022-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/utils/src/dinput_context.cpp b/utils/src/dinput_context.cpp index 6a9c5e1..95ac393 100644 --- a/utils/src/dinput_context.cpp +++ b/utils/src/dinput_context.cpp @@ -90,11 +90,13 @@ void DInputContext::CleanExceptionalInfo(const SrcScreenInfo &srcScreenInfo) std::string uuid = srcScreenInfo.uuid; int32_t sessionId = srcScreenInfo.sessionId; std::lock_guard lock(sinkMapMutex_); - for (const auto &[id, sinkInfo] : sinkScreenInfoMap_) { - auto srcInfo = sinkInfo.srcScreenInfo; + for (auto iter = sinkScreenInfoMap_.begin(); iter != sinkScreenInfoMap_.end();) { + auto srcInfo = iter->second.srcScreenInfo; if ((std::strcmp(srcInfo.uuid.c_str(), uuid.c_str()) == 0) && (srcInfo.sessionId != sessionId)) { - sinkScreenInfoMap_.erase(id); - DHLOGI("CleanExceptionalInfo screenInfoKey: %{public}s, sessionId: %{public}d", id.c_str(), sessionId); + DHLOGI("CleanExceptionalInfo key: %{public}s, sessionId: %{public}d", iter->first.c_str(), sessionId); + iter = sinkScreenInfoMap_.erase(iter); + } else { + ++iter; } } } diff --git a/utils/test/unittest/dinput_context_test.cpp b/utils/test/unittest/dinput_context_test.cpp index 4f42063..0ab6e2b 100644 --- a/utils/test/unittest/dinput_context_test.cpp +++ b/utils/test/unittest/dinput_context_test.cpp @@ -113,6 +113,42 @@ HWTEST_F(DInputContextTest, CleanExceptionalInfo002, testing::ext::TestSize.Leve DInputContext::GetInstance().RemoveSinkScreenInfo(sourceWinId); } +HWTEST_F(DInputContextTest, CleanExceptionalInfo003, testing::ext::TestSize.Level1) +{ + std::string sourceWinId = "hello"; + SrcScreenInfo srcScreenInfo; + srcScreenInfo.uuid = "uuid1"; + srcScreenInfo.sessionId = 1; + + SinkScreenInfo sinkInfo; + sinkInfo.srcScreenInfo.uuid = "uuid2"; + sinkInfo.srcScreenInfo.sessionId = 1; + + DInputContext::GetInstance().sinkScreenInfoMap_[sourceWinId] = sinkInfo; + EXPECT_EQ(DInputContext::GetInstance().sinkScreenInfoMap_.size(), 1); + DInputContext::GetInstance().CleanExceptionalInfo(srcScreenInfo); + + DInputContext::GetInstance().RemoveSinkScreenInfo(sourceWinId); +} + +HWTEST_F(DInputContextTest, CleanExceptionalInfo004, testing::ext::TestSize.Level1) +{ + std::string sourceWinId = "hello"; + SrcScreenInfo srcScreenInfo; + srcScreenInfo.uuid = "uuid1"; + srcScreenInfo.sessionId = 1; + + SinkScreenInfo sinkInfo; + sinkInfo.srcScreenInfo.uuid = "uuid1"; + sinkInfo.srcScreenInfo.sessionId = 2; + + DInputContext::GetInstance().sinkScreenInfoMap_[sourceWinId] = sinkInfo; + EXPECT_EQ(DInputContext::GetInstance().sinkScreenInfoMap_.size(), 1); + DInputContext::GetInstance().CleanExceptionalInfo(srcScreenInfo); + + DInputContext::GetInstance().RemoveSinkScreenInfo(sourceWinId); +} + HWTEST_F(DInputContextTest, GetSinkScreenInfo002, testing::ext::TestSize.Level1) { std::string sourceWinId = "hello"; -- Gitee