14 #ifdef HAVE_SYS_SYSCALL_H
15 #include <sys/syscall.h>
21 static void test_uwrap_syscall_setreuid32(void **state)
26 uid_t cp_ruid, cp_euid, cp_suid;
29 (void) state; /* unused */
32 cp_ruid = cp_euid = cp_suid = -1;
33 rc = getresuid(&cp_ruid, &cp_euid, &cp_suid);
34 assert_return_code(rc, errno);
35 assert_int_equal(cp_ruid, 0);
36 assert_int_equal(cp_euid, 0);
37 assert_int_equal(cp_suid, 0);
40 assert_int_equal(u, 0x0);
42 rc = syscall(SYS_setreuid32, -1, -1);
43 assert_int_equal(rc, 0);
45 rc = setreuid(0x4444, 0x5555);
46 assert_int_equal(rc, 0);
49 cp_ruid = cp_euid = cp_suid = -1;
50 rc = getresuid(&cp_ruid, &cp_euid, &cp_suid);
51 assert_return_code(rc, errno);
52 assert_int_equal(cp_ruid, 0x4444);
53 assert_int_equal(cp_euid, 0x5555);
54 assert_int_equal(cp_suid, 0x5555);
58 assert_int_equal(u, 0x4444);
61 assert_int_equal(u, 0x5555);
63 rc = syscall(SYS_setreuid32, 0, -1);
64 assert_int_equal(rc, -1);
65 assert_int_equal(errno, EPERM);
68 cp_ruid = cp_euid = cp_suid = -1;
69 rc = getresuid(&cp_ruid, &cp_euid, &cp_suid);
70 assert_return_code(rc, errno);
71 assert_int_equal(cp_ruid, 0x4444);
72 assert_int_equal(cp_euid, 0x5555);
73 assert_int_equal(cp_suid, 0x5555);
76 assert_int_equal(u, 0x4444);
79 assert_int_equal(u, 0x5555);
81 rc = syscall(SYS_setreuid32, -1, 0);
82 assert_int_equal(rc, -1);
83 assert_int_equal(errno, EPERM);
86 cp_ruid = cp_euid = cp_suid = -1;
87 rc = getresuid(&cp_ruid, &cp_euid, &cp_suid);
88 assert_return_code(rc, errno);
89 assert_int_equal(cp_ruid, 0x4444);
90 assert_int_equal(cp_euid, 0x5555);
91 assert_int_equal(cp_suid, 0x5555);
98 const struct CMUnitTest uwrap_tests[] = {
99 cmocka_unit_test(test_uwrap_syscall_setreuid32),
102 rc = cmocka_run_group_tests(uwrap_tests, NULL, NULL);