| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import base64 | 5 import base64 |
| 6 import collections | 6 import collections |
| 7 import json | 7 import json |
| 8 | 8 |
| 9 DEPS = [ | 9 DEPS = [ |
| 10 'auto_bisect', | 10 'auto_bisect', |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 bisect_config = base64.b32decode(bisect_config) | 25 bisect_config = base64.b32decode(bisect_config) |
| 26 bisect_config = json.loads(bisect_config) | 26 bisect_config = json.loads(bisect_config) |
| 27 else: | 27 else: |
| 28 bisect_config = api.properties.get('bisect_config') | 28 bisect_config = api.properties.get('bisect_config') |
| 29 assert isinstance(bisect_config, collections.Mapping) | 29 assert isinstance(bisect_config, collections.Mapping) |
| 30 bisector = api.auto_bisect.create_bisector(bisect_config) | 30 bisector = api.auto_bisect.create_bisector(bisect_config) |
| 31 _gather_reference_range(bisector) | 31 _gather_reference_range(bisector) |
| 32 _ensure_checkout(api) | 32 _ensure_checkout(api) |
| 33 if (not bisector.failed and bisector.check_improvement_direction() and | 33 if (not bisector.failed and bisector.check_improvement_direction() and |
| 34 bisector.check_regression_confidence()): | 34 bisector.check_regression_confidence()): |
| 35 _bisect_main_loop(bisector) | 35 if not bisector.check_bisect_finished(bisector.good_rev): |
| 36 _bisect_main_loop(bisector) |
| 36 else: #pragma: no cover | 37 else: #pragma: no cover |
| 37 bisector.bisect_over = True | 38 bisector.bisect_over = True |
| 38 bisector.print_result() | 39 bisector.print_result() |
| 39 | 40 |
| 40 | 41 |
| 41 def GenTests(api): | 42 def GenTests(api): |
| 42 basic_test = api.test('basic') | 43 basic_test = api.test('basic') |
| 43 encoded_config_test = api.test('encoded_config_test') | 44 encoded_config_test = api.test('encoded_config_test') |
| 44 broken_cp_test = api.test('broken_cp_test') | 45 broken_cp_test = api.test('broken_cp_test') |
| 45 broken_hash_test = api.test('broken_hash_test') | 46 broken_hash_test = api.test('broken_hash_test') |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 If such revision completes the bisect process it sets the flag so that the | 221 If such revision completes the bisect process it sets the flag so that the |
| 221 main loop stops. | 222 main loop stops. |
| 222 """ | 223 """ |
| 223 while revisions_to_check: | 224 while revisions_to_check: |
| 224 completed_revision = bisector.wait_for_any(revisions_to_check) | 225 completed_revision = bisector.wait_for_any(revisions_to_check) |
| 225 revisions_to_check.remove(completed_revision) | 226 revisions_to_check.remove(completed_revision) |
| 226 if not completed_revision.aborted: | 227 if not completed_revision.aborted: |
| 227 if bisector.check_bisect_finished(completed_revision): | 228 if bisector.check_bisect_finished(completed_revision): |
| 228 bisector.bisect_over = True | 229 bisector.bisect_over = True |
| 229 bisector.abort_unnecessary_jobs() | 230 bisector.abort_unnecessary_jobs() |
| OLD | NEW |