| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 | 5 |
| 6 def generate_tests(api, test_suite, revision, enable_swarming=False): | 6 def generate_tests(api, test_suite, revision, enable_swarming=False): |
| 7 tests = [] | 7 tests = [] |
| 8 if test_suite == 'webrtc': | 8 if test_suite == 'webrtc': |
| 9 for test in api.NORMAL_TESTS: | 9 for test in api.NORMAL_TESTS: |
| 10 tests.append(WebRTCTest(test, revision, enable_swarming=enable_swarming)) | 10 tests.append(WebRTCTest(test, revision, enable_swarming=enable_swarming)) |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 perf_test=perf_test, **runtest_kwargs) | 113 perf_test=perf_test, **runtest_kwargs) |
| 114 | 114 |
| 115 | 115 |
| 116 def get_android_tool(api): | 116 def get_android_tool(api): |
| 117 if api.m.chromium.c.gyp_env.GYP_DEFINES.get('asan', 0) == 1: | 117 if api.m.chromium.c.gyp_env.GYP_DEFINES.get('asan', 0) == 1: |
| 118 return 'asan' | 118 return 'asan' |
| 119 return None | 119 return None |
| 120 | 120 |
| 121 | 121 |
| 122 class AndroidTest(Test): | 122 class AndroidTest(Test): |
| 123 # WebRTC tests need a longer timeout to avoid getting killed by the Chromium |
| 124 # Android test framework. |
| 125 _SHARD_TIMEOUT = 15 * 60 |
| 126 |
| 127 def __init__(self, name): |
| 128 super(AndroidTest, self).__init__(name) |
| 129 |
| 123 def run(self, api, suffix): | 130 def run(self, api, suffix): |
| 124 api.m.chromium_android.run_test_suite(self._name, | 131 api.m.chromium_android.run_test_suite(self._name, |
| 125 tool=get_android_tool(api)) | 132 tool=get_android_tool(api), |
| 133 shard_timeout=self._SHARD_TIMEOUT) |
| 126 | 134 |
| 127 | 135 |
| 128 class AndroidInstrumentationTest(Test): | 136 class AndroidInstrumentationTest(Test): |
| 129 """Installs the APK on the device and runs the test.""" | 137 """Installs the APK on the device and runs the test.""" |
| 130 | 138 |
| 131 def run(self, api, suffix): | 139 def run(self, api, suffix): |
| 132 api.m.chromium_android.run_instrumentation_suite( | 140 api.m.chromium_android.run_instrumentation_suite( |
| 133 name=self._name, | 141 name=self._name, |
| 134 wrapper_script_suite_name=self._name, | 142 wrapper_script_suite_name=self._name, |
| 135 tool=get_android_tool(api), | 143 tool=get_android_tool(api), |
| 136 verbose=True) | 144 verbose=True) |
| 137 | 145 |
| 138 | 146 |
| 139 class AndroidPerfTest(Test): | 147 class AndroidPerfTest(Test): |
| 140 """A performance test to run on Android devices. | 148 """A performance test to run on Android devices. |
| 141 | 149 |
| 142 Basically just wrap what happens in chromium_android.run_test_suite to run | 150 Basically just wrap what happens in chromium_android.run_test_suite to run |
| 143 inside runtest.py so we can scrape perf data. This way we can get perf data | 151 inside runtest.py so we can scrape perf data. This way we can get perf data |
| 144 from the gtest binaries since the way of running perf tests with telemetry | 152 from the gtest binaries since the way of running perf tests with telemetry |
| 145 is entirely different. | 153 is entirely different. |
| 146 """ | 154 """ |
| 155 # WebRTC tests need a longer timeout to avoid getting killed by the Chromium |
| 156 # Android test framework. |
| 157 _SHARD_TIMEOUT = 45 * 60 |
| 147 | 158 |
| 148 def __init__(self, name, revision, perf_id=None): | 159 def __init__(self, name, revision, perf_id=None): |
| 149 super(AndroidPerfTest, self).__init__(name) | 160 super(AndroidPerfTest, self).__init__(name) |
| 150 self._revision = revision | 161 self._revision = revision |
| 151 self._perf_id = perf_id | 162 self._perf_id = perf_id |
| 152 | 163 |
| 153 def run(self, api, suffix): | 164 def run(self, api, suffix): |
| 154 if not self._perf_id or api.m.chromium.c.BUILD_CONFIG == 'Debug': | 165 if not self._perf_id or api.m.chromium.c.BUILD_CONFIG == 'Debug': |
| 155 # Run as a normal test for trybots and Debug, without perf data scraping. | 166 # Run as a normal test for trybots and Debug, without perf data scraping. |
| 156 api.m.chromium_android.run_test_suite( | 167 api.m.chromium_android.run_test_suite( |
| 157 self._name, | 168 self._name, |
| 158 tool=get_android_tool(api)) | 169 tool=get_android_tool(api), |
| 170 shard_timeout=self._SHARD_TIMEOUT) |
| 159 else: | 171 else: |
| 160 wrapper_script = api.m.chromium.output_dir.join('bin', | 172 args = ['gtest', '-s', self._name, '--verbose', '--release', |
| 161 'run_%s' % self._name) | 173 '-t', str(self._SHARD_TIMEOUT)] |
| 162 args = ['--verbose'] | 174 tool = get_android_tool(api) |
| 163 api.add_test(name=self._name, | 175 api.add_test(name=self._name, |
| 164 test=wrapper_script, | 176 test=api.m.chromium_android.c.test_runner, |
| 165 args=args, | 177 args=args, |
| 166 revision=self._revision, | 178 revision=self._revision, |
| 167 perf_test=True, | 179 perf_test=True, |
| 168 perf_dashboard_id=self._name) | 180 perf_dashboard_id=self._name, |
| 181 env={'CHROMIUM_OUT_DIR': api.m.chromium.output_dir}) |
| 169 | 182 |
| OLD | NEW |