Index: sandbox/linux/services/syscall_wrappers_unittest.cc |
diff --git a/sandbox/linux/services/syscall_wrappers_unittest.cc b/sandbox/linux/services/syscall_wrappers_unittest.cc |
index a8b48fe586f04677a4add441b47a5dd2f42986d4..1878ff3fe792afb9d5a83b0d7a9558c2ae56080a 100644 |
--- a/sandbox/linux/services/syscall_wrappers_unittest.cc |
+++ b/sandbox/linux/services/syscall_wrappers_unittest.cc |
@@ -8,11 +8,13 @@ |
#include <sys/types.h> |
#include <sys/wait.h> |
#include <unistd.h> |
+#include <cstring> |
#include "base/logging.h" |
#include "base/posix/eintr_wrapper.h" |
#include "base/third_party/valgrind/valgrind.h" |
#include "build/build_config.h" |
+#include "sandbox/linux/system_headers/linux_signal.h" |
#include "sandbox/linux/tests/test_utils.h" |
#include "sandbox/linux/tests/unit_tests.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -60,6 +62,38 @@ TEST(SyscallWrappers, CloneChildSettid) { |
EXPECT_EQ(kSuccessExit, WEXITSTATUS(status)); |
} |
+TEST(SyscallWrappers, GetRESUid) { |
+ uid_t ruid, euid, suid; |
+ uid_t sys_ruid, sys_euid, sys_suid; |
+ ASSERT_EQ(0, getresuid(&ruid, &euid, &suid)); |
+ ASSERT_EQ(0, sys_getresuid(&sys_ruid, &sys_euid, &sys_suid)); |
+ EXPECT_EQ(ruid, sys_ruid); |
+ EXPECT_EQ(euid, sys_euid); |
+ EXPECT_EQ(suid, sys_suid); |
+} |
+ |
+TEST(SyscallWrappers, GetRESGid) { |
+ gid_t rgid, egid, sgid; |
+ gid_t sys_rgid, sys_egid, sys_sgid; |
+ ASSERT_EQ(0, getresgid(&rgid, &egid, &sgid)); |
+ ASSERT_EQ(0, sys_getresgid(&sys_rgid, &sys_egid, &sys_sgid)); |
+ EXPECT_EQ(rgid, sys_rgid); |
+ EXPECT_EQ(egid, sys_egid); |
+ EXPECT_EQ(sgid, sys_sgid); |
+} |
+ |
+TEST(SyscallWrappers, LinuxSigSet) { |
+ sigset_t sigset; |
+ ASSERT_EQ(0, sigemptyset(&sigset)); |
+ ASSERT_EQ(0, sigaddset(&sigset, LINUX_SIGSEGV)); |
+ ASSERT_EQ(0, sigaddset(&sigset, LINUX_SIGBUS)); |
+ uint64_t linux_sigset = 0; |
+ std::memcpy(&linux_sigset, &sigset, |
+ std::min(sizeof(sigset), sizeof(linux_sigset))); |
+ EXPECT_EQ((1ULL << (LINUX_SIGSEGV - 1)) | (1ULL << (LINUX_SIGBUS - 1)), |
+ linux_sigset); |
+} |
+ |
} // namespace |
} // namespace sandbox |