summaryrefslogtreecommitdiffstats
path: root/tools/bisect-perf-regression.py
diff options
context:
space:
mode:
authorsimonhatch@chromium.org <simonhatch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-28 20:47:00 +0000
committersimonhatch@chromium.org <simonhatch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-28 20:47:00 +0000
commit65fb2fab8acad5d3fc6704e9b94eea92fc5c7fe6 (patch)
tree4b3d97901195d0db143c08de2c139245a7e168bd /tools/bisect-perf-regression.py
parent51b9f84f6f78717addf71bc5572e9b4e643dc537 (diff)
downloadchromium_src-65fb2fab8acad5d3fc6704e9b94eea92fc5c7fe6.zip
chromium_src-65fb2fab8acad5d3fc6704e9b94eea92fc5c7fe6.tar.gz
chromium_src-65fb2fab8acad5d3fc6704e9b94eea92fc5c7fe6.tar.bz2
Parse V8's bleeding_edge revision from trunk's description.
Previously, we looked for a description in trunk with "Version X.Y.Z" and a corresponding svn_revision-1 in bleeding_edge with the message "Prepare push to trunk." but that's been removed. The new format is that trunk's description contains "Version 3.X.Y (based on bleeding_edge revision rZ)", so we need to parse out bleeding_edge from there now. We try the new format first, and fall back to the old format (to make sure we can continue bisecting older regressions). BUG=337167 Review URL: https://codereview.chromium.org/183993002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254218 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/bisect-perf-regression.py')
-rwxr-xr-xtools/bisect-perf-regression.py26
1 files changed, 22 insertions, 4 deletions
diff --git a/tools/bisect-perf-regression.py b/tools/bisect-perf-regression.py
index 0b58669..61cc3c7 100755
--- a/tools/bisect-perf-regression.py
+++ b/tools/bisect-perf-regression.py
@@ -1144,6 +1144,10 @@ class BisectPerformanceMetrics(object):
# 1. trunk revision N has description "Version X.Y.Z"
# 2. bleeding_edge revision (N-1) has description "Prepare push to
# trunk. Now working on X.Y.(Z+1)."
+ #
+ # As of 01/24/2014, V8 trunk descriptions are formatted:
+ # "Version 3.X.Y (based on bleeding_edge revision rZ)"
+ # So we can just try parsing that out first and fall back to the old way.
v8_dir = self._GetDepotDirectory('v8')
v8_bleeding_edge_dir = self._GetDepotDirectory('v8_bleeding_edge')
@@ -1155,11 +1159,25 @@ class BisectPerformanceMetrics(object):
regex_results = version_re.search(revision_info['subject'])
if regex_results:
- version = regex_results.group('values')
+ git_revision = None
- git_revision = self.source_control.ResolveToRevision(
- int(svn_revision) - 1, 'v8_bleeding_edge', -1,
- cwd=v8_bleeding_edge_dir)
+ # Look for "based on bleeding_edge" and parse out revision
+ if 'based on bleeding_edge' in revision_info['subject']:
+ try:
+ bleeding_edge_revision = revision_info['subject'].split(
+ 'bleeding_edge revision r')[1]
+ bleeding_edge_revision = int(bleeding_edge_revision.split(')')[0])
+ git_revision = self.source_control.ResolveToRevision(
+ bleeding_edge_revision, 'v8_bleeding_edge', 1,
+ cwd=v8_bleeding_edge_dir)
+ except IndexError, ValueError:
+ pass
+
+ if not git_revision:
+ # Wasn't successful, try the old way of looking for "Prepare push to"
+ git_revision = self.source_control.ResolveToRevision(
+ int(svn_revision) - 1, 'v8_bleeding_edge', -1,
+ cwd=v8_bleeding_edge_dir)
if git_revision:
revision_info = self.source_control.QueryRevisionInfo(git_revision,