| 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 | 8 |
| 9 if test_suite == 'webrtc': | 9 if test_suite == 'webrtc': |
| 10 for test, extra_args in sorted(api.NORMAL_TESTS.items()): | 10 for test, extra_args in sorted(api.NORMAL_TESTS.items()): |
| 11 tests.append(WebRTCTest(test, revision, enable_swarming, **extra_args)) | 11 tests.append(WebRTCTest(test, enable_swarming=enable_swarming, |
| 12 revision=revision, **extra_args)) |
| 12 elif test_suite == 'webrtc_baremetal': | 13 elif test_suite == 'webrtc_baremetal': |
| 13 if api.m.platform.is_linux: | 14 if api.m.platform.is_linux: |
| 14 f = api.m.path['checkout'].join | 15 f = api.m.path['checkout'].join |
| 15 tests.extend([ | 16 tests.extend([ |
| 16 BaremetalTest('audioproc', | 17 BaremetalTest('audioproc', |
| 17 revision, | 18 revision, |
| 18 args=['-aecm', '-ns', '-agc', '--fixed_digital', | 19 args=['-aecm', '-ns', '-agc', '--fixed_digital', |
| 19 '--perf', '-pb', | 20 '--perf', '-pb', |
| 20 f('resources', 'audioproc.aecdump')], | 21 f('resources', 'audioproc.aecdump')], |
| 21 perf_test=True), | 22 perf_test=True), |
| (...skipping 15 matching lines...) Expand all Loading... |
| 37 BaremetalTest('voe_auto_test', revision, args=['--automated']), | 38 BaremetalTest('voe_auto_test', revision, args=['--automated']), |
| 38 BaremetalTest('video_capture_tests', revision), | 39 BaremetalTest('video_capture_tests', revision), |
| 39 ]) | 40 ]) |
| 40 if not api.m.tryserver.is_tryserver: | 41 if not api.m.tryserver.is_tryserver: |
| 41 tests.append(BaremetalTest('webrtc_perf_tests', revision, perf_test=True)) | 42 tests.append(BaremetalTest('webrtc_perf_tests', revision, perf_test=True)) |
| 42 elif (test_suite == 'android_perf' and not api.m.tryserver.is_tryserver | 43 elif (test_suite == 'android_perf' and not api.m.tryserver.is_tryserver |
| 43 and api.c.PERF_ID and api.m.chromium.c.BUILD_CONFIG == 'Release'): | 44 and api.c.PERF_ID and api.m.chromium.c.BUILD_CONFIG == 'Release'): |
| 44 tests.append(AndroidPerfTest('webrtc_perf_tests', revision, | 45 tests.append(AndroidPerfTest('webrtc_perf_tests', revision, |
| 45 perf_id=api.c.PERF_ID)) | 46 perf_id=api.c.PERF_ID)) |
| 46 elif test_suite == 'android_swarming': | 47 elif test_suite == 'android_swarming': |
| 47 for test, extra_args in (sorted(api.ANDROID_DEVICE_TESTS.items()) + | 48 for test in (api.ANDROID_DEVICE_TESTS + |
| 48 sorted(api.ANDROID_INSTRUMENTATION_TESTS.items())): | 49 api.ANDROID_INSTRUMENTATION_TESTS): |
| 49 tests.append(Test(test, enable_swarming, **extra_args)) | 50 tests.append(Test(test, enable_swarming=enable_swarming)) |
| 50 for test, extra_args in sorted(api.ANDROID_JUNIT_TESTS.items()): | 51 for test in api.ANDROID_JUNIT_TESTS: |
| 51 tests.append(AndroidJunitTest(test, False, **extra_args)) | 52 tests.append(AndroidJunitTest(test)) |
| 52 | 53 |
| 53 return tests | 54 return tests |
| 54 | 55 |
| 55 | 56 |
| 56 # TODO(kjellander): Continue refactoring an integrate the classes in the | 57 # TODO(kjellander): Continue refactoring an integrate the classes in the |
| 57 # chromium_tests recipe module instead (if possible). | 58 # chromium_tests recipe module instead (if possible). |
| 58 class Test(object): | 59 class Test(object): |
| 59 def __init__(self, name, enable_swarming=False, shards=1): | 60 def __init__(self, name, enable_swarming=False, swarming_shards=1): |
| 60 self._name = name | 61 self._name = name |
| 61 self._enable_swarming = enable_swarming | 62 self._enable_swarming = enable_swarming |
| 62 self._swarming_task = None | 63 self._swarming_task = None |
| 63 self._shards = shards | 64 self._swarming_shards = swarming_shards |
| 64 | 65 |
| 65 @property | 66 @property |
| 66 def name(self): # pragma: no cover | 67 def name(self): # pragma: no cover |
| 67 return self._name | 68 return self._name |
| 68 | 69 |
| 69 @property | 70 @property |
| 70 def enable_swarming(self): | 71 def enable_swarming(self): |
| 71 return self._enable_swarming | 72 return self._enable_swarming |
| 72 | 73 |
| 73 @property | 74 @property |
| 74 def swarming_task(self): | 75 def swarming_task(self): |
| 75 return self._swarming_task | 76 return self._swarming_task |
| 76 | 77 |
| 77 def run_nonswarming(self, api, suffix): # pragma: no cover: | 78 def run_nonswarming(self, api, suffix): # pragma: no cover: |
| 78 raise NotImplementedError() | 79 raise NotImplementedError() |
| 79 | 80 |
| 81 def pre_run(self, api, suffix): |
| 82 return [] |
| 83 |
| 80 def run(self, api, suffix): | 84 def run(self, api, suffix): |
| 81 if self._enable_swarming: | 85 if self._enable_swarming: |
| 82 isolated_hash = api.m.isolate.isolated_tests[self._name] | 86 isolated_hash = api.m.isolate.isolated_tests[self._name] |
| 83 self._swarming_task = api.m.swarming.task(self._name, isolated_hash, | 87 self._swarming_task = api.m.swarming.task(self._name, isolated_hash, |
| 84 shards=self._shards) | 88 shards=self._swarming_shards) |
| 85 api.m.swarming.trigger_task(self._swarming_task) | 89 api.m.swarming.trigger_task(self._swarming_task) |
| 86 else: | 90 else: |
| 87 self.run_nonswarming(api, suffix) | 91 self.run_nonswarming(api, suffix) |
| 88 | 92 |
| 93 def post_run(self, api, suffix): |
| 94 return [] |
| 95 |
| 89 class WebRTCTest(Test): | 96 class WebRTCTest(Test): |
| 90 """A normal WebRTC desktop test.""" | 97 """A normal WebRTC desktop test.""" |
| 91 def __init__(self, name, revision, enable_swarming=False, shards=1, | 98 def __init__(self, name, revision=None, enable_swarming=False, |
| 92 parallel=True, perf_test=False, **runtest_kwargs): | 99 swarming_shards=1, parallel=True, perf_test=False, |
| 93 super(WebRTCTest, self).__init__(name, enable_swarming, shards) | 100 **runtest_kwargs): |
| 101 super(WebRTCTest, self).__init__(name, enable_swarming, swarming_shards) |
| 94 self._revision = revision | 102 self._revision = revision |
| 95 self._parallel = parallel | 103 self._parallel = parallel |
| 96 self._perf_test = perf_test | 104 self._perf_test = perf_test |
| 97 self._runtest_kwargs = runtest_kwargs | 105 self._runtest_kwargs = runtest_kwargs |
| 98 | 106 |
| 99 def run_nonswarming(self, api, suffix): | 107 def run_nonswarming(self, api, suffix): |
| 100 self._runtest_kwargs['test'] = self._name | 108 self._runtest_kwargs['test'] = self._name |
| 101 api.add_test(name=self._name, revision=self._revision, | 109 api.add_test(name=self._name, revision=self._revision, |
| 102 parallel=self._parallel, perf_test=self._perf_test, | 110 parallel=self._parallel, perf_test=self._perf_test, |
| 103 **self._runtest_kwargs) | 111 **self._runtest_kwargs) |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 'run_%s' % self._name) | 146 'run_%s' % self._name) |
| 139 args = ['--verbose'] | 147 args = ['--verbose'] |
| 140 api.add_test(name=self._name, | 148 api.add_test(name=self._name, |
| 141 test=wrapper_script, | 149 test=wrapper_script, |
| 142 args=args, | 150 args=args, |
| 143 revision=self._revision, | 151 revision=self._revision, |
| 144 python_mode=True, | 152 python_mode=True, |
| 145 perf_test=True, | 153 perf_test=True, |
| 146 perf_dashboard_id=self._name) | 154 perf_dashboard_id=self._name) |
| 147 | 155 |
| OLD | NEW |