diff --git a/kernel_lite/process_posix/src/UidGidTest.cpp b/kernel_lite/process_posix/src/UidGidTest.cpp index bd70bfc11273b0edc2549285442ff62a01ccf97b..0af720507ee83d5a2de3d8e1c51dfca9b24384ef 100755 --- a/kernel_lite/process_posix/src/UidGidTest.cpp +++ b/kernel_lite/process_posix/src/UidGidTest.cpp @@ -641,11 +641,14 @@ HWTEST_F(UidGidTest, testGetgroups, Function | MediumTest | Level1) gid_t gidList[testSize] = {0}; int n = getgroups(0, gidList); ASSERT_EQ(n, 2); - getgroups(n, gidList); + int rt = getgroups(n, gidList); ASSERT_EQ(gidList[0], SHELL_GID); + ASSERT_EQ(gidList[1], 0); + ASSERT_EQ(rt, n); n = getgroups(testSize, gidList); ASSERT_EQ(n, 2); ASSERT_EQ(gidList[0], SHELL_GID); + ASSERT_EQ(gidList[1], 0); } /** @@ -708,8 +711,10 @@ HWTEST_F(UidGidTest, testSetgroups2, Function | MediumTest | Level1) LOG("Init: make sure groups not changed by other test."); int n = getgroups(0, gidListOut); EXPECT_EQ(n, 2); - getgroups(n, gidListOut); + int rt = getgroups(n, gidListOut); EXPECT_EQ(gidListOut[0], SHELL_GID); + EXPECT_EQ(gidListOut[1], 0); + EXPECT_EQ(rt, n); LOG("add 2 groups"); int rt = setgroups(2, gidListIn); @@ -725,7 +730,8 @@ HWTEST_F(UidGidTest, testSetgroups2, Function | MediumTest | Level1) EXPECT_EQ(rt, 0); n = getgroups(0, gidListOut); EXPECT_EQ(n, 1); - getgroups(n, gidListOut); + rt = getgroups(n, gidListOut); + EXPECT_EQ(rt, n); EXPECT_EQ(gidListOut[0], SHELL_GID); } diff --git a/kernel_lite/process_posix/src/UidGidTest.h b/kernel_lite/process_posix/src/UidGidTest.h index 59857448962bb41bbe69210208176d8b7222e980..89bfd4540805919da8454b5787d6e1c0a1f46fc0 100755 --- a/kernel_lite/process_posix/src/UidGidTest.h +++ b/kernel_lite/process_posix/src/UidGidTest.h @@ -23,6 +23,9 @@ // max test number of uid/gid, not actual max number const int MAX_UGID = 100000; +static int groupNum = -1; +static gid_t groupsArry[10] = {0}; + // Assert all uid == expectUid #define AssertAllUid(expectUid) do { \ @@ -54,17 +57,25 @@ public: return id; } protected: + static void SetUpTestCase() { + for (int i = 0; i < 10; i++) { + groupsArry[i] = -1; + } + groupNum = getgroups(0, groupsArry); + EXPECT_NE(groupNum, -1); + } void TearDown() { LOG("TearDown: reset uid and gid"); - gid_t gidList[2]; - gidList[0] = SHELL_UID; - gidList[1] = 0; + // gid_t gidList[2]; + // gidList[0] = SHELL_UID; + // gidList[1] = 0; setuid(SHELL_UID); setgid(SHELL_GID); AssertAllUid(SHELL_UID); AssertAllGid(SHELL_GID); - int rt = setgroups(2, gidList); + int rt = setgroups(groupNum, groupsArry); + EXPECT_EQ(rt, 0); } };