diff options
author | palmer@chromium.org <palmer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-20 07:56:53 +0000 |
---|---|---|
committer | palmer@chromium.org <palmer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-20 07:56:53 +0000 |
commit | 55b490ff5c3e09ba81feff63df5a89e1dd2897eb (patch) | |
tree | 3872856f10faa3125791187f9bf1babeb5d33bb3 | |
parent | 1a5856cdfe5d82c6c4389109d658922420717ccb (diff) | |
download | chromium_src-55b490ff5c3e09ba81feff63df5a89e1dd2897eb.zip chromium_src-55b490ff5c3e09ba81feff63df5a89e1dd2897eb.tar.gz chromium_src-55b490ff5c3e09ba81feff63df5a89e1dd2897eb.tar.bz2 |
Update Linux sandbox tests to pass on Android.
BUG=166704
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/11647024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174116 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | sandbox/linux/seccomp-bpf/sandbox_bpf_unittest.cc | 10 | ||||
-rw-r--r-- | sandbox/linux/services/broker_process_unittest.cc | 22 |
2 files changed, 25 insertions, 7 deletions
diff --git a/sandbox/linux/seccomp-bpf/sandbox_bpf_unittest.cc b/sandbox/linux/seccomp-bpf/sandbox_bpf_unittest.cc index dd5ece0..90ec8ff 100644 --- a/sandbox/linux/seccomp-bpf/sandbox_bpf_unittest.cc +++ b/sandbox/linux/seccomp-bpf/sandbox_bpf_unittest.cc @@ -451,19 +451,21 @@ BPF_TEST(SandboxBpf, SigMask, RedirectAllSyscallsPolicy) { // entirely in the kernel. sigset_t mask0, mask1, mask2; - // Call sigprocmask() to verify that SIGUSR1 wasn't blocked, if we didn't + // Call sigprocmask() to verify that SIGUSR2 wasn't blocked, if we didn't // change the mask (it shouldn't have been, as it isn't blocked by default // in POSIX). + // + // Use SIGUSR2 because Android seems to use SIGUSR1 for some purpose. sigemptyset(&mask0); BPF_ASSERT(!sigprocmask(SIG_BLOCK, &mask0, &mask1)); - BPF_ASSERT(!sigismember(&mask1, SIGUSR1)); + BPF_ASSERT(!sigismember(&mask1, SIGUSR2)); // Try again, and this time we verify that we can block it. This // requires a second call to sigprocmask(). - sigaddset(&mask0, SIGUSR1); + sigaddset(&mask0, SIGUSR2); BPF_ASSERT(!sigprocmask(SIG_BLOCK, &mask0, NULL)); BPF_ASSERT(!sigprocmask(SIG_BLOCK, NULL, &mask2)); - BPF_ASSERT( sigismember(&mask2, SIGUSR1)); + BPF_ASSERT( sigismember(&mask2, SIGUSR2)); } BPF_TEST(SandboxBpf, UnsafeTrapWithErrno, RedirectAllSyscallsPolicy) { diff --git a/sandbox/linux/services/broker_process_unittest.cc b/sandbox/linux/services/broker_process_unittest.cc index 879fe66..7319ae9 100644 --- a/sandbox/linux/services/broker_process_unittest.cc +++ b/sandbox/linux/services/broker_process_unittest.cc @@ -12,6 +12,10 @@ #include <string> #include <vector> +#if defined(OS_ANDROID) +#include "base/android/path_utils.h" +#endif +#include "base/file_path.h" #include "base/logging.h" #include "sandbox/linux/tests/unit_tests.h" #include "testing/gtest/include/gtest/gtest.h" @@ -172,12 +176,24 @@ TEST(BrokerProcess, OpenCpuinfoNoClientCheck) { } TEST(BrokerProcess, OpenFileRW) { - char templatename[] = "BrokerProcessXXXXXX"; - int tempfile = mkstemp(templatename); + const char basename[] = "BrokerProcessXXXXXX"; + char template_name[2048]; +#if defined(OS_ANDROID) + FilePath cache_directory; + ASSERT_TRUE(base::android::GetCacheDirectory(&cache_directory)); + ssize_t length = snprintf(template_name, sizeof(template_name), + "%s%s", + cache_directory.value().c_str(), basename); + ASSERT_LT(length, static_cast<ssize_t>(sizeof(template_name))); +#else + strncpy(template_name, basename, sizeof(basename) - 1); + template_name[sizeof(basename) - 1] = '\0'; +#endif + int tempfile = mkstemp(template_name); ASSERT_GE(tempfile, 0); char tempfile_name[2048]; int written = snprintf(tempfile_name, sizeof(tempfile_name), - "/proc/self/fd/%d", tempfile); + "/proc/self/fd/%d", tempfile); ASSERT_LT(written, static_cast<int>(sizeof(tempfile_name))); std::vector<std::string> whitelist; |