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

Unified Diff: tools/bisect-perf-regression.py

Issue 16950022: Skip syncing V8_bleeding_edge unless bisecting V8. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes from review. Created 7 years, 6 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
« no previous file with comments | « no previous file | tools/bisect_utils.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/bisect-perf-regression.py
diff --git a/tools/bisect-perf-regression.py b/tools/bisect-perf-regression.py
index 0fcaf2ef24a43ec9ba04225f41266fa123a54b88..13155bc3f0a5559387174994c2876c387ef6cba5 100755
--- a/tools/bisect-perf-regression.py
+++ b/tools/bisect-perf-regression.py
@@ -80,7 +80,8 @@ DEPOT_DEPS_NAME = {
"recurse" : True,
"depends" : None,
"build_with": 'v8_bleeding_edge',
- "from" : 'chromium'
+ "from" : 'chromium',
+ "custom_deps": bisect_utils.GCLIENT_CUSTOM_DEPS_V8
},
'v8_bleeding_edge' : {
"src" : "src/v8_bleeding_edge",
@@ -1326,7 +1327,9 @@ class BisectPerformanceMetrics(object):
def PrepareToBisectOnDepot(self,
current_depot,
end_revision,
- start_revision):
+ start_revision,
+ previous_depot,
+ previous_revision):
"""Changes to the appropriate directory and gathers a list of revisions
to bisect between |start_revision| and |end_revision|.
@@ -1334,6 +1337,8 @@ class BisectPerformanceMetrics(object):
current_depot: The depot we want to bisect.
end_revision: End of the revision range.
start_revision: Start of the revision range.
+ previous_depot: The depot we were previously bisecting.
+ previous_revision: The last revision we synced to on |previous_depot|.
Returns:
A list containing the revisions between |start_revision| and
@@ -1347,6 +1352,16 @@ class BisectPerformanceMetrics(object):
# V8 (and possibly others) is merged in periodically. Bisecting
# this directory directly won't give much good info.
if DEPOT_DEPS_NAME[current_depot].has_key('build_with'):
+ if (DEPOT_DEPS_NAME[current_depot].has_key('custom_deps') and
+ previous_depot == 'chromium'):
+ config_path = os.path.join(self.src_cwd, '..')
+ if bisect_utils.RunGClientAndCreateConfig(self.opts,
+ DEPOT_DEPS_NAME[current_depot]['custom_deps'], cwd=config_path):
+ return []
+ if bisect_utils.RunGClient(
+ ['sync', '--revision', previous_revision], cwd=self.src_cwd):
+ return []
+
new_depot = DEPOT_DEPS_NAME[current_depot]['build_with']
svn_start_revision = self.source_control.SVNFindRev(start_revision)
@@ -1651,6 +1666,8 @@ class BisectPerformanceMetrics(object):
good_revision_data['passed'] = 1
good_revision_data['value'] = known_good_value
+ next_revision_depot = target_depot
+
while True:
if not revision_list:
break
@@ -1676,7 +1693,6 @@ class BisectPerformanceMetrics(object):
if min_revision_data['external'][current_depot] !=\
max_revision_data['external'][current_depot]:
external_depot = current_depot
-
break
# If there was no change in any of the external depots, the search
@@ -1684,12 +1700,16 @@ class BisectPerformanceMetrics(object):
if not external_depot:
break
- earliest_revision = max_revision_data['external'][current_depot]
- latest_revision = min_revision_data['external'][current_depot]
+ previous_revision = revision_list[min_revision]
+
+ earliest_revision = max_revision_data['external'][external_depot]
+ latest_revision = min_revision_data['external'][external_depot]
new_revision_list = self.PrepareToBisectOnDepot(external_depot,
latest_revision,
- earliest_revision)
+ earliest_revision,
+ next_revision_depot,
+ previous_revision)
if not new_revision_list:
results['error'] = 'An error occurred attempting to retrieve'\
@@ -1710,7 +1730,7 @@ class BisectPerformanceMetrics(object):
sort_key_ids += len(revision_list)
print 'Regression in metric:%s appears to be the result of changes'\
- ' in [%s].' % (metric, current_depot)
+ ' in [%s].' % (metric, external_depot)
self.PrintRevisionsToBisectMessage(revision_list, external_depot)
« no previous file with comments | « no previous file | tools/bisect_utils.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698