| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright 2013 The Chromium Authors. All rights reserved. | 2 # Copyright 2013 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Run Manual Test Bisect Tool | 6 """Run Manual Test Bisect Tool |
| 7 | 7 |
| 8 An example usage: | 8 An example usage: |
| 9 tools/run-bisect-manual-test.py -g 201281 -b 201290 | 9 tools/run-bisect-manual-test.py -g 201281 -b 201290 |
| 10 | 10 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 (os.path.join(_DIR_TOOLS_ROOT, 'bisect-manual-test.py'), | 41 (os.path.join(_DIR_TOOLS_ROOT, 'bisect-manual-test.py'), |
| 42 options.browser_type) | 42 options.browser_type) |
| 43 | 43 |
| 44 cmd = ['python', os.path.join(_DIR_TOOLS_ROOT, 'bisect-perf-regression.py'), | 44 cmd = ['python', os.path.join(_DIR_TOOLS_ROOT, 'bisect-perf-regression.py'), |
| 45 '-c', test_command, | 45 '-c', test_command, |
| 46 '-g', options.good_revision, | 46 '-g', options.good_revision, |
| 47 '-b', options.bad_revision, | 47 '-b', options.bad_revision, |
| 48 '-m', 'manual_test/manual_test', | 48 '-m', 'manual_test/manual_test', |
| 49 '-r', '1', | 49 '-r', '1', |
| 50 '--working_directory', options.working_directory, | 50 '--working_directory', options.working_directory, |
| 51 '--target_build_type', options.browser_type.title(), | |
| 52 '--build_preference', 'ninja', | 51 '--build_preference', 'ninja', |
| 53 '--use_goma', | 52 '--use_goma', |
| 54 '--no_custom_deps'] | 53 '--no_custom_deps'] |
| 55 | 54 |
| 55 if options.extra_src: |
| 56 cmd.extend(['--extra_src', options.extra_src]) |
| 57 |
| 56 if 'cros' in options.browser_type: | 58 if 'cros' in options.browser_type: |
| 57 cmd.extend(['--target_platform', 'cros']) | 59 cmd.extend(['--target_platform', 'cros']) |
| 58 | 60 |
| 59 if os.environ[CROS_BOARD_ENV] and os.environ[CROS_IP_ENV]: | 61 if os.environ[CROS_BOARD_ENV] and os.environ[CROS_IP_ENV]: |
| 60 cmd.extend(['--cros_board', os.environ[CROS_BOARD_ENV]]) | 62 cmd.extend(['--cros_board', os.environ[CROS_BOARD_ENV]]) |
| 61 cmd.extend(['--cros_remote_ip', os.environ[CROS_IP_ENV]]) | 63 cmd.extend(['--cros_remote_ip', os.environ[CROS_IP_ENV]]) |
| 62 else: | 64 else: |
| 63 print 'Error: Cros build selected, but BISECT_CROS_IP or'\ | 65 print 'Error: Cros build selected, but BISECT_CROS_IP or'\ |
| 64 'BISECT_CROS_BOARD undefined.' | 66 'BISECT_CROS_BOARD undefined.' |
| 65 print | 67 print |
| 66 return 1 | 68 return 1 |
| 69 elif 'android-chrome' in options.browser_type: |
| 70 cmd.extend(['--target_platform', 'android-chrome']) |
| 67 elif 'android' in options.browser_type: | 71 elif 'android' in options.browser_type: |
| 68 cmd.extend(['--target_platform', 'android']) | 72 cmd.extend(['--target_platform', 'android']) |
| 73 elif not options.target_build_type: |
| 74 cmd.extend(['--target_build_type', options.browser_type.title()]) |
| 75 |
| 76 if options.target_build_type: |
| 77 cmd.extend(['--target_build_type', options.target_build_type]) |
| 78 |
| 69 | 79 |
| 70 cmd = [str(c) for c in cmd] | 80 cmd = [str(c) for c in cmd] |
| 71 | 81 |
| 72 return_code = subprocess.call(cmd) | 82 return_code = subprocess.call(cmd) |
| 73 | 83 |
| 74 if return_code: | 84 if return_code: |
| 75 print 'Error: bisect-perf-regression.py returned with error %d' %\ | 85 print 'Error: bisect-perf-regression.py returned with error %d' %\ |
| 76 return_code | 86 return_code |
| 77 print | 87 print |
| 78 | 88 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 95 type='str', | 105 type='str', |
| 96 help='A revision to start bisection where performance' + | 106 help='A revision to start bisection where performance' + |
| 97 ' test is known to pass. Must be earlier than the ' + | 107 ' test is known to pass. Must be earlier than the ' + |
| 98 'bad revision. May be either a git or svn revision.') | 108 'bad revision. May be either a git or svn revision.') |
| 99 parser.add_option('-w', '--working_directory', | 109 parser.add_option('-w', '--working_directory', |
| 100 type='str', | 110 type='str', |
| 101 default='..', | 111 default='..', |
| 102 help='A working directory to supply to the bisection ' | 112 help='A working directory to supply to the bisection ' |
| 103 'script, which will use it as the location to checkout ' | 113 'script, which will use it as the location to checkout ' |
| 104 'a copy of the chromium depot.') | 114 'a copy of the chromium depot.') |
| 105 | 115 parser.add_option('--extra_src', |
| 116 type='str', |
| 117 help='Path to extra source file. If this is supplied, ' |
| 118 'bisect script will use this to override default behavior.') |
| 119 parser.add_option('--target_build_type', |
| 120 type='choice', |
| 121 choices=['Release', 'Debug'], |
| 122 help='The target build type. Choices are "Release" ' |
| 123 'or "Debug".') |
| 106 options, args = parser.parse_args() | 124 options, args = parser.parse_args() |
| 107 error_msg = '' | 125 error_msg = '' |
| 108 if not options.good_revision: | 126 if not options.good_revision: |
| 109 error_msg += 'Error: missing required parameter: --good_revision\n' | 127 error_msg += 'Error: missing required parameter: --good_revision\n' |
| 110 if not options.bad_revision: | 128 if not options.bad_revision: |
| 111 error_msg += 'Error: missing required parameter: --bad_revision\n' | 129 error_msg += 'Error: missing required parameter: --bad_revision\n' |
| 112 | 130 |
| 113 if error_msg: | 131 if error_msg: |
| 114 print error_msg | 132 print error_msg |
| 115 parser.print_help() | 133 parser.print_help() |
| 116 return 1 | 134 return 1 |
| 117 | 135 |
| 118 if 'android' not in options.browser_type and sys.platform.startswith('linux'): | 136 if 'android' not in options.browser_type and sys.platform.startswith('linux'): |
| 119 if not os.environ.get('CHROME_DEVEL_SANDBOX'): | 137 if not os.environ.get('CHROME_DEVEL_SANDBOX'): |
| 120 print 'SUID sandbox has not been setup.'\ | 138 print 'SUID sandbox has not been setup.'\ |
| 121 ' See https://code.google.com/p/chromium/wiki/'\ | 139 ' See https://code.google.com/p/chromium/wiki/'\ |
| 122 'LinuxSUIDSandboxDevelopment for more information.' | 140 'LinuxSUIDSandboxDevelopment for more information.' |
| 123 return 1 | 141 return 1 |
| 124 | 142 |
| 125 return _RunBisectionScript(options) | 143 return _RunBisectionScript(options) |
| 126 | 144 |
| 127 | 145 |
| 128 if __name__ == '__main__': | 146 if __name__ == '__main__': |
| 129 sys.exit(main()) | 147 sys.exit(main()) |
| OLD | NEW |