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 761dcfdb9f9431e5242f7503cc2cd257d07c158f..9cd7d7127105ca900e33293f40ec0e9c86c7d9f9 100644 |
--- a/base/test/launcher/unit_test_launcher.cc |
+++ b/base/test/launcher/unit_test_launcher.cc |
@@ -158,7 +158,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; |
} |
@@ -168,6 +168,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) |
@@ -210,7 +211,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; |
@@ -435,16 +436,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) |
@@ -454,9 +479,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) |