diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-03 00:50:33 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-03 00:50:33 +0000 |
commit | 4cbafd3a738558dd71be58737ce3502595d43a7d (patch) | |
tree | 2c4fe0112b6e78682e7b02aa412e917d619974b9 | |
parent | 2bd2c037fc6edbf605e1924de26b15b9a21729bc (diff) | |
download | chromium_src-4cbafd3a738558dd71be58737ce3502595d43a7d.zip chromium_src-4cbafd3a738558dd71be58737ce3502595d43a7d.tar.gz chromium_src-4cbafd3a738558dd71be58737ce3502595d43a7d.tar.bz2 |
Run ipc_tests serially when using new test launcher.
On Windows they would hit resource contention issues
otherwise and run slower than serially.
Run time is in seconds anyway.
BUG=236893
R=jeremy@chromium.org
Review URL: https://codereview.chromium.org/93663002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238251 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | base/test/launcher/unit_test_launcher.cc | 26 | ||||
-rw-r--r-- | base/test/launcher/unit_test_launcher.h | 5 | ||||
-rw-r--r-- | ipc/ipc.gyp | 2 | ||||
-rw-r--r-- | ipc/run_all_unittests.cc | 40 |
4 files changed, 66 insertions, 7 deletions
diff --git a/base/test/launcher/unit_test_launcher.cc b/base/test/launcher/unit_test_launcher.cc index 8a57d17..a265f02 100644 --- a/base/test/launcher/unit_test_launcher.cc +++ b/base/test/launcher/unit_test_launcher.cc @@ -442,11 +442,10 @@ bool GetSwitchValueAsInt(const std::string& switch_name, int* result) { return true; } -} // namespace - -int LaunchUnitTests(int argc, - char** argv, - const RunTestSuiteCallback& run_test_suite) { +int LaunchUnitTestsInternal(int argc, + char** argv, + const RunTestSuiteCallback& run_test_suite, + int default_jobs) { CommandLine::Init(argc, argv); if (CommandLine::ForCurrentProcess()->HasSwitch(kGTestHelpFlag) || CommandLine::ForCurrentProcess()->HasSwitch(kSingleProcessTestsFlag) || @@ -477,7 +476,7 @@ int LaunchUnitTests(int argc, MessageLoopForIO message_loop; - base::UnitTestLauncherDelegate delegate(batch_limit); + UnitTestLauncherDelegate delegate(batch_limit); base::TestLauncher launcher(&delegate, SysInfo::NumberOfProcessors()); bool success = launcher.Run(argc, argv); @@ -489,4 +488,19 @@ int LaunchUnitTests(int argc, return (success ? 0 : 1); } +} // namespace + +int LaunchUnitTests(int argc, + char** argv, + const RunTestSuiteCallback& run_test_suite) { + return LaunchUnitTestsInternal( + argc, argv, run_test_suite, SysInfo::NumberOfProcessors()); +} + +int LaunchUnitTestsSerially(int argc, + char** argv, + const RunTestSuiteCallback& run_test_suite) { + return LaunchUnitTestsInternal(argc, argv, run_test_suite, 1); +} + } // namespace base diff --git a/base/test/launcher/unit_test_launcher.h b/base/test/launcher/unit_test_launcher.h index a2afdb2..05edc69 100644 --- a/base/test/launcher/unit_test_launcher.h +++ b/base/test/launcher/unit_test_launcher.h @@ -17,6 +17,11 @@ int LaunchUnitTests(int argc, char** argv, const RunTestSuiteCallback& run_test_suite); +// Same as above, but always runs tests serially. +int LaunchUnitTestsSerially(int argc, + char** argv, + const RunTestSuiteCallback& run_test_suite); + } // namespace base #endif // BASE_TEST_LAUNCHER_UNIT_TEST_LAUNCHER_H_ diff --git a/ipc/ipc.gyp b/ipc/ipc.gyp index a247651..ace836b 100644 --- a/ipc/ipc.gyp +++ b/ipc/ipc.gyp @@ -37,7 +37,6 @@ 'test_support_ipc', '../base/base.gyp:base', '../base/base.gyp:base_i18n', - '../base/base.gyp:run_all_unittests', '../base/base.gyp:test_support_base', '../testing/gtest.gyp:gtest', ], @@ -57,6 +56,7 @@ 'ipc_sync_message_unittest.h', 'ipc_test_base.cc', 'ipc_test_base.h', + 'run_all_unittests.cc', 'sync_socket_unittest.cc', 'unix_domain_socket_util_unittest.cc', ], diff --git a/ipc/run_all_unittests.cc b/ipc/run_all_unittests.cc new file mode 100644 index 0000000..d36f871 --- /dev/null +++ b/ipc/run_all_unittests.cc @@ -0,0 +1,40 @@ +// Copyright 2013 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. + +#include "base/at_exit.h" +#include "base/bind.h" +#include "base/test/launcher/unit_test_launcher.h" +#include "base/test/test_suite.h" + +#if defined(OS_ANDROID) +#include "base/android/jni_android.h" +#include "base/test/test_file_util.h" +#endif + +namespace { + +class NoAtExitBaseTestSuite : public base::TestSuite { + public: + NoAtExitBaseTestSuite(int argc, char** argv) + : base::TestSuite(argc, argv, false) { + } +}; + +int RunTestSuite(int argc, char** argv) { + return NoAtExitBaseTestSuite(argc, argv).Run(); +} + +} // namespace + +int main(int argc, char** argv) { +#if defined(OS_ANDROID) + JNIEnv* env = base::android::AttachCurrentThread(); + file_util::RegisterContentUriTestUtils(env); +#else + base::AtExitManager at_exit; +#endif + return base::LaunchUnitTestsSerially(argc, + argv, + base::Bind(&RunTestSuite, argc, argv)); +} |