Index: base/test/launcher/unit_test_launcher.cc |
diff --git a/base/test/launcher/unit_test_launcher.cc b/base/test/launcher/unit_test_launcher.cc |
index ab6fa7220441eab3aebe891150bc934927f098fb..ad7d2c558fd06ea1700c820c72ac3d46c7b5bc2c 100644 |
--- a/base/test/launcher/unit_test_launcher.cc |
+++ b/base/test/launcher/unit_test_launcher.cc |
@@ -145,7 +145,7 @@ bool GetSwitchValueAsInt(const std::string& switch_name, int* result) { |
std::string switch_value = |
CommandLine::ForCurrentProcess()->GetSwitchValueASCII(switch_name); |
- if (!StringToInt(switch_value, result) || *result < 1) { |
+ if (!StringToInt(switch_value, result) || *result < 0) { |
LOG(ERROR) << "Invalid value for " << switch_name << ": " << switch_value; |
return false; |
} |
@@ -155,6 +155,7 @@ bool GetSwitchValueAsInt(const std::string& switch_name, int* result) { |
int LaunchUnitTestsInternal(const RunTestSuiteCallback& run_test_suite, |
int default_jobs, |
+ int default_batch_limit, |
bool use_job_objects, |
const Closure& gtest_init) { |
#if defined(OS_ANDROID) |
@@ -195,7 +196,7 @@ int LaunchUnitTestsInternal(const RunTestSuiteCallback& run_test_suite, |
gtest_init.Run(); |
TestTimeouts::Initialize(); |
- int batch_limit = kDefaultTestBatchLimit; |
+ int batch_limit = default_batch_limit; |
if (!GetSwitchValueAsInt(switches::kTestLauncherBatchLimit, &batch_limit)) |
return 1; |
@@ -420,16 +421,40 @@ int LaunchUnitTests(int argc, |
char** argv, |
const RunTestSuiteCallback& run_test_suite) { |
CommandLine::Init(argc, argv); |
- return LaunchUnitTestsInternal(run_test_suite, SysInfo::NumberOfProcessors(), |
- true, Bind(&InitGoogleTestChar, &argc, argv)); |
+ return LaunchUnitTestsInternal( |
+ run_test_suite, |
+ SysInfo::NumberOfProcessors(), |
+ kDefaultTestBatchLimit, |
+ true, |
+ Bind(&InitGoogleTestChar, &argc, argv)); |
} |
int LaunchUnitTestsSerially(int argc, |
char** argv, |
const RunTestSuiteCallback& run_test_suite) { |
CommandLine::Init(argc, argv); |
- return LaunchUnitTestsInternal(run_test_suite, 1, true, |
- Bind(&InitGoogleTestChar, &argc, argv)); |
+ return LaunchUnitTestsInternal( |
+ run_test_suite, |
+ 1, |
+ kDefaultTestBatchLimit, |
+ true, |
+ Bind(&InitGoogleTestChar, &argc, argv)); |
+} |
+ |
+int LaunchUnitTestsWithOptions( |
+ int argc, |
+ char** argv, |
+ int default_jobs, |
+ int default_batch_limit, |
+ bool use_job_objects, |
+ const RunTestSuiteCallback& run_test_suite) { |
+ CommandLine::Init(argc, argv); |
+ return LaunchUnitTestsInternal( |
+ run_test_suite, |
+ default_jobs, |
+ default_batch_limit, |
+ use_job_objects, |
+ Bind(&InitGoogleTestChar, &argc, argv)); |
} |
#if defined(OS_WIN) |
@@ -439,9 +464,12 @@ int LaunchUnitTests(int argc, |
const RunTestSuiteCallback& run_test_suite) { |
// Windows CommandLine::Init ignores argv anyway. |
CommandLine::Init(argc, NULL); |
- return LaunchUnitTestsInternal(run_test_suite, SysInfo::NumberOfProcessors(), |
- use_job_objects, |
- Bind(&InitGoogleTestWChar, &argc, argv)); |
+ return LaunchUnitTestsInternal( |
+ run_test_suite, |
+ SysInfo::NumberOfProcessors(), |
+ kDefaultTestBatchLimit, |
+ use_job_objects, |
+ Bind(&InitGoogleTestWChar, &argc, argv)); |
} |
#endif // defined(OS_WIN) |