| Index: appengine/findit/waterfall/detect_first_failure_pipeline.py
|
| diff --git a/appengine/findit/waterfall/detect_first_failure_pipeline.py b/appengine/findit/waterfall/detect_first_failure_pipeline.py
|
| index a6dd42e025edc92e68057099ee4417dc7493aa35..06cc093a024b4eacbe62398ac14c82f166031df6 100644
|
| --- a/appengine/findit/waterfall/detect_first_failure_pipeline.py
|
| +++ b/appengine/findit/waterfall/detect_first_failure_pipeline.py
|
| @@ -18,6 +18,7 @@ from waterfall import swarming_util
|
|
|
|
|
| _MAX_BUILDS_TO_CHECK = 20
|
| +_NON_FAILURE_STATUS = ['SUCCESS', 'SKIPPED', 'UNKNOWN']
|
|
|
|
|
| class DetectFirstFailurePipeline(BasePipeline):
|
| @@ -181,8 +182,11 @@ class DetectFirstFailurePipeline(BasePipeline):
|
| for test_name in iteration.keys():
|
| is_reliable_failure = True
|
|
|
| - if any(test['status'] == 'SUCCESS' for test in iteration[test_name]):
|
| - # Ignore the test if any of the attempts were 'SUCCESS'.
|
| + if (any(test['status'] in _NON_FAILURE_STATUS
|
| + for test in iteration[test_name])):
|
| + # Ignore the test if any of the attempts didn't fail.
|
| + # If a test is skipped, that means it was not run at all.
|
| + # Treats it as success since the status cannot be determined.
|
| is_reliable_failure = False
|
|
|
| if is_reliable_failure:
|
|
|