Index: build/android/pylib/test_result.py |
diff --git a/build/android/pylib/test_result.py b/build/android/pylib/test_result.py |
index 00d139caf8e3592815adfdca218d0e2cad809a02..d6074f92b8f1acafde567050fd98d6e0735b77c0 100644 |
--- a/build/android/pylib/test_result.py |
+++ b/build/android/pylib/test_result.py |
@@ -125,7 +125,7 @@ class TestResults(object): |
"""Returns the all broken tests including failed, crashed, unknown.""" |
return self.failed + self.crashed + self.unknown |
- def LogFull(self, test_group, test_suite, build_type): |
+ def LogFull(self, test_group, test_suite, build_type, tests_to_run): |
"""Output broken test logs, summarize in a log file and the test output.""" |
# Output all broken tests or 'passed' if none broken. |
logging.critical('*' * 80) |
@@ -176,24 +176,33 @@ class TestResults(object): |
print >> json_file, json.dumps(content) |
# Summarize in the test output. |
- summary_string = 'Summary:\n' |
- summary_string += 'RAN=%d\n' % (len(self.ok) + len(self.failed) + |
- len(self.crashed) + len(self.unknown)) |
- summary_string += 'PASSED=%d\n' % (len(self.ok)) |
- summary_string += 'FAILED=%d %s\n' % (len(self.failed), |
- [t.name for t in self.failed]) |
- summary_string += 'CRASHED=%d %s\n' % (len(self.crashed), |
- [t.name for t in self.crashed]) |
- summary_string += 'UNKNOWN=%d %s\n' % (len(self.unknown), |
- [t.name for t in self.unknown]) |
+ summary = ['Summary:\n'] |
+ summary += ['TESTS_TO_RUN=%d\n' % (len(tests_to_run))] |
+ num_tests_ran = (len(self.ok) + len(self.failed) + |
+ len(self.crashed) + len(self.unknown)) |
+ tests_passed = [t.name for t in self.ok] |
+ tests_failed = [t.name for t in self.failed] |
+ tests_crashed = [t.name for t in self.crashed] |
+ tests_unknown = [t.name for t in self.unknown] |
+ summary += ['RAN=%d\n' % (num_tests_ran), |
+ 'PASSED=%d\n' % len(tests_passed), |
+ 'FAILED=%d %s\n' % (len(tests_failed), tests_failed), |
+ 'CRASHED=%d %s\n' % (len(tests_crashed), tests_crashed), |
+ 'UNKNOWN=%d %s\n' % (len(tests_unknown), tests_unknown)] |
+ if num_tests_ran != len(tests_to_run): |
+ # Add the list of tests we failed to run. |
+ tests_failed_to_run = list(set(tests_to_run) - set(tests_passed) - |
+ set(tests_failed) - set(tests_crashed) - |
+ set(tests_unknown)) |
+ summary += ['FAILED_TO_RUN=%d %s\n' % (len(tests_failed_to_run), |
+ tests_failed_to_run)] |
+ summary_string = ''.join(summary) |
logging.critical(summary_string) |
return summary_string |
def PrintAnnotation(self): |
"""Print buildbot annotations for test results.""" |
- if self.timed_out: |
- buildbot_report.PrintWarning() |
- elif self.failed or self.crashed or self.overall_fail: |
+ if self.failed or self.crashed or self.overall_fail or self.timed_out: |
buildbot_report.PrintError() |
else: |
print 'Step success!' # No annotation needed |