From cd4cae1b3acb2fa5af82784d255345cb623fe446 Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 13 Dec 2023 11:14:35 +0800 Subject: [PATCH] =?UTF-8?q?kernel=5Flinux=5Fbuild=EF=BC=9A=E9=80=82?= =?UTF-8?q?=E9=85=8D=20Linux=20rtg=20=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Brian --- .../beginframefreq_fuzzer.cpp | 3 +- .../endframefreq_fuzzer.cpp | 4 +- .../setmargin_fuzzer/setmargin_fuzzer.cpp | 3 +- test/unittest/rtg/rtg_test.cpp | 326 ++++-------------- 4 files changed, 70 insertions(+), 266 deletions(-) diff --git a/test/fuzztest/sched/beginframefreq_fuzzer/beginframefreq_fuzzer.cpp b/test/fuzztest/sched/beginframefreq_fuzzer/beginframefreq_fuzzer.cpp index 241641f..e43c692 100644 --- a/test/fuzztest/sched/beginframefreq_fuzzer/beginframefreq_fuzzer.cpp +++ b/test/fuzztest/sched/beginframefreq_fuzzer/beginframefreq_fuzzer.cpp @@ -31,8 +31,7 @@ bool BeginFrameFreqFuzzTest(const uint8_t *data, size_t size) if (margin < marginLowerLimitTime || margin > marginUpperLimitTime) { return ret; } - int grpId = 2; - ret = BeginFrameFreq(grpId, margin); + ret = BeginFrameFreq(margin); } return ret; } diff --git a/test/fuzztest/sched/endframefreq_fuzzer/endframefreq_fuzzer.cpp b/test/fuzztest/sched/endframefreq_fuzzer/endframefreq_fuzzer.cpp index 345609b..a183e46 100644 --- a/test/fuzztest/sched/endframefreq_fuzzer/endframefreq_fuzzer.cpp +++ b/test/fuzztest/sched/endframefreq_fuzzer/endframefreq_fuzzer.cpp @@ -24,8 +24,8 @@ bool EndFrameFreqFuzzTest(const uint8_t *data, size_t size) if (data == nullptr) { return ret; } - int grpId = 2; - ret = EndFrameFreq(grpId); + int margin = 2; + ret = EndFrameFreq(margin); return ret; } } diff --git a/test/fuzztest/sched/setmargin_fuzzer/setmargin_fuzzer.cpp b/test/fuzztest/sched/setmargin_fuzzer/setmargin_fuzzer.cpp index c90741e..355b3a5 100644 --- a/test/fuzztest/sched/setmargin_fuzzer/setmargin_fuzzer.cpp +++ b/test/fuzztest/sched/setmargin_fuzzer/setmargin_fuzzer.cpp @@ -31,8 +31,7 @@ bool SetMarginFuzzTest(const uint8_t *data, size_t size) if (margin < marginLowerLimitTime || margin > marginUpperLimitTime) { return ret; } - int grpId = 2; - ret = SetMargin(grpId, margin); + ret = SetMargin(margin); } return ret; } diff --git a/test/unittest/rtg/rtg_test.cpp b/test/unittest/rtg/rtg_test.cpp index 093dc35..3ee7e3a 100644 --- a/test/unittest/rtg/rtg_test.cpp +++ b/test/unittest/rtg/rtg_test.cpp @@ -32,7 +32,6 @@ using namespace testing::ext; using namespace std; constexpr size_t MAX_LENGTH = 100; -constexpr size_t MAX_STR_LEN = 100; const char RTG_SCHED_IPC_MAGIC = 0xAB; const int RTG_ERR = -1; const int RTG_SUCC = 0; @@ -53,10 +52,6 @@ const int MULTI_FRAME_NUM = 5; _IOWR(RTG_SCHED_IPC_MAGIC, SET_MIN_UTIL, struct proc_state_data) #define CMD_ID_SET_MARGIN \ _IOWR(RTG_SCHED_IPC_MAGIC, SET_MARGIN, struct proc_state_data) -#define CMD_ID_LIST_RTG_THREAD \ - _IOWR(RTG_SCHED_IPC_MAGIC, LIST_RTG_THREAD, struct rtg_grp_data) -#define CMD_ID_LIST_RTG \ - _IOWR(RTG_SCHED_IPC_MAGIC, LIST_RTG, struct rtg_info) #define CMD_ID_SET_RTG_ATTR \ _IOWR(RTG_SCHED_IPC_MAGIC, SET_RTG_ATTR, struct rtg_str_data) #define CMD_ID_SET_CONFIG \ @@ -217,31 +212,10 @@ static int AddThreadToRtg(int tid, int grpId, int prioType) return ret; } -static int ClearRtgGrp(int GrpId) -{ - struct rtg_grp_data grp_data; - int ret; - int fd = BasicOpenRtgNode(); - if (fd < 0) { - return fd; - } - (void)memset_s(&grp_data, sizeof(struct rtg_grp_data), 0, sizeof(struct rtg_grp_data)); - grp_data.rtg_cmd = CMD_CLEAR_RTG_GRP; - grp_data.grp_id = GrpId; - ret = ioctl(fd, CMD_ID_SET_RTG, &grp_data); - if (ret < 0) { - return ret; - } - - close(fd); - return ret; -}; - -static int BeginFrameFreq(int grpId, int stateParam) +static int BeginFrameFreq(int stateParam) { int ret = 0; struct proc_state_data state_data; - state_data.grp_id = grpId; state_data.state_param = stateParam; int fd = BasicOpenRtgNode(); if (fd < 0) { @@ -253,12 +227,11 @@ static int BeginFrameFreq(int grpId, int stateParam) return ret; } -static int EndFrameFreq(int grpId) +static int EndFrameFreq(int stateParam) { int ret = 0; struct proc_state_data state_data; - state_data.grp_id = grpId; - state_data.state_param = 0; + state_data.state_param = stateParam; int fd = BasicOpenRtgNode(); if (fd < 0) { return fd; @@ -285,11 +258,10 @@ static int EndScene(int grpId) return ret; } -static int SetStateParam(unsigned int cmd, int grpId, int stateParam) +static int SetStateParam(unsigned int cmd, int stateParam) { int ret = 0; struct proc_state_data state_data; - state_data.grp_id = grpId; state_data.state_param = stateParam; int fd = BasicOpenRtgNode(); @@ -302,60 +274,6 @@ static int SetStateParam(unsigned int cmd, int grpId, int stateParam) return ret; } - -static int ListRtgThread(int grpId, vector *rs) -{ - int ret = 0; - struct rtg_grp_data grp_data; - int fd = BasicOpenRtgNode(); - if (fd < 0) { - return fd; - } - if (!rs) { - return RTG_ERR; - } - (void)memset_s(&grp_data, sizeof(struct rtg_grp_data), 0, sizeof(struct rtg_grp_data)); - grp_data.grp_id = grpId; - ret = ioctl(fd, CMD_ID_LIST_RTG_THREAD, &grp_data); - if (ret < 0) { - return ret; - } else { - rs->clear(); - for (int i = 0; i < grp_data.tid_num; i++) { - rs->push_back(grp_data.tids[i]); - } - } - - close(fd); - return ret; -} - -static int ListRtgGroup(vector *rs) -{ - int ret = 0; - struct rtg_info rtg_info; - int fd = BasicOpenRtgNode(); - if (fd < 0) { - return fd; - } - if (!rs) { - return RTG_ERR; - } - (void)memset_s(&rtg_info, sizeof(struct rtg_info), 0, sizeof(struct rtg_info)); - ret = ioctl(fd, CMD_ID_LIST_RTG, &rtg_info); - if (ret < 0) { - return ret; - } else { - rs->clear(); - for (int i = 0; i < rtg_info.rtg_num; i++) { - rs->push_back(rtg_info.rtgs[i]); - } - } - - close(fd); - return ret; -} - static int SetFrameRateAndPrioType(int rtgId, int rate, int rtgType) { int ret = 0; @@ -375,25 +293,6 @@ static int SetFrameRateAndPrioType(int rtgId, int rate, int rtgType) return ret; } -static int SetMaxVipRtgs(int rtframe) -{ - int ret = 0; - char str_data[MAX_STR_LEN] = {}; - (void)sprintf_s(str_data, sizeof(str_data), "rtframe:%d", rtframe); - struct rtg_str_data strData; - strData.len = strlen(str_data); - strData.data = str_data; - - int fd = BasicOpenRtgNode(); - if (fd < 0) { - return fd; - } - ret = ioctl(fd, CMD_ID_SET_CONFIG, &strData); - - close(fd); - return ret; -} - static int AddThreadsToRtg(vector tids, int grpId, int prioType) { struct rtg_grp_data grp_data; @@ -531,67 +430,42 @@ HWTEST_F(RtgTest, addRtgGrpFail, Function | MediumTest | Level1) } /** - * @tc.name: clearRtgSucc - * @tc.desc: Verify clear rtg function. + * @tc.name: begainFrameFreqSucc + * @tc.desc: Verify rtg frame start function. * @tc.type: FUNC */ -HWTEST_F(RtgTest, clearRtgSucc, Function | MediumTest | Level1) +HWTEST_F(RtgTest, begainFrameFreqSucc, Function | MediumTest | Level1) { int ret; int grpId; int pid = getpid(); - + vector pids = {}; + pids.push_back(pid); grpId = CreateNewRtgGrp(VIP, 0); ASSERT_GT(grpId, 0); - ret = AddThreadToRtg(pid, grpId, VIP); - ASSERT_EQ(ret, RTG_SUCC); - ret = ClearRtgGrp(grpId); - ASSERT_EQ(ret, RTG_SUCC); + ret = AddThreadsToRtg(pids, grpId, VIP); + ASSERT_EQ(ret, 0); + ret = BeginFrameFreq(0); + ASSERT_EQ(ret, 0); ret = DestroyRtgGrp(grpId); - ASSERT_EQ(ret, RTG_SUCC); -} - -/** - * @tc.name: clearRtgFail - * @tc.desc: Verify clear rtg function with error param. - * @tc.type: FUNC - */ -HWTEST_F(RtgTest, clearRtgFail, Function | MediumTest | Level1) -{ - int ret; - - ret = ClearRtgGrp(-1); - ASSERT_NE(ret, RTG_SUCC); + ASSERT_EQ(ret, 0); } /** - * @tc.name: begainFrameFreqSucc - * @tc.desc: Verify rtg frame start function. + * @tc.name: RtgInterfaceBeginFrameFreqWithNoAddThreadtoGrp + * @tc.desc: Verify rtg frame start function with NoAddThreadtoGrp. * @tc.type: FUNC */ -HWTEST_F(RtgTest, begainFrameFreqSucc, Function | MediumTest | Level1) +HWTEST_F(RtgTest, RtgInterfaceBeginFrameFreqWithNoAddThreadtoGrp, Function | MediumTest | Level1) { int ret; int grpId; - grpId = CreateNewRtgGrp(VIP, 0); ASSERT_GT(grpId, 0); - ret = BeginFrameFreq(grpId, 0); - ASSERT_EQ(ret, RTG_SUCC); + ret = BeginFrameFreq(0); + ASSERT_NE(ret, 0); ret = DestroyRtgGrp(grpId); - ASSERT_EQ(ret, RTG_SUCC); -} - -/** - * @tc.name: begainFrameFreqFail - * @tc.desc: Verify rtg frame start function with error param. - * @tc.type: FUNC - */ -HWTEST_F(RtgTest, begainFrameFreqFail, Function | MediumTest | Level1) -{ - int ret; - ret = BeginFrameFreq(-1, 0); - ASSERT_NE(ret, RTG_SUCC); + ASSERT_EQ(ret, 0); } /** @@ -603,27 +477,37 @@ HWTEST_F(RtgTest, endFrameFreqSucc, Function | MediumTest | Level1) { int ret; int grpId; - + int pid = getpid(); + vector pids = {}; + pids.push_back(pid); grpId = CreateNewRtgGrp(VIP, 0); ASSERT_GT(grpId, 0); - ret = EndFrameFreq(grpId); + ret = AddThreadsToRtg(pids, grpId, VIP); + ASSERT_EQ(ret, 0); + ret = EndFrameFreq(0); ASSERT_EQ(ret, RTG_SUCC); ret = DestroyRtgGrp(grpId); ASSERT_EQ(ret, RTG_SUCC); } /** - * @tc.name: endFrameFreqFail - * @tc.desc: Verify rtg frame end function with error param. + * @tc.name: endFrameFreqWithNoAddThreadtoGrp + * @tc.desc: Verify rtg frame end function with NoAddThreadtoGrp. * @tc.type: FUNC */ -HWTEST_F(RtgTest, endFrameFreqFail, Function | MediumTest | Level1) +HWTEST_F(RtgTest, endFrameFreqWithNoAddThreadtoGrp, Function | MediumTest | Level1) { int ret; - ret = EndFrameFreq(-1); + int grpId; + grpId = CreateNewRtgGrp(VIP, 0); + ASSERT_GT(grpId, 0); + ret = EndFrameFreq(0); ASSERT_NE(ret, RTG_SUCC); + ret = DestroyRtgGrp(grpId); + ASSERT_EQ(ret, RTG_SUCC); } + /** * @tc.name: endSceneSucc * @tc.desc: Verify scene end function. @@ -633,9 +517,13 @@ HWTEST_F(RtgTest, endSceneSucc, Function | MediumTest | Level1) { int ret; int grpId; - + int pid = getpid(); + vector pids = {}; + pids.push_back(pid); grpId = CreateNewRtgGrp(VIP, 0); ASSERT_GT(grpId, 0); + ret = AddThreadsToRtg(pids, grpId, VIP); + ASSERT_EQ(ret, 0); ret = EndScene(grpId); ASSERT_EQ(ret, RTG_SUCC); ret = DestroyRtgGrp(grpId); @@ -664,126 +552,75 @@ HWTEST_F(RtgTest, setMinUtilSucc, Function | MediumTest | Level1) { int ret; int grpId; - + int pid = getpid(); + vector pids = {}; + pids.push_back(pid); grpId = CreateNewRtgGrp(VIP, 0); ASSERT_GT(grpId, 0); - ret = SetStateParam(CMD_ID_SET_MIN_UTIL, grpId, 0); + ret = AddThreadsToRtg(pids, grpId, VIP); + ASSERT_EQ(ret, 0); + ret = SetStateParam(CMD_ID_SET_MIN_UTIL, 0); ASSERT_EQ(ret, RTG_SUCC); ret = DestroyRtgGrp(grpId); ASSERT_EQ(ret, RTG_SUCC); } /** - * @tc.name: setMinUtilFail - * @tc.desc: Verify set min util function with Error Param. - * @tc.type: FUNC - */ -HWTEST_F(RtgTest, setMinUtilFail, Function | MediumTest | Level1) -{ - int ret; - - ret = SetStateParam(CMD_ID_SET_MIN_UTIL, -1, 0); - ASSERT_NE(ret, RTG_SUCC); -} - -/** - * @tc.name: setMarginSucc - * @tc.desc: Verify set min margin function. + * @tc.name: setMinUtilWithNoAddThreadtoGrp + * @tc.desc: Verify set min util function with NoAddThreadtoGrp. * @tc.type: FUNC */ -HWTEST_F(RtgTest, setMarginSucc, Function | MediumTest | Level1) +HWTEST_F(RtgTest, setMinUtilWithNoAddThreadtoGrp, Function | MediumTest | Level1) { int ret; int grpId; - grpId = CreateNewRtgGrp(VIP, 0); ASSERT_GT(grpId, 0); - ret = SetStateParam(CMD_ID_SET_MARGIN, grpId, 0); - ASSERT_EQ(ret, RTG_SUCC); + ret = SetStateParam(CMD_ID_SET_MIN_UTIL, 0); + ASSERT_NE(ret, RTG_SUCC); ret = DestroyRtgGrp(grpId); ASSERT_EQ(ret, RTG_SUCC); } /** - * @tc.name: setMarginFail - * @tc.desc: Verify set min margin function with error param. - * @tc.type: FUNC - */ -HWTEST_F(RtgTest, setMarginFail, Function | MediumTest | Level1) -{ - int ret; - - ret = SetStateParam(CMD_ID_SET_MARGIN, -1, 0); - ASSERT_NE(ret, RTG_SUCC); -} - -/** - * @tc.name: listRtgThreadSucc - * @tc.desc: Verify list rtg thread function. + * @tc.name: setMarginSucc + * @tc.desc: Verify set min margin function. * @tc.type: FUNC */ -HWTEST_F(RtgTest, ListRtgThreadSucc, Function | MediumTest | Level1) +HWTEST_F(RtgTest, setMarginSucc, Function | MediumTest | Level1) { int ret; int grpId; - vector rs; - + int pid = getpid(); + vector pids = {}; + pids.push_back(pid); grpId = CreateNewRtgGrp(VIP, 0); ASSERT_GT(grpId, 0); - ret = ListRtgThread(grpId, &rs); + ret = AddThreadsToRtg(pids, grpId, VIP); ASSERT_EQ(ret, 0); + ret = SetStateParam(CMD_ID_SET_MARGIN, 0); + ASSERT_EQ(ret, RTG_SUCC); ret = DestroyRtgGrp(grpId); - ASSERT_EQ(ret, 0); + ASSERT_EQ(ret, RTG_SUCC); } /** - * @tc.name: listRtgThreadFail - * @tc.desc: Verify list rtg thread function with null vector input. + * @tc.name: setMarginWithNoAddThreadtoGrp + * @tc.desc: Verify set min margin function with NoAddThreadtoGrp. * @tc.type: FUNC */ -HWTEST_F(RtgTest, ListRtgThreadFail, Function | MediumTest | Level1) +HWTEST_F(RtgTest, setMarginWithNoAddThreadtoGrp, Function | MediumTest | Level1) { int ret; int grpId; - vector rs; - grpId = CreateNewRtgGrp(VIP, 0); ASSERT_GT(grpId, 0); - ret = ListRtgThread(grpId, nullptr); - ASSERT_NE(ret, RTG_SUCC); - ret = ListRtgThread(-1, &rs); + ret = SetStateParam(CMD_ID_SET_MARGIN, 0); ASSERT_NE(ret, RTG_SUCC); ret = DestroyRtgGrp(grpId); ASSERT_EQ(ret, RTG_SUCC); } -/** - * @tc.name: listRtgSucc - * @tc.desc: Verify list rtg function. - * @tc.type: FUNC - */ -HWTEST_F(RtgTest, ListRtgSucc, Function | MediumTest | Level1) -{ - int ret; - vector rs; - - ret = ListRtgGroup(&rs); - ASSERT_EQ(ret, RTG_SUCC); -} - -/** - * @tc.name: listRtgFail - * @tc.desc: Verify list rtg function with error param. - * @tc.type: FUNC - */ -HWTEST_F(RtgTest, ListRtgFail, Function | MediumTest | Level1) -{ - int ret; - - ret = ListRtgGroup(nullptr); - ASSERT_NE(ret, RTG_SUCC); -} - /** * @tc.name: SetRtgAttrSucc * @tc.desc: Verify rtg attr set function. @@ -819,37 +656,6 @@ HWTEST_F(RtgTest, SetRtgAttrFail, Function | MediumTest | Level1) ASSERT_EQ(ret, RTG_SUCC); } -/** - * @tc.name: SetMaxVipRtgSucc - * @tc.desc: Verify rtg max vip num set function. - * @tc.type: FUNC - */ -HWTEST_F(RtgTest, SetMaxVipRtgSucc, Function | MediumTest | Level1) -{ - int ret; - - ret = SetMaxVipRtgs(2); - ASSERT_EQ(ret, RTG_SUCC); -} - -/** - * @tc.name: SetMaxVipRtgFail - * @tc.desc: Verify rtg max vip num set function with error param. - * @tc.type: FUNC - */ -HWTEST_F(RtgTest, SetMaxVipRtgFail, Function | MediumTest | Level1) -{ - int ret; - - // set 0 vip num - ret = SetMaxVipRtgs(0); - ASSERT_NE(ret, RTG_SUCC); - - // set large vip num - ret = SetMaxVipRtgs(50000); - ASSERT_NE(ret, RTG_SUCC); -} - /** * @tc.name: RtgAddMutipleThreadsSucc * @tc.desc: Verify rtg multiple add function. -- Gitee