Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(456)

Unified Diff: scripts/slave/recipe_modules/auto_bisect/revision_state.py

Issue 1610203003: Iteratively increase sample size for good/bad classification. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Fixing multiple problems Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: scripts/slave/recipe_modules/auto_bisect/revision_state.py
diff --git a/scripts/slave/recipe_modules/auto_bisect/revision_state.py b/scripts/slave/recipe_modules/auto_bisect/revision_state.py
index 174c8609100f437ac2099b18d67545a2d92f657b..c85cf3c97f7017bd40408f413d71079b9daa3f6f 100644
--- a/scripts/slave/recipe_modules/auto_bisect/revision_state.py
+++ b/scripts/slave/recipe_modules/auto_bisect/revision_state.py
@@ -31,7 +31,8 @@ class RevisionState(object):
SKIPPED, # A revision that was not built or tested for a special reason,
# such as those ranges that we know are broken, or when nudging
# revisions.
- ) = xrange(7)
+ NEED_MORE_DATA,
qyearsley 2016/01/26 19:26:00 You could add a comment for this status -- still n
RobertoCN 2016/02/01 17:29:51 Done.
+ ) = xrange(8)
def __init__(self, revision_string, bisector,
dependency_depot_name=None, base_revision=None,
@@ -115,7 +116,8 @@ class RevisionState(object):
@property
def in_progress(self):
- return self.status in (RevisionState.BUILDING, RevisionState.TESTING)
+ return self.status in (RevisionState.BUILDING, RevisionState.TESTING,
+ RevisionState.NEED_MORE_DATA)
@property
def failed(self):
@@ -148,8 +150,9 @@ class RevisionState(object):
self.status = RevisionState.BUILDING
return
- if self._is_build_archived() and self.status in [RevisionState.NEW,
- RevisionState.BUILDING]:
+ if self._is_build_archived() and self.status in [
+ RevisionState.NEW, RevisionState.BUILDING,
+ RevisionState.NEED_MORE_DATA]:
qyearsley 2016/01/26 19:26:00 Below when checking whether status is one of sever
RobertoCN 2016/02/01 17:29:51 Done.
self._do_test()
self.status = RevisionState.TESTING
@@ -243,11 +246,15 @@ class RevisionState(object):
"""
if self.status == RevisionState.BUILDING and self._is_build_archived():
self.start_job()
- elif self.status == RevisionState.TESTING and self._results_available():
- self._read_test_results()
+ elif (self.status in (RevisionState.TESTING, RevisionState.NEED_MORE_DATA)
+ and self._results_available()):
+ # if the status is NEED_MORE_DATA, it's a retest, and we should prevent
+ # the check_revision_good from running again.
+ self._read_test_results(
+ check_revision_goodness=self.status == RevisionState.TESTING)
# We assume _read_test_results may have changed the status to a broken
# state such as FAILED or ABORTED.
- if self.status == RevisionState.TESTING:
+ if self.status in (RevisionState.TESTING, RevisionState.NEED_MORE_DATA):
self.status = RevisionState.TESTED
def _is_build_archived(self):

Powered by Google App Engine
This is Rietveld 408576698