summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-03 00:50:33 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-03 00:50:33 +0000
commit4cbafd3a738558dd71be58737ce3502595d43a7d (patch)
tree2c4fe0112b6e78682e7b02aa412e917d619974b9
parent2bd2c037fc6edbf605e1924de26b15b9a21729bc (diff)
downloadchromium_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.cc26
-rw-r--r--base/test/launcher/unit_test_launcher.h5
-rw-r--r--ipc/ipc.gyp2
-rw-r--r--ipc/run_all_unittests.cc40
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));
+}