summaryrefslogtreecommitdiffstats
path: root/sandbox
diff options
context:
space:
mode:
authorjln@chromium.org <jln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-02 02:54:53 +0000
committerjln@chromium.org <jln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-02 02:54:53 +0000
commit72a083f4725655d12b2ecca1f32b27c63e39122c (patch)
treea36ca474297766d9b13baf2b9e9db567d4dab59a /sandbox
parent99768ba4305ae1dea24a84ca90e417709aa8eaf9 (diff)
downloadchromium_src-72a083f4725655d12b2ecca1f32b27c63e39122c.zip
chromium_src-72a083f4725655d12b2ecca1f32b27c63e39122c.tar.gz
chromium_src-72a083f4725655d12b2ecca1f32b27c63e39122c.tar.bz2
Linux sandbox: Make the test run on Android as Native executable
Make it possible to run the tests via run_tests.py --exe. BUG=169416 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/12093055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180236 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sandbox')
-rw-r--r--sandbox/linux/sandbox_linux.gypi57
-rw-r--r--sandbox/linux/sandbox_linux_test_sources.gypi38
-rw-r--r--sandbox/linux/services/broker_process_unittest.cc9
3 files changed, 67 insertions, 37 deletions
diff --git a/sandbox/linux/sandbox_linux.gypi b/sandbox/linux/sandbox_linux.gypi
index a223feb..ae7769f 100644
--- a/sandbox/linux/sandbox_linux.gypi
+++ b/sandbox/linux/sandbox_linux.gypi
@@ -65,41 +65,26 @@
],
},
{
+ # The main sandboxing test target.
'target_name': 'sandbox_linux_unittests',
- 'type': '<(gtest_target_type)',
- 'dependencies': [
- 'sandbox',
- '../testing/gtest.gyp:gtest',
- ],
- 'sources': [
- 'tests/main.cc',
- 'tests/unit_tests.cc',
- 'tests/unit_tests.h',
- 'services/broker_process_unittest.cc',
+ 'includes': [
+ 'sandbox_linux_test_sources.gypi',
],
- 'include_dirs': [
- '../..',
+ 'type': 'executable',
+ },
+ {
+ # This target is the shared library used by Android APK (i.e.
+ # JNI-friendly) tests.
+ 'target_name': 'sandbox_linux_jni_unittests',
+ 'includes': [
+ 'sandbox_linux_test_sources.gypi',
],
+ 'type': 'shared_library',
'conditions': [
- [ 'compile_suid_client==1', {
- 'sources': [
- 'suid/client/setuid_sandbox_client_unittest.cc',
- ],
- }],
- [ 'compile_seccomp_bpf==1', {
- 'sources': [
- 'seccomp-bpf/bpf_tests.h',
- 'seccomp-bpf/codegen_unittest.cc',
- 'seccomp-bpf/errorcode_unittest.cc',
- 'seccomp-bpf/sandbox_bpf_unittest.cc',
- 'seccomp-bpf/syscall_iterator_unittest.cc',
- 'seccomp-bpf/syscall_unittest.cc',
- ],
- }],
- ['OS == "android" and gtest_target_type == "shared_library"', {
+ [ 'OS == "android" and gtest_target_type == "shared_library"', {
'dependencies': [
'../testing/android/native_test.gyp:native_test_native_code',
- ]
+ ],
}],
],
},
@@ -216,24 +201,24 @@
'..',
],
},
-
],
'conditions': [
# Strategy copied from base_unittests_apk in base/base.gyp.
[ 'OS=="android" and gtest_target_type == "shared_library"', {
'targets': [
{
- 'target_name': 'sandbox_linux_unittests_apk',
+ 'target_name': 'sandbox_linux_jni_unittests_apk',
'type': 'none',
- 'dependencies': [
- 'sandbox_linux_unittests',
- ],
'variables': {
- 'test_suite_name': 'sandbox_linux_unittests',
+ 'test_suite_name': 'sandbox_linux_jni_unittests',
'input_shlib_path':
- '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)sandbox_linux_unittests'
+ '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)'
+ 'sandbox_linux_jni_unittests'
'<(SHARED_LIB_SUFFIX)',
},
+ 'dependencies': [
+ 'sandbox_linux_jni_unittests',
+ ],
'includes': [ '../../build/apk_test.gypi' ],
}
],
diff --git a/sandbox/linux/sandbox_linux_test_sources.gypi b/sandbox/linux/sandbox_linux_test_sources.gypi
new file mode 100644
index 0000000..0bc0aa1
--- /dev/null
+++ b/sandbox/linux/sandbox_linux_test_sources.gypi
@@ -0,0 +1,38 @@
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Tests need to be compiled in the same link unit, so we have to list them
+# in a separate .gypi file.
+{
+ 'dependencies': [
+ 'sandbox',
+ '../testing/gtest.gyp:gtest',
+ ],
+ 'include_dirs': [
+ '../..',
+ ],
+ 'sources': [
+ 'tests/main.cc',
+ 'tests/unit_tests.cc',
+ 'tests/unit_tests.h',
+ 'services/broker_process_unittest.cc',
+ ],
+ 'conditions': [
+ [ 'compile_suid_client==1', {
+ 'sources': [
+ 'suid/client/setuid_sandbox_client_unittest.cc',
+ ],
+ }],
+ [ 'compile_seccomp_bpf==1', {
+ 'sources': [
+ 'seccomp-bpf/bpf_tests.h',
+ 'seccomp-bpf/codegen_unittest.cc',
+ 'seccomp-bpf/errorcode_unittest.cc',
+ 'seccomp-bpf/sandbox_bpf_unittest.cc',
+ 'seccomp-bpf/syscall_iterator_unittest.cc',
+ 'seccomp-bpf/syscall_unittest.cc',
+ ],
+ }],
+ ],
+}
diff --git a/sandbox/linux/services/broker_process_unittest.cc b/sandbox/linux/services/broker_process_unittest.cc
index 84ba340..4f2a640 100644
--- a/sandbox/linux/services/broker_process_unittest.cc
+++ b/sandbox/linux/services/broker_process_unittest.cc
@@ -22,6 +22,12 @@
namespace sandbox {
+#if defined(OS_ANDROID)
+ #define DISABLE_ON_ANDROID(function) DISABLED_##function
+#else
+ #define DISABLE_ON_ANDROID(function) function
+#endif
+
TEST(BrokerProcess, CreateAndDestroy) {
std::vector<std::string> read_whitelist;
read_whitelist.push_back("/proc/cpuinfo");
@@ -188,7 +194,8 @@ TEST(BrokerProcess, OpenCpuinfoNoClientCheck) {
// expected.
}
-TEST(BrokerProcess, OpenFileRW) {
+// Disabled until we implement a mkstemp that doesn't require JNI.
+TEST(BrokerProcess, DISABLE_ON_ANDROID(OpenFileRW)) {
const char basename[] = "BrokerProcessXXXXXX";
char template_name[2048];
#if defined(OS_ANDROID)