diff options
author | jln@chromium.org <jln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-02 02:54:53 +0000 |
---|---|---|
committer | jln@chromium.org <jln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-02 02:54:53 +0000 |
commit | 72a083f4725655d12b2ecca1f32b27c63e39122c (patch) | |
tree | a36ca474297766d9b13baf2b9e9db567d4dab59a /sandbox | |
parent | 99768ba4305ae1dea24a84ca90e417709aa8eaf9 (diff) | |
download | chromium_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.gypi | 57 | ||||
-rw-r--r-- | sandbox/linux/sandbox_linux_test_sources.gypi | 38 | ||||
-rw-r--r-- | sandbox/linux/services/broker_process_unittest.cc | 9 |
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) |