Index: build/android/pylib/base/base_test_sharder.py |
=================================================================== |
--- build/android/pylib/base/base_test_sharder.py (revision 178362) |
+++ build/android/pylib/base/base_test_sharder.py (working copy) |
@@ -47,13 +47,6 @@ |
self.attached_devices = attached_devices |
# Worst case scenario: a device will drop offline per run, so we need |
# to retry until we're out of devices. |
- |
- # TODO(frankf): There are two sources of flakiness: |
- # 1. Device flakiness |
- # 2. Test/product flakiness |
- # We should differentiate between these. Otherwise, blindly retrying tests |
- # might mask test/product flakiness. For type 2, we should follow the |
- # general chrome best practices. |
self.retries = len(self.attached_devices) |
self.tests = [] |
self.build_type = build_type |
@@ -97,8 +90,6 @@ |
self._KillHostForwarder() |
for retry in xrange(self.retries): |
logging.warning('Try %d of %d', retry + 1, self.retries) |
- logging.warning('Attempting to run %d tests: %s' |
- % (len(self.tests), self.tests)) |
self.SetupSharding(self.tests) |
test_runners = [] |
@@ -137,7 +128,9 @@ |
# Retry on devices that didn't have any exception. |
self.attached_devices = list(retry_devices) |
- # TODO(frankf): Do not break TestResults encapsulation. |
+ # TODO(frankf): Fix the retry logic: |
+ # - GetAllBroken() should report all tests not ran. |
+ # - Do not break TestResults encapsulation. |
if (retry == self.retries - 1 or |
len(self.attached_devices) == 0): |
all_passed = final_results.ok + test_results.ok |
@@ -146,6 +139,10 @@ |
break |
else: |
final_results.ok += test_results.ok |
+ final_results.overall_timed_out = (final_results.overall_timed_out or |
+ test_results.overall_timed_out) |
+ final_results.overall_fail = (final_results.overall_fail or |
+ test_results.overall_fail) |
self.tests = [] |
for t in test_results.GetAllBroken(): |