diff options
author | phoglund <phoglund@webrtc.org> | 2016-01-08 05:04:57 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-08 13:05:01 +0000 |
commit | 37ebcf0ce5ad1685bcf659ea75960beb96019647 (patch) | |
tree | 3253e50cbc9204438e139d4356e0fe1b0d38a0b1 /webrtc | |
parent | b71b4f0c7af57ef5b676c6ed70bf945282c90e3a (diff) | |
download | webrtc-37ebcf0ce5ad1685bcf659ea75960beb96019647.tar.gz |
Reland "Add APK targets to build libjingle tests for Android."
patchset #10 id:180001 of https://codereview.webrtc.org/1511633002/
This reverts commit bc14164aad254e72ce4d1e381b912b7d3acf5391.
We have made more preparations downstream, so this should work now. Original CL by perkj@.
BUG=webrtc:2365
The work started from the work by kjellander@ in https://codereview.webrtc.org/1413663003/
Review URL: https://codereview.webrtc.org/1570513004
Cr-Commit-Position: refs/heads/master@{#11186}
Diffstat (limited to 'webrtc')
-rwxr-xr-x | webrtc/build/android/test_runner.py | 2 | ||||
-rw-r--r-- | webrtc/build/apk_test.gypi | 40 | ||||
-rw-r--r-- | webrtc/build/apk_tests.gyp | 17 | ||||
-rw-r--r-- | webrtc/build/apk_tests_noop.gyp | 4 | ||||
-rw-r--r-- | webrtc/system_wrappers/include/field_trial_default.h | 2 | ||||
-rw-r--r-- | webrtc/system_wrappers/source/field_trial_default.cc | 4 | ||||
-rw-r--r-- | webrtc/test/BUILD.gn | 1 | ||||
-rw-r--r-- | webrtc/test/field_trial.cc | 36 | ||||
-rw-r--r-- | webrtc/test/field_trial.h | 3 | ||||
-rw-r--r-- | webrtc/test/test.gyp | 1 |
10 files changed, 86 insertions, 24 deletions
diff --git a/webrtc/build/android/test_runner.py b/webrtc/build/android/test_runner.py index 5b3f3d9e74..78a7a190b2 100755 --- a/webrtc/build/android/test_runner.py +++ b/webrtc/build/android/test_runner.py @@ -38,6 +38,8 @@ def main(): 'webrtc/common_audio/common_audio_unittests.isolate', 'common_video_unittests': 'webrtc/common_video/common_video_unittests.isolate', + 'libjingle_peerconnection_unittest': + 'talk/libjingle_peerconnection_unittest.isolate', 'modules_tests': 'webrtc/modules/modules_tests.isolate', 'modules_unittests': 'webrtc/modules/modules_unittests.isolate', 'rtc_unittests': 'webrtc/rtc_unittests.isolate', diff --git a/webrtc/build/apk_test.gypi b/webrtc/build/apk_test.gypi new file mode 100644 index 0000000000..a41e436a48 --- /dev/null +++ b/webrtc/build/apk_test.gypi @@ -0,0 +1,40 @@ +# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. +# +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file in the root of the source +# tree. An additional intellectual property rights grant can be found +# in the file PATENTS. All contributing project authors may +# be found in the AUTHORS file in the root of the source tree. + +# This is almost an identical copy of src/build/apk_test.gypi with minor +# modifications to allow test executables starting with "lib". +# See http://crbug.com/543820 for more details. + +{ + 'dependencies': [ + '<(DEPTH)/base/base.gyp:base_java', + '<(DEPTH)/build/android/pylib/device/commands/commands.gyp:chromium_commands', + '<(DEPTH)/build/android/pylib/remote/device/dummy/dummy.gyp:remote_device_dummy_apk', + '<(DEPTH)/testing/android/appurify_support.gyp:appurify_support_java', + '<(DEPTH)/testing/android/on_device_instrumentation.gyp:reporter_java', + '<(DEPTH)/tools/android/android_tools.gyp:android_tools', + ], + 'conditions': [ + ['OS == "android"', { + 'variables': { + # These are used to configure java_apk.gypi included below. + 'test_type': 'gtest', + 'apk_name': '<(test_suite_name)', + 'intermediate_dir': '<(PRODUCT_DIR)/<(test_suite_name)_apk', + 'final_apk_path': '<(intermediate_dir)/<(test_suite_name)-debug.apk', + 'java_in_dir': '<(DEPTH)/testing/android/native_test/java', + 'native_lib_target': '<(test_suite_name)', + 'gyp_managed_install': 0, + }, + 'includes': [ + '../../build/java_apk.gypi', + '../../build/android/test_runner.gypi', + ], + }], # 'OS == "android" + ], # conditions +} diff --git a/webrtc/build/apk_tests.gyp b/webrtc/build/apk_tests.gyp index fe05c0848a..02a13421f9 100644 --- a/webrtc/build/apk_tests.gyp +++ b/webrtc/build/apk_tests.gyp @@ -61,6 +61,23 @@ ], }, { + 'target_name': 'libjingle_peerconnection_unittest_apk', + 'type': 'none', + 'variables': { + 'test_suite_name': 'libjingle_peerconnection_unittest', + 'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)libjingle_peerconnection_unittest<(SHARED_LIB_SUFFIX)', + }, + 'dependencies': [ + '<(DEPTH)/talk/libjingle_tests.gyp:libjingle_peerconnection_unittest', + '<(DEPTH)/talk/libjingle.gyp:libjingle_peerconnection_java', + ], + 'includes': [ + # Use webrtc copy of apk_test.gypi to allow test executables starting + # with "lib". See http://crbug.com/543820 for more details. + '../build/apk_test.gypi', + ], + }, + { 'target_name': 'modules_tests_apk', 'type': 'none', 'variables': { diff --git a/webrtc/build/apk_tests_noop.gyp b/webrtc/build/apk_tests_noop.gyp index 489f2eea63..ed9249aec5 100644 --- a/webrtc/build/apk_tests_noop.gyp +++ b/webrtc/build/apk_tests_noop.gyp @@ -22,6 +22,10 @@ 'type': 'none', }, { + 'target_name': 'libjingle_peerconnection_unittest_apk', + 'type': 'none', + }, + { 'target_name': 'modules_tests_apk', 'type': 'none', }, diff --git a/webrtc/system_wrappers/include/field_trial_default.h b/webrtc/system_wrappers/include/field_trial_default.h index d098ea1d91..7417ced39d 100644 --- a/webrtc/system_wrappers/include/field_trial_default.h +++ b/webrtc/system_wrappers/include/field_trial_default.h @@ -20,6 +20,8 @@ namespace field_trial { // Note: trials_string must never be destroyed. void InitFieldTrialsFromString(const char* trials_string); +const char* GetFieldTrialString(); + } // namespace field_trial } // namespace webrtc diff --git a/webrtc/system_wrappers/source/field_trial_default.cc b/webrtc/system_wrappers/source/field_trial_default.cc index 1a9bd6bc79..0e2c286117 100644 --- a/webrtc/system_wrappers/source/field_trial_default.cc +++ b/webrtc/system_wrappers/source/field_trial_default.cc @@ -58,5 +58,9 @@ void InitFieldTrialsFromString(const char* trials_string) { trials_init_string = trials_string; } +const char* GetFieldTrialString() { + return trials_init_string; +} + } // namespace field_trial } // namespace webrtc diff --git a/webrtc/test/BUILD.gn b/webrtc/test/BUILD.gn index b4dba1e37f..3ecd903522 100644 --- a/webrtc/test/BUILD.gn +++ b/webrtc/test/BUILD.gn @@ -27,6 +27,7 @@ source_set("field_trial") { deps = [ "..:webrtc_common", "../system_wrappers", + "../system_wrappers:field_trial_default", ] configs += [ "..:common_config" ] diff --git a/webrtc/test/field_trial.cc b/webrtc/test/field_trial.cc index 613fb67679..c40d0783d8 100644 --- a/webrtc/test/field_trial.cc +++ b/webrtc/test/field_trial.cc @@ -18,27 +18,13 @@ #include <string> #include "webrtc/system_wrappers/include/field_trial.h" +#include "webrtc/system_wrappers/include/field_trial_default.h" namespace webrtc { namespace { -// Clients of this library have show a clear intent to setup field trials by -// linking with it. As so try to crash if they forget to call -// InitFieldTrialsFromString before webrtc tries to access a field trial. bool field_trials_initiated_ = false; -std::map<std::string, std::string> field_trials_; } // namespace -namespace field_trial { -std::string FindFullName(const std::string& trial_name) { - assert(field_trials_initiated_); - std::map<std::string, std::string>::const_iterator it = - field_trials_.find(trial_name); - if (it == field_trials_.end()) - return std::string(); - return it->second; -} -} // namespace field_trial - namespace test { // Note: this code is copied from src/base/metrics/field_trial.cc since the aim // is to mimic chromium --force-fieldtrials. @@ -53,6 +39,7 @@ void InitFieldTrialsFromString(const std::string& trials_string) { return; size_t next_item = 0; + std::map<std::string, std::string> field_trials; while (next_item < trials_string.length()) { size_t name_end = trials_string.find(kPersistentStringSeparator, next_item); if (name_end == trials_string.npos || next_item == name_end) @@ -67,15 +54,18 @@ void InitFieldTrialsFromString(const std::string& trials_string) { next_item = group_name_end + 1; // Fail if duplicate with different group name. - if (field_trials_.find(name) != field_trials_.end() && - field_trials_.find(name)->second != group_name) + if (field_trials.find(name) != field_trials.end() && + field_trials.find(name)->second != group_name) { break; + } - field_trials_[name] = group_name; + field_trials[name] = group_name; // Successfully parsed all field trials from the string. - if (next_item == trials_string.length()) + if (next_item == trials_string.length()) { + webrtc::field_trial::InitFieldTrialsFromString(trials_string.c_str()); return; + } } // Using fprintf as LOG does not print when this is called early in main. fprintf(stderr, "Invalid field trials string.\n"); @@ -85,18 +75,18 @@ void InitFieldTrialsFromString(const std::string& trials_string) { } ScopedFieldTrials::ScopedFieldTrials(const std::string& config) - : previous_field_trials_(field_trials_) { + : previous_field_trials_(webrtc::field_trial::GetFieldTrialString()) { assert(field_trials_initiated_); field_trials_initiated_ = false; - field_trials_.clear(); - InitFieldTrialsFromString(config); + current_field_trials_ = config; + InitFieldTrialsFromString(current_field_trials_); } ScopedFieldTrials::~ScopedFieldTrials() { // Should still be initialized, since InitFieldTrials is called from ctor. // That's why we don't restore the flag. assert(field_trials_initiated_); - field_trials_ = previous_field_trials_; + webrtc::field_trial::InitFieldTrialsFromString(previous_field_trials_); } } // namespace test diff --git a/webrtc/test/field_trial.h b/webrtc/test/field_trial.h index d448f3411d..735aa1f833 100644 --- a/webrtc/test/field_trial.h +++ b/webrtc/test/field_trial.h @@ -39,7 +39,8 @@ class ScopedFieldTrials { explicit ScopedFieldTrials(const std::string& config); ~ScopedFieldTrials(); private: - const std::map<std::string, std::string> previous_field_trials_; + std::string current_field_trials_; + const char* previous_field_trials_; }; } // namespace test diff --git a/webrtc/test/test.gyp b/webrtc/test/test.gyp index 8f04ce8fde..5bb7793842 100644 --- a/webrtc/test/test.gyp +++ b/webrtc/test/test.gyp @@ -97,6 +97,7 @@ ], 'dependencies': [ '<(webrtc_root)/common.gyp:webrtc_common', + '<(webrtc_root)/system_wrappers/system_wrappers.gyp:field_trial_default', '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers', ], }, |