From f546caf8c0e69675c7418eb10f74467d9613e030 Mon Sep 17 00:00:00 2001 From: hui1975 Date: Wed, 7 Dec 2022 10:46:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B5=8B=E8=AF=95=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hui1975 Change-Id: Ief2f4de42a8f7d5ed354b5b04becc3441a7f439d --- .../native/miscdevice/src/light_client.cpp | 2 +- .../light/test/unittest/light_agent_test.cpp | 56 ++++++++++++------- .../include/miscdevice_service.h | 1 + .../src/miscdevice_service.cpp | 18 ++++++ 4 files changed, 55 insertions(+), 22 deletions(-) diff --git a/frameworks/native/miscdevice/src/light_client.cpp b/frameworks/native/miscdevice/src/light_client.cpp index 7c78a2f..ccbda69 100755 --- a/frameworks/native/miscdevice/src/light_client.cpp +++ b/frameworks/native/miscdevice/src/light_client.cpp @@ -107,7 +107,7 @@ int32_t LightClient::GetLightList(LightInfo **lightInfo, int32_t &count) bool LightClient::IsLightAnimationValid(const LightAnimation &animation) { - if ((animation.mode < 0) || (animation.mode > LIGHT_MODE_BUTT)) { + if ((animation.mode < 0) || (animation.mode >= LIGHT_MODE_BUTT)) { MISC_HILOGE("animation mode is invalid, mode:%{pubilc}d", animation.mode); return false; } diff --git a/interfaces/native/light/test/unittest/light_agent_test.cpp b/interfaces/native/light/test/unittest/light_agent_test.cpp index dbf83f7..ab3f2a6 100755 --- a/interfaces/native/light/test/unittest/light_agent_test.cpp +++ b/interfaces/native/light/test/unittest/light_agent_test.cpp @@ -43,11 +43,25 @@ int32_t lightType_ = -1; /** * @tc.name: StartLightTest_001 - * @tc.desc: Verify GetLightList + * @tc.desc: Verify TurnOff * @tc.type: FUNC * @tc.require: I63TFA */ HWTEST_F(LightAgentTest, StartLightTest_001, TestSize.Level1) +{ + CALL_LOG_ENTER; + int32_t powerLightId = 1; + int32_t ret = TurnOff(powerLightId); + ASSERT_EQ(ret, 0); +} + +/** + * @tc.name: StartLightTest_002 + * @tc.desc: Verify GetLightList + * @tc.type: FUNC + * @tc.require: I63TFA + */ +HWTEST_F(LightAgentTest, StartLightTest_002, TestSize.Level1) { CALL_LOG_ENTER; int32_t count = -1; @@ -62,12 +76,12 @@ HWTEST_F(LightAgentTest, StartLightTest_001, TestSize.Level1) } /** - * @tc.name: StartLightTest_002 + * @tc.name: StartLightTest_003 * @tc.desc: Verify GetLightList * @tc.type: FUNC * @tc.require: I63TFA */ -HWTEST_F(LightAgentTest, StartLightTest_002, TestSize.Level1) +HWTEST_F(LightAgentTest, StartLightTest_003, TestSize.Level1) { CALL_LOG_ENTER; int32_t count = -1; @@ -107,12 +121,12 @@ bool GetLightColor(LightColor &color, int32_t lightType) } /** - * @tc.name: StartLightTest_003 + * @tc.name: StartLightTest_004 * @tc.desc: Verify TurnOn * @tc.type: FUNC * @tc.require: I63TFA */ -HWTEST_F(LightAgentTest, StartLightTest_003, TestSize.Level1) +HWTEST_F(LightAgentTest, StartLightTest_004, TestSize.Level1) { CALL_LOG_ENTER; LightColor color; @@ -131,12 +145,12 @@ HWTEST_F(LightAgentTest, StartLightTest_003, TestSize.Level1) } /** - * @tc.name: StartLightTest_004 + * @tc.name: StartLightTest_005 * @tc.desc: Verify TurnOn * @tc.type: FUNC * @tc.require: I63TFA */ -HWTEST_F(LightAgentTest, StartLightTest_004, TestSize.Level1) +HWTEST_F(LightAgentTest, StartLightTest_005, TestSize.Level1) { CALL_LOG_ENTER; LightColor color; @@ -154,12 +168,12 @@ HWTEST_F(LightAgentTest, StartLightTest_004, TestSize.Level1) } /** - * @tc.name: StartLightTest_005 + * @tc.name: StartLightTest_006 * @tc.desc: Verify TurnOn * @tc.type: FUNC * @tc.require: I63TFA */ -HWTEST_F(LightAgentTest, StartLightTest_005, TestSize.Level1) +HWTEST_F(LightAgentTest, StartLightTest_006, TestSize.Level1) { CALL_LOG_ENTER; LightColor color; @@ -177,12 +191,12 @@ HWTEST_F(LightAgentTest, StartLightTest_005, TestSize.Level1) } /** - * @tc.name: StartLightTest_006 + * @tc.name: StartLightTest_007 * @tc.desc: Verify TurnOn * @tc.type: FUNC * @tc.require: I63TFA */ -HWTEST_F(LightAgentTest, StartLightTest_006, TestSize.Level1) +HWTEST_F(LightAgentTest, StartLightTest_007, TestSize.Level1) { CALL_LOG_ENTER; LightColor color; @@ -200,12 +214,12 @@ HWTEST_F(LightAgentTest, StartLightTest_006, TestSize.Level1) } /** - * @tc.name: StartLightTest_007 + * @tc.name: StartLightTest_008 * @tc.desc: Verify TurnOn * @tc.type: FUNC * @tc.require: I63TFA */ -HWTEST_F(LightAgentTest, StartLightTest_007, TestSize.Level1) +HWTEST_F(LightAgentTest, StartLightTest_008, TestSize.Level1) { CALL_LOG_ENTER; LightColor color; @@ -223,12 +237,12 @@ HWTEST_F(LightAgentTest, StartLightTest_007, TestSize.Level1) } /** - * @tc.name: StartLightTest_008 + * @tc.name: StartLightTest_009 * @tc.desc: Verify TurnOn * @tc.type: FUNC * @tc.require: I63TFA */ -HWTEST_F(LightAgentTest, StartLightTest_008, TestSize.Level1) +HWTEST_F(LightAgentTest, StartLightTest_009, TestSize.Level1) { CALL_LOG_ENTER; LightColor color; @@ -247,12 +261,12 @@ HWTEST_F(LightAgentTest, StartLightTest_008, TestSize.Level1) } /** - * @tc.name: StartLightTest_009 + * @tc.name: StartLightTest_010 * @tc.desc: Verify TurnOn * @tc.type: FUNC * @tc.require: I63TFA */ -HWTEST_F(LightAgentTest, StartLightTest_009, TestSize.Level1) +HWTEST_F(LightAgentTest, StartLightTest_010, TestSize.Level1) { CALL_LOG_ENTER; LightColor color; @@ -270,12 +284,12 @@ HWTEST_F(LightAgentTest, StartLightTest_009, TestSize.Level1) } /** - * @tc.name: StartLightTest_010 + * @tc.name: StartLightTest_011 * @tc.desc: Verify TurnOff * @tc.type: FUNC * @tc.require: I63TFA */ -HWTEST_F(LightAgentTest, StartLightTest_010, TestSize.Level1) +HWTEST_F(LightAgentTest, StartLightTest_011, TestSize.Level1) { CALL_LOG_ENTER; int32_t ret = TurnOff(lightId_); @@ -283,12 +297,12 @@ HWTEST_F(LightAgentTest, StartLightTest_010, TestSize.Level1) } /** - * @tc.name: StartLightTest_011 + * @tc.name: StartLightTest_012 * @tc.desc: Verify TurnOff * @tc.type: FUNC * @tc.require: I63TFA */ -HWTEST_F(LightAgentTest, StartLightTest_011, TestSize.Level1) +HWTEST_F(LightAgentTest, StartLightTest_012, TestSize.Level1) { CALL_LOG_ENTER; int32_t ret = TurnOff(invalidLightId_); diff --git a/services/miscdevice_service/include/miscdevice_service.h b/services/miscdevice_service/include/miscdevice_service.h index 62183b7..716914b 100644 --- a/services/miscdevice_service/include/miscdevice_service.h +++ b/services/miscdevice_service/include/miscdevice_service.h @@ -52,6 +52,7 @@ public: void OnStart() override; void OnStop() override; bool IsValid(int32_t lightId); + bool IsLightAnimationValid(const LightAnimation &animation); int32_t Dump(int32_t fd, const std::vector &args) override; virtual int32_t Vibrate(int32_t vibratorId, int32_t timeOut, int32_t usage) override; virtual int32_t CancelVibrator(int32_t vibratorId) override; diff --git a/services/miscdevice_service/src/miscdevice_service.cpp b/services/miscdevice_service/src/miscdevice_service.cpp index fbba8a4..553f23f 100644 --- a/services/miscdevice_service/src/miscdevice_service.cpp +++ b/services/miscdevice_service/src/miscdevice_service.cpp @@ -119,6 +119,20 @@ bool MiscdeviceService::IsValid(int32_t lightId) return false; } +bool MiscdeviceService::IsLightAnimationValid(const LightAnimation &animation) +{ + if ((animation.mode < 0) || (animation.mode >= LIGHT_MODE_BUTT)) { + MISC_HILOGE("animation mode is invalid, mode:%{pubilc}d", animation.mode); + return false; + } + if ((animation.onTime < 0) || (animation.offTime < 0)) { + MISC_HILOGE("animation onTime or offTime is invalid, onTime:%{pubilc}d, offTime:%{pubilc}d", + animation.onTime, animation.offTime); + return false; + } + return true; +} + void MiscdeviceService::OnStop() { CALL_LOG_ENTER; @@ -294,6 +308,10 @@ int32_t MiscdeviceService::TurnOn(int32_t lightId, const LightColor &color, cons MISC_HILOGE("lightId is invalid, lightId:%{pubilc}d", lightId); return MISCDEVICE_NATIVE_SAM_ERR; } + if (!IsLightAnimationValid(animation)) { + MISC_HILOGE("animation is invalid"); + return MISCDEVICE_NATIVE_SAM_ERR; + } int32_t ret = lightHdiConnection_.TurnOn(lightId, color, animation); if (ret != ERR_OK) { MISC_HILOGE("TurnOn failed, error:%{public}d", ret); -- Gitee