From 6e39accf16993203edf83679b911d513a152e0ed Mon Sep 17 00:00:00 2001 From: liuchungang <1397328542@qq.com> Date: Tue, 12 Mar 2024 11:57:02 +0800 Subject: [PATCH] add tdd for execption value Signed-off-by: liuchungang <1397328542@qq.com> --- qos/qos.cpp | 11 ++-- services/include/qos_interface.h | 3 +- services/src/qos_interface.cpp | 4 +- test/unittest/phone/qos_interface_test.cpp | 4 -- test/unittest/phone/qos_ndk_test.cpp | 73 ++++++++++++++++++++-- test/unittest/phone/qos_test.cpp | 6 +- 6 files changed, 79 insertions(+), 22 deletions(-) diff --git a/qos/qos.cpp b/qos/qos.cpp index 924f686..fc1ed66 100644 --- a/qos/qos.cpp +++ b/qos/qos.cpp @@ -68,14 +68,11 @@ int QosController::GetThreadQosForOtherThread(enum QosLevel &level, int tid) } else { CONCUR_LOGE("[Qos] qoslevel get for tid %{public}d failure", tid); } -#ifdef QOS_EXT_ENABLE - level = static_cast(qos); - if (level < QosLevel::QOS_BACKGROUND || level >= QosLevel::QOS_MAX) { - level = QosLevel::QOS_DEFAULT; + if (qos < static_cast(QosLevel::QOS_BACKGROUND) || qos >= static_cast(QosLevel::QOS_MAX)) { + return ERROR_NUM; } -#else - level = QosLevel::QOS_DEFAULT; -#endif + level = static_cast(qos); + return ret; } diff --git a/services/include/qos_interface.h b/services/include/qos_interface.h index 2fbf9b2..42d8987 100644 --- a/services/include/qos_interface.h +++ b/services/include/qos_interface.h @@ -87,9 +87,7 @@ enum AuthCtrlCmdid { enum class QosManipulateType { QOS_APPLY = 1, QOS_LEAVE, -#ifdef QOS_EXT_ENABLE QOS_GET, -#endif QOS_MAX_NR, }; @@ -97,6 +95,7 @@ struct QosCtrlData { int pid; unsigned int type; unsigned int level; + int qos; #ifdef QOS_EXT_ENABLE int qos; int staticQos; diff --git a/services/src/qos_interface.cpp b/services/src/qos_interface.cpp index 1314fc0..4cdb98f 100644 --- a/services/src/qos_interface.cpp +++ b/services/src/qos_interface.cpp @@ -348,7 +348,7 @@ int QosGetForOther(int tid, int &level) if (fd < 0) { return fd; } -#ifdef QOS_EXT_ENABLE + struct QosCtrlData data; data.type = static_cast(QosManipulateType::QOS_GET); data.pid = tid; @@ -361,7 +361,7 @@ int QosGetForOther(int tid, int &level) } #endif level = data.qos; -#endif + close(fd); return ret; } \ No newline at end of file diff --git a/test/unittest/phone/qos_interface_test.cpp b/test/unittest/phone/qos_interface_test.cpp index d6da214..9efd9be 100644 --- a/test/unittest/phone/qos_interface_test.cpp +++ b/test/unittest/phone/qos_interface_test.cpp @@ -293,12 +293,10 @@ HWTEST_F(QosInterfaceTest, QosGetTest, TestSize.Level1) unsigned int level = 4; int ret = QosApply(level); EXPECT_EQ(ret, 0); -#ifdef QOS_EXT_ENABLE ret = QosGet(qos); sleep(5); EXPECT_EQ(ret, 0); EXPECT_EQ(qos, level); -#endif } /** @@ -313,11 +311,9 @@ HWTEST_F(QosInterfaceTest, QosGetForOtherTest, TestSize.Level1) int tid = gettid(); int ret = QosApplyForOther(level, tid); EXPECT_EQ(ret, 0); -#ifdef QOS_EXT_ENABLE ret = QosGetForOther(tid, qos); EXPECT_EQ(ret, 0); EXPECT_EQ(qos, level); -#endif } } } diff --git a/test/unittest/phone/qos_ndk_test.cpp b/test/unittest/phone/qos_ndk_test.cpp index 6b0e900..c36b86b 100644 --- a/test/unittest/phone/qos_ndk_test.cpp +++ b/test/unittest/phone/qos_ndk_test.cpp @@ -67,11 +67,42 @@ HWTEST_F(QoSNdkTest, SetThreadQoSNdkTest1, TestSize.Level1) EXPECT_EQ(ret, 0); ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INTERACTIVE); EXPECT_EQ(ret, 0); + ret = ret = OH_QoS_SetThreadQoS(QoS_Level(-1)); + EXPECT_EQ(ret, -1); + ret = ret = OH_QoS_SetThreadQoS(QoS_Level(6)); + EXPECT_EQ(ret, -1); + ret = ret = OH_QoS_SetThreadQoS(QoS_Level(1024)); + EXPECT_EQ(ret, -1); } HWTEST_F(QoSNdkTest, ResetThreadQoSNdkTest, TestSize.Level1) { - int ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INTERACTIVE); + int ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_BACKGROUND); + EXPECT_EQ(ret, 0); + ret = OH_QoS_ResetThreadQoS(); + EXPECT_EQ(ret, 0); + + ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_UTILITY); + EXPECT_EQ(ret, 0); + ret = OH_QoS_ResetThreadQoS(); + EXPECT_EQ(ret, 0); + + ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_DEFAULT); + EXPECT_EQ(ret, 0); + ret = OH_QoS_ResetThreadQoS(); + EXPECT_EQ(ret, 0); + + ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INITIATED); + EXPECT_EQ(ret, 0); + ret = OH_QoS_ResetThreadQoS(); + EXPECT_EQ(ret, 0); + + ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_DEADLINE_REQUEST); + EXPECT_EQ(ret, 0); + ret = OH_QoS_ResetThreadQoS(); + EXPECT_EQ(ret, 0); + + ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INTERACTIVE); EXPECT_EQ(ret, 0); ret = OH_QoS_ResetThreadQoS(); EXPECT_EQ(ret, 0); @@ -81,14 +112,48 @@ HWTEST_F(QoSNdkTest, GetThreadQoSNdkTest1, TestSize.Level1) { int ret = OH_QoS_GetThreadQoS(nullptr); EXPECT_EQ(ret, -1); -#ifdef QOS_EXT_ENABLE - ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INTERACTIVE); + + ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_BACKGROUND); EXPECT_EQ(ret, 0); enum QoS_Level level; ret = OH_QoS_GetThreadQoS(&level); EXPECT_EQ(ret, 0); + EXPECT_EQ(level, QoS_Level::QOS_BACKGROUND); + + ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_UTILITY); + EXPECT_EQ(ret, 0); + ret = OH_QoS_GetThreadQoS(&level); + EXPECT_EQ(ret, 0); + EXPECT_EQ(level, QoS_Level::QOS_UTILITY); + + ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_DEFAULT); + EXPECT_EQ(ret, 0); + ret = OH_QoS_GetThreadQoS(&level); + EXPECT_EQ(ret, 0); + EXPECT_EQ(level, QoS_Level::QOS_DEFAULT); + + ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INITIATED); + EXPECT_EQ(ret, 0); + ret = OH_QoS_GetThreadQoS(&level); + EXPECT_EQ(ret, 0); + EXPECT_EQ(level, QoS_Level::QOS_USER_INITIATED); + + ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_DEADLINE_REQUEST); + EXPECT_EQ(ret, 0); + ret = OH_QoS_GetThreadQoS(&level); + EXPECT_EQ(ret, 0); + EXPECT_EQ(level, QoS_Level::QOS_DEADLINE_REQUEST); + + ret = OH_QoS_SetThreadQoS(QoS_Level::QOS_USER_INTERACTIVE); + EXPECT_EQ(ret, 0); + ret = OH_QoS_GetThreadQoS(&level); + EXPECT_EQ(ret, 0); EXPECT_EQ(level, QoS_Level::QOS_USER_INTERACTIVE); -#endif + + ret = OH_QoS_ResetThreadQoS(); + EXPECT_EQ(ret, 0); + ret = OH_QoS_GetThreadQoS(&level); + EXPECT_EQ(ret, -1); } diff --git a/test/unittest/phone/qos_test.cpp b/test/unittest/phone/qos_test.cpp index 12f07d4..89d9324 100644 --- a/test/unittest/phone/qos_test.cpp +++ b/test/unittest/phone/qos_test.cpp @@ -71,6 +71,8 @@ HWTEST_F(QosTest, SetThreadQosTest1, TestSize.Level1) EXPECT_EQ(ret, 0); ret = SetThreadQos(QosLevel::QOS_MAX); EXPECT_EQ(ret, -1); + ret = SetThreadQos(QosLevel(-1)); + EXPECT_EQ(ret, -1); } HWTEST_F(QosTest, SetThreadQosTest2, TestSize.Level1) @@ -106,7 +108,6 @@ HWTEST_F(QosTest, GetThreadQosTest1, TestSize.Level1) int ret = SetThreadQos(QosLevel::QOS_USER_INITIATED); EXPECT_EQ(ret, 0); enum QosLevel level; -#ifdef QOS_EXT_ENABLE ret = GetThreadQos(level); EXPECT_EQ(ret, 0); EXPECT_EQ(static_cast(level), static_cast(QosLevel::QOS_USER_INITIATED)); @@ -115,7 +116,6 @@ HWTEST_F(QosTest, GetThreadQosTest1, TestSize.Level1) ret = GetThreadQos(level); EXPECT_EQ(ret, 0); EXPECT_EQ(static_cast(level), static_cast(QosLevel::QOS_USER_INTERACTIVE)); -#endif } HWTEST_F(QosTest, GetThreadQosTest2, TestSize.Level1) @@ -124,7 +124,7 @@ HWTEST_F(QosTest, GetThreadQosTest2, TestSize.Level1) EXPECT_EQ(ret, 0); enum QosLevel level; ret = GetThreadQos(level); - EXPECT_EQ(ret, 0); + EXPECT_EQ(ret, -1); } } // QOS } // OHOS \ No newline at end of file -- Gitee