summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbuild/build-bisect.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/build/build-bisect.py b/build/build-bisect.py
index 005ad65..a04bd11 100755
--- a/build/build-bisect.py
+++ b/build/build-bisect.py
@@ -37,6 +37,10 @@ BUILD_EXE_NAME = ''
# URL to the ViewVC commit page.
BUILD_VIEWVC_URL = "http://src.chromium.org/viewvc/chrome?view=rev&revision=%d"
+# Changelogs URL
+CHANGELOG_URL = "http://build.chromium.org/buildbot/" \
+ "perf/dashboard/ui/changelog.html?url=/trunk/src&range=%d:%d"
+
###############################################################################
import math
@@ -92,7 +96,7 @@ def GetRevList(good, bad):
revlist.sort()
return revlist
-def TryRevision(rev, profile):
+def TryRevision(rev, profile, args):
"""Downloads revision |rev|, unzips it, and opens it for the user to test.
|profile| is the profile to use."""
# Do this in a temp dir so we don't collide with user files.
@@ -114,11 +118,12 @@ def TryRevision(rev, profile):
os.system("unzip -q %s" % BUILD_ZIP_NAME)
# Tell the system to open the app.
- flags = '--user-data-dir=' + profile
+ args = ['--user-data-dir=%s' % profile] + args
+ flags = ' '.join(map(pipes.quote, args))
print 'Running %s/%s/%s %s' % (os.getcwd(), BUILD_DIR_NAME, BUILD_EXE_NAME,
flags)
if BUILD_ARCHIVE_TYPE in ('linux', 'linux-64', 'mac'):
- os.system("%s/%s %s" % (BUILD_DIR_NAME, BUILD_EXE_NAME, pipes.quote(flags)))
+ os.system("%s/%s %s" % (BUILD_DIR_NAME, BUILD_EXE_NAME, flags))
elif BUILD_ARCHIVE_TYPE in ('xp'):
# TODO(mmoss) Does Windows need 'start' or something?
os.system("%s/%s %s" % (BUILD_DIR_NAME, BUILD_EXE_NAME, flags))
@@ -209,6 +214,7 @@ def main():
# These are indexes of |revlist|.
good = 0
bad = len(revlist) - 1
+ last_known_good_rev = revlist[good]
# Binary search time!
while good < bad:
@@ -228,15 +234,18 @@ def main():
profile = opts.profile
if not profile:
profile = 'profile' # In a temp dir.
- TryRevision(test_rev, profile)
+ TryRevision(test_rev, profile, args)
if AskIsGoodBuild(test_rev):
+ last_known_good_rev = revlist[good]
good = test + 1
else:
bad = test
# We're done. Let the user know the results in an official manner.
print("You are probably looking for build %d." % revlist[bad])
- print("This is the ViewVC URL for the potential bustage:")
+ print("CHANGELOG URL:")
+ print(CHANGELOG_URL % (last_known_good_rev, revlist[bad]))
+ print("Built at revision:")
print(BUILD_VIEWVC_URL % revlist[bad])
if __name__ == '__main__':