10 #include <sys/types.h>
13 #ifdef HAVE_SYS_SYSCALL_H
14 #include <sys/syscall.h>
20 static void test_uwrap_seteuid(void **state)
26 env = getenv("UID_WRAPPER");
28 printf("UID_WRAPPER env not set, uid_wrapper is disabled\n");
32 (void) state; /* unused */
35 assert_int_equal(rc, 0);
38 assert_int_equal(u, 0);
41 assert_int_equal(rc, 0);
44 assert_int_equal(u, 42);
47 static void test_uwrap_setegid(void **state)
53 env = getenv("UID_WRAPPER");
55 printf("UID_WRAPPER env not set, uid_wrapper is disabled\n");
59 (void) state; /* unused */
62 assert_int_equal(rc, 0);
65 assert_int_equal(u, 0);
68 assert_int_equal(rc, 0);
71 assert_int_equal(u, 42);
76 static void test_uwrap_syscall(void **state)
81 env = getenv("UID_WRAPPER");
83 printf("UID_WRAPPER env not set, uid_wrapper is disabled\n");
87 (void) state; /* unused */
89 rc = access(".", R_OK);
90 assert_int_equal(rc, 0);
92 rc = syscall(SYS_access, ".", R_OK);
93 assert_int_equal(rc, 0);
97 static void test_uwrap_syscall_setreuid(void **state)
103 env = getenv("UID_WRAPPER");
105 printf("UID_WRAPPER env not set, uid_wrapper is disabled\n");
109 (void) state; /* unused */
111 rc = syscall(SYS_setreuid, -1, 0);
112 assert_int_equal(rc, 0);
115 assert_int_equal(u, 0);
117 rc = syscall(SYS_setreuid, -1, 42);
118 assert_int_equal(rc, 0);
121 assert_int_equal(u, 42);
124 static void test_uwrap_syscall_setregid(void **state)
130 env = getenv("UID_WRAPPER");
132 printf("UID_WRAPPER env not set, uid_wrapper is disabled\n");
136 (void) state; /* unused */
138 rc = syscall(SYS_setregid, -1, 0);
139 assert_int_equal(rc, 0);
142 assert_int_equal(u, 0);
144 rc = syscall(SYS_setregid, -1, 42);
145 assert_int_equal(rc, 0);
148 assert_int_equal(u, 42);
154 const UnitTest tests[] = {
155 unit_test(test_uwrap_seteuid),
156 unit_test(test_uwrap_setegid),
158 unit_test(test_uwrap_syscall),
160 unit_test(test_uwrap_syscall_setreuid),
161 unit_test(test_uwrap_syscall_setregid),
164 rc = run_tests(tests);