Index: base/test/test_launcher.cc |
diff --git a/base/test/test_launcher.cc b/base/test/test_launcher.cc |
index a70570c9780bd79f2658aef3786ba73cf91ad8fd..4a327d114844373f703e5c13755ad6bedcdf9ef8 100644 |
--- a/base/test/test_launcher.cc |
+++ b/base/test/test_launcher.cc |
@@ -277,6 +277,7 @@ bool RunTests(TestLauncherDelegate* launcher_delegate, |
} |
int num_runnable_tests = 0; |
+ size_t num_started_tests = 0; |
ResultsPrinter printer(*command_line); |
for (int i = 0; i < unit_test->total_test_case_count(); ++i) { |
@@ -305,10 +306,11 @@ bool RunTests(TestLauncherDelegate* launcher_delegate, |
bool should_run = ShouldRunTestOnShard(total_shards, shard_index, |
num_runnable_tests); |
- num_runnable_tests += 1; |
+ num_runnable_tests++; |
if (!should_run) |
continue; |
+ num_started_tests++; |
launcher_delegate->RunTest(test_case, |
test_info, |
base::Bind( |
@@ -319,20 +321,33 @@ bool RunTests(TestLauncherDelegate* launcher_delegate, |
launcher_delegate->RunRemainingTests(); |
+ bool result = true; |
+ |
printf("%" PRIuS " test%s run\n", |
printer.test_run_count(), |
printer.test_run_count() > 1 ? "s" : ""); |
printf("%" PRIuS " test%s failed\n", |
printer.failed_tests().size(), |
printer.failed_tests().size() != 1 ? "s" : ""); |
- if (printer.failed_tests().empty()) |
- return true; |
+ if (num_started_tests != printer.test_run_count()) { |
+ result = false; |
+ // TODO(phajdan.jr): Print more detailed info which test results |
+ // are missing or superfluous. |
+ printf("BUG: %" PRIuS " tests started but only got results for %" PRIuS |
+ " tests back.\n", num_started_tests, printer.test_run_count()); |
+ } |
+ |
+ if (!printer.failed_tests().empty()) { |
+ result = false; |
- printf("Failing tests:\n"); |
- for (size_t i = 0; i < printer.failed_tests().size(); ++i) |
- printf("%s\n", printer.failed_tests()[i].c_str()); |
+ printf("Failing tests:\n"); |
+ for (size_t i = 0; i < printer.failed_tests().size(); ++i) |
+ printf("%s\n", printer.failed_tests()[i].c_str()); |
+ } |
+ |
+ fflush(stdout); |
- return false; |
+ return result; |
} |
} // namespace |
@@ -345,7 +360,7 @@ const char kGTestOutputFlag[] = "gtest_output"; |
const char kHelpFlag[] = "help"; |
-TestResult::TestResult() { |
+TestResult::TestResult() : success(false), crashed(false) { |
} |
TestLauncherDelegate::~TestLauncherDelegate() { |