14 #ifdef HAVE_SYS_SYSCALL_H
15 #include <sys/syscall.h>
21 static void test_uwrap_syscall_setreuid(void **state)
26 uid_t cp_ruid, cp_euid, cp_suid;
29 (void) state; /* unused */
32 assert_int_equal(u, 0);
34 assert_int_equal(u, 0);
37 cp_ruid = cp_euid = cp_suid = -1;
38 rc = syscall(SYS_getresuid, &cp_ruid, &cp_euid, &cp_suid);
39 assert_return_code(rc, errno);
40 assert_int_equal(cp_ruid, 0);
41 assert_int_equal(cp_euid, 0);
42 assert_int_equal(cp_suid, 0);
45 rc = syscall(SYS_setreuid, -1, -1);
46 assert_return_code(rc, errno);
49 cp_ruid = cp_euid = cp_suid = -1;
50 rc = syscall(SYS_getresuid, &cp_ruid, &cp_euid, &cp_suid);
51 assert_return_code(rc, errno);
52 assert_int_equal(cp_ruid, 0);
53 assert_int_equal(cp_euid, 0);
54 assert_int_equal(cp_suid, 0);
57 rc = syscall(SYS_setreuid, 0x4444, 0x5555);
58 assert_return_code(rc, errno);
61 assert_int_equal(u, 0x4444);
64 assert_int_equal(u, 0x5555);
65 #ifdef SYS_geteuid /* not available on Solaris */
66 assert_int_equal(u, syscall(SYS_geteuid));
69 rc = syscall(SYS_setreuid, -1, 0x6666);
70 assert_int_equal(rc, -1);
76 const struct CMUnitTest uwrap_tests[] = {
77 cmocka_unit_test(test_uwrap_syscall_setreuid),
80 rc = cmocka_run_group_tests(uwrap_tests, NULL, NULL);