14 static void test_uwrap_setegid_root(void **state)
20 gid_t cp_rgid, cp_egid, cp_sgid;
23 (void) state; /* unused */
26 assert_int_equal(u, 0x0);
28 assert_int_equal(u, 0x0);
31 cp_rgid = cp_egid = cp_sgid = -1;
32 rc = getresgid(&cp_rgid, &cp_egid, &cp_sgid);
33 assert_return_code(rc, errno);
34 assert_int_equal(cp_rgid, 0);
35 assert_int_equal(cp_egid, 0);
36 assert_int_equal(cp_sgid, 0);
40 assert_int_equal(g, 0x0);
43 assert_int_equal(g, 0x0);
46 assert_int_equal(rc, -1);
47 assert_int_equal(errno, EINVAL);
50 assert_return_code(rc, errno);
53 cp_rgid = cp_egid = cp_sgid = -1;
54 rc = getresgid(&cp_rgid, &cp_egid, &cp_sgid);
55 assert_return_code(rc, errno);
56 assert_int_equal(cp_rgid, 0);
57 assert_int_equal(cp_egid, 0x4444);
58 assert_int_equal(cp_sgid, 0);
62 assert_int_equal(g, 0x4444);
65 assert_int_equal(rc, 0);
68 cp_rgid = cp_egid = cp_sgid = -1;
69 rc = getresgid(&cp_rgid, &cp_egid, &cp_sgid);
70 assert_return_code(rc, errno);
71 assert_int_equal(cp_rgid, 0);
72 assert_int_equal(cp_egid, 0);
73 assert_int_equal(cp_sgid, 0);
77 assert_int_equal(g, 0);
80 assert_return_code(rc, errno);
83 cp_rgid = cp_egid = cp_sgid = -1;
84 rc = getresgid(&cp_rgid, &cp_egid, &cp_sgid);
85 assert_return_code(rc, errno);
86 assert_int_equal(cp_rgid, 0);
87 assert_int_equal(cp_egid, 0x5555);
88 assert_int_equal(cp_sgid, 0);
92 assert_int_equal(g, 0x5555);
95 assert_return_code(rc, errno);
98 static void test_uwrap_setegid_user(void **state)
102 #ifdef HAVE_GETRESGID
103 gid_t cp_rgid, cp_egid, cp_sgid;
106 (void) state; /* unused */
109 assert_int_equal(u, 0x0);
111 assert_int_equal(u, 0x0);
113 #ifdef HAVE_GETRESGID
114 cp_rgid = cp_egid = cp_sgid = -1;
115 rc = getresgid(&cp_rgid, &cp_egid, &cp_sgid);
116 assert_return_code(rc, errno);
117 assert_int_equal(cp_rgid, 0);
118 assert_int_equal(cp_egid, 0);
119 assert_int_equal(cp_sgid, 0);
123 assert_return_code(rc, errno);
126 assert_int_equal(u, 0x5555);
128 assert_int_equal(u, 0x5555);
130 #ifdef HAVE_GETRESGID
131 cp_rgid = cp_egid = cp_sgid = -1;
132 rc = getresgid(&cp_rgid, &cp_egid, &cp_sgid);
133 assert_return_code(rc, errno);
134 assert_int_equal(cp_rgid, 0);
135 assert_int_equal(cp_egid, 0);
136 assert_int_equal(cp_sgid, 0);
139 rc = setegid(0x4444);
140 assert_int_equal(rc, -1);
141 assert_int_equal(errno, EPERM);
143 #ifdef HAVE_GETRESGID
144 cp_rgid = cp_egid = cp_sgid = -1;
145 rc = getresgid(&cp_rgid, &cp_egid, &cp_sgid);
146 assert_return_code(rc, errno);
147 assert_int_equal(cp_rgid, 0);
148 assert_int_equal(cp_egid, 0);
149 assert_int_equal(cp_sgid, 0);
153 assert_return_code(rc, errno);
159 const struct CMUnitTest uwrap_tests[] = {
160 cmocka_unit_test(test_uwrap_setegid_root),
161 cmocka_unit_test(test_uwrap_setegid_user),
164 rc = cmocka_run_group_tests(uwrap_tests, NULL, NULL);