#!/usr/bin/env python # Copyright (c) 2013 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Prepare Performance Test Bisect Tool This script is used by a try bot to create a working directory and sync an initial copy of the depot for use in bisecting performance regressions. An example usage: ./tools/prepare-bisect-perf-regressions.py --working_directory "~/builds" --output_buildbot_annotations Would result in creating ~/builds/bisect and then populating it with a copy of the depot. """ import optparse import sys from auto_bisect import bisect_utils def main(): """Does an initial checkout of Chromium then exits.""" usage = ('%prog [options] [-- chromium-options]\n' 'Prepares a temporary depot for use on a try bot.') parser = optparse.OptionParser(usage=usage) parser.add_option('-w', '--working_directory', type='str', help='Path to the working directory where the script will ' 'do an initial checkout of the chromium depot. The ' 'files will be placed in a subdirectory "bisect" under ' 'working_directory and that will be used to perform the ' 'bisection.') parser.add_option('--output_buildbot_annotations', action='store_true', help='Add extra annotation output for buildbot.') parser.add_option('--target_platform', type='choice', choices=['chromium', 'cros', 'android'], default='chromium', help='The target platform. Choices are "chromium" (current ' 'platform), "cros", or "android". If you specify something ' 'other than "chromium", you must be properly set up to ' 'build that platform.') opts, _ = parser.parse_args() if not opts.working_directory: print 'Error: missing required parameter: --working_directory' print parser.print_help() return 1 if not bisect_utils.CheckIfBisectDepotExists(opts): try: bisect_utils.CreateBisectDirectoryAndSetupDepot( opts, bisect_utils.DEFAULT_GCLIENT_CUSTOM_DEPS) except RuntimeError: return 1 return 0 if __name__ == '__main__': sys.exit(main())