| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 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 import collections | 6 import collections |
| 7 import glob | 7 import glob |
| 8 import json | 8 import json |
| 9 import optparse | 9 import optparse |
| 10 import os | 10 import os |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 I_TEST('AndroidWebView', | 45 I_TEST('AndroidWebView', |
| 46 'AndroidWebView.apk', | 46 'AndroidWebView.apk', |
| 47 'org.chromium.android_webview', | 47 'org.chromium.android_webview', |
| 48 'AndroidWebViewTest', | 48 'AndroidWebViewTest', |
| 49 'webview:android_webview/test/data/device_files'), | 49 'webview:android_webview/test/data/device_files'), |
| 50 ]) | 50 ]) |
| 51 | 51 |
| 52 VALID_TESTS = set(['ui', 'unit', 'webkit', 'webkit_layout']) | 52 VALID_TESTS = set(['ui', 'unit', 'webkit', 'webkit_layout']) |
| 53 | 53 |
| 54 | 54 |
| 55 def RunCmd(command, flunk_on_failure=True): | 55 def SpawnCmd(command): |
| 56 """Run a command relative to the chrome source root.""" | 56 """Spawn a process without waiting for termination.""" |
| 57 | |
| 58 # Add adb binary to path. In the future, might use build_internal copy. | 57 # Add adb binary to path. In the future, might use build_internal copy. |
| 59 env = dict(os.environ) | 58 env = dict(os.environ) |
| 60 env['PATH'] = os.pathsep.join([ | 59 env['PATH'] = os.pathsep.join([ |
| 61 env['PATH'], os.path.join(constants.ANDROID_SDK_ROOT, 'platform-tools')]) | 60 env['PATH'], os.path.join(constants.ANDROID_SDK_ROOT, 'platform-tools')]) |
| 61 print '>', ' '.join(map(pipes.quote, command)) |
| 62 sys.stdout.flush() |
| 63 if TESTING: |
| 64 class MockPopen(object): |
| 65 @staticmethod |
| 66 def wait(): |
| 67 return 0 |
| 68 return MockPopen() |
| 62 | 69 |
| 63 command_str = ' '.join(map(pipes.quote, command)) | 70 return subprocess.Popen(command, cwd=CHROME_SRC, env=env) |
| 64 print '>', command_str | 71 |
| 65 if not TESTING: | 72 def RunCmd(command, flunk_on_failure=True): |
| 66 code = subprocess.Popen(command, cwd=CHROME_SRC, env=env).wait() | 73 """Run a command relative to the chrome source root.""" |
| 67 else: | 74 code = SpawnCmd(command).wait() |
| 68 code = 0 | 75 print '<', ' '.join(map(pipes.quote, command)) |
| 69 print '<', command_str | |
| 70 if code != 0: | 76 if code != 0: |
| 71 print 'ERROR: non-zero status %d from %s' % (code, command) | 77 print 'ERROR: non-zero status %d from %s' % (code, command) |
| 72 if flunk_on_failure: | 78 if flunk_on_failure: |
| 73 buildbot_report.PrintError() | 79 buildbot_report.PrintError() |
| 74 else: | 80 else: |
| 75 buildbot_report.PrintWarning() | 81 buildbot_report.PrintWarning() |
| 76 return code | 82 return code |
| 77 | 83 |
| 78 | 84 |
| 79 def RunTestSuites(options, suite): | 85 def RunTestSuites(options, suite): |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 | 165 |
| 160 if not options.test_filter: | 166 if not options.test_filter: |
| 161 return | 167 return |
| 162 | 168 |
| 163 # Device check and alert emails | 169 # Device check and alert emails |
| 164 RunCmd(['build/android/device_status_check.py'], flunk_on_failure=False) | 170 RunCmd(['build/android/device_status_check.py'], flunk_on_failure=False) |
| 165 | 171 |
| 166 # Spawn logcat monitor | 172 # Spawn logcat monitor |
| 167 logcat_dir = os.path.join(CHROME_SRC, 'out/logcat') | 173 logcat_dir = os.path.join(CHROME_SRC, 'out/logcat') |
| 168 shutil.rmtree(logcat_dir, ignore_errors=True) | 174 shutil.rmtree(logcat_dir, ignore_errors=True) |
| 169 if not TESTING: | 175 SpawnCmd(['build/android/adb_logcat_monitor.py', logcat_dir]) |
| 170 subprocess.Popen( | |
| 171 ['build/android/adb_logcat_monitor.py', logcat_dir], cwd=CHROME_SRC) | |
| 172 | 176 |
| 173 if 'unit' in options.test_filter: | 177 if 'unit' in options.test_filter: |
| 174 RunTestSuites(options, None) | 178 RunTestSuites(options, None) |
| 175 if 'ui' in options.test_filter: | 179 if 'ui' in options.test_filter: |
| 176 for test in INSTRUMENTATION_TESTS.itervalues(): | 180 for test in INSTRUMENTATION_TESTS.itervalues(): |
| 177 RunInstrumentationSuite(options, test) | 181 RunInstrumentationSuite(options, test) |
| 178 if 'webkit' in options.test_filter: | 182 if 'webkit' in options.test_filter: |
| 179 RunTestSuites(options, 'webkit_unit_tests') | 183 RunTestSuites(options, 'webkit_unit_tests') |
| 180 RunTestSuites(options, 'TestWebKitAPI') | 184 RunTestSuites(options, 'TestWebKitAPI') |
| 181 RunWebkitLint(options.target) | 185 RunWebkitLint(options.target) |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 if unknown_tests: | 239 if unknown_tests: |
| 236 return ParserError('Unknown tests %s' % list(unknown_tests)) | 240 return ParserError('Unknown tests %s' % list(unknown_tests)) |
| 237 | 241 |
| 238 setattr(options, 'target', options.factory_properties.get('target', 'Debug')) | 242 setattr(options, 'target', options.factory_properties.get('target', 'Debug')) |
| 239 | 243 |
| 240 MainTestWrapper(options) | 244 MainTestWrapper(options) |
| 241 | 245 |
| 242 | 246 |
| 243 if __name__ == '__main__': | 247 if __name__ == '__main__': |
| 244 sys.exit(main(sys.argv)) | 248 sys.exit(main(sys.argv)) |
| OLD | NEW |