summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpalmer@chromium.org <palmer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-20 07:56:53 +0000
committerpalmer@chromium.org <palmer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-20 07:56:53 +0000
commit55b490ff5c3e09ba81feff63df5a89e1dd2897eb (patch)
tree3872856f10faa3125791187f9bf1babeb5d33bb3
parent1a5856cdfe5d82c6c4389109d658922420717ccb (diff)
downloadchromium_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.cc10
-rw-r--r--sandbox/linux/services/broker_process_unittest.cc22
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;