| 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 | |
| 6 def generate_tests(api, test_suite, revision, enable_swarming=False): | 5 def generate_tests(api, test_suite, revision, enable_swarming=False): |
| 7 tests = [] | 6 tests = [] |
| 8 | 7 |
| 9 if test_suite == 'webrtc': | 8 if test_suite == 'webrtc': |
| 10 for test, extra_args in sorted(api.NORMAL_TESTS.items()): | 9 for test, extra_args in sorted(api.NORMAL_TESTS.items()): |
| 11 tests.append(WebRTCTest(test, enable_swarming=enable_swarming, | 10 tests.append(WebRTCTest(test, enable_swarming=enable_swarming, |
| 12 revision=revision, **extra_args)) | 11 revision=revision, **extra_args)) |
| 13 elif test_suite == 'webrtc_baremetal': | 12 elif test_suite == 'webrtc_baremetal': |
| 14 if api.m.platform.is_linux: | 13 if api.m.platform.is_linux: |
| 15 f = api.m.path['checkout'].join | 14 f = api.m.path['checkout'].join |
| (...skipping 16 matching lines...) Expand all Loading... |
| 32 BaremetalTest('voe_auto_test', revision, args=['--automated']), | 31 BaremetalTest('voe_auto_test', revision, args=['--automated']), |
| 33 BaremetalTest('video_capture_tests', revision), | 32 BaremetalTest('video_capture_tests', revision), |
| 34 ]) | 33 ]) |
| 35 if not api.m.tryserver.is_tryserver: | 34 if not api.m.tryserver.is_tryserver: |
| 36 tests.append(BaremetalTest('webrtc_perf_tests', revision, perf_test=True)) | 35 tests.append(BaremetalTest('webrtc_perf_tests', revision, perf_test=True)) |
| 37 elif (test_suite == 'android_perf' and not api.m.tryserver.is_tryserver | 36 elif (test_suite == 'android_perf' and not api.m.tryserver.is_tryserver |
| 38 and api.c.PERF_ID and api.m.chromium.c.BUILD_CONFIG == 'Release'): | 37 and api.c.PERF_ID and api.m.chromium.c.BUILD_CONFIG == 'Release'): |
| 39 tests.append(AndroidPerfTest('webrtc_perf_tests', revision, | 38 tests.append(AndroidPerfTest('webrtc_perf_tests', revision, |
| 40 perf_id=api.c.PERF_ID)) | 39 perf_id=api.c.PERF_ID)) |
| 41 elif test_suite == 'android_swarming': | 40 elif test_suite == 'android_swarming': |
| 41 GTestTest = api.m.chromium_tests.steps.GTestTest |
| 42 for test in (api.ANDROID_DEVICE_TESTS + | 42 for test in (api.ANDROID_DEVICE_TESTS + |
| 43 api.ANDROID_INSTRUMENTATION_TESTS): | 43 api.ANDROID_INSTRUMENTATION_TESTS): |
| 44 tests.append(Test(test, enable_swarming=enable_swarming)) | 44 tests.append(GTestTest(test, enable_swarming=enable_swarming, |
| 45 override_isolate_target=test)) |
| 45 for test in api.ANDROID_JUNIT_TESTS: | 46 for test in api.ANDROID_JUNIT_TESTS: |
| 46 tests.append(AndroidJunitTest(test)) | 47 tests.append(AndroidJunitTest(test)) |
| 47 | 48 |
| 48 return tests | 49 return tests |
| 49 | 50 |
| 50 | 51 |
| 51 # TODO(kjellander): Continue refactoring an integrate the classes in the | 52 # TODO(kjellander): Continue refactoring an integrate the classes in the |
| 52 # chromium_tests recipe module instead (if possible). | 53 # chromium_tests recipe module instead (if possible). |
| 53 class Test(object): | 54 class Test(object): |
| 54 def __init__(self, name, enable_swarming=False, swarming_shards=1): | 55 def __init__(self, name, enable_swarming=False, swarming_shards=1): |
| 55 self._name = name | 56 self._name = name |
| 56 self._enable_swarming = enable_swarming | 57 self._enable_swarming = enable_swarming |
| 57 self._swarming_task = None | 58 self._swarming_task = None |
| 58 self._swarming_shards = swarming_shards | 59 self._swarming_shards = swarming_shards |
| 59 | 60 |
| 60 @property | |
| 61 def name(self): # pragma: no cover | |
| 62 return self._name | |
| 63 | |
| 64 @property | |
| 65 def enable_swarming(self): | |
| 66 return self._enable_swarming | |
| 67 | |
| 68 @property | |
| 69 def swarming_task(self): | |
| 70 return self._swarming_task | |
| 71 | |
| 72 def run_nonswarming(self, api, suffix): # pragma: no cover: | 61 def run_nonswarming(self, api, suffix): # pragma: no cover: |
| 73 raise NotImplementedError() | 62 raise NotImplementedError() |
| 74 | 63 |
| 75 def pre_run(self, api, suffix): | 64 def pre_run(self, api, suffix): |
| 76 return [] | 65 return [] |
| 77 | 66 |
| 78 def run(self, api, suffix): | 67 def run(self, api, suffix): |
| 79 if self._enable_swarming: | 68 if self._enable_swarming: |
| 80 isolated_hash = api.m.isolate.isolated_tests[self._name] | 69 isolated_hash = api.m.isolate.isolated_tests[self._name] |
| 81 self._swarming_task = api.m.swarming.task(self._name, isolated_hash, | 70 self._swarming_task = api.m.swarming.task(self._name, isolated_hash, |
| 82 shards=self._swarming_shards) | 71 shards=self._swarming_shards) |
| 83 api.m.swarming.trigger_task(self._swarming_task) | 72 api.m.swarming.trigger_task(self._swarming_task) |
| 84 else: | 73 else: |
| 85 self.run_nonswarming(api, suffix) | 74 self.run_nonswarming(api, suffix) |
| 86 | 75 |
| 87 def post_run(self, api, suffix): | 76 def post_run(self, api, suffix): |
| 88 return [] | 77 if self._enable_swarming: |
| 78 api.swarming.collect_task(self._swarming_task) |
| 79 else: |
| 80 return [] |
| 89 | 81 |
| 90 class WebRTCTest(Test): | 82 class WebRTCTest(Test): |
| 91 """A normal WebRTC desktop test.""" | 83 """A normal WebRTC desktop test.""" |
| 92 def __init__(self, name, revision=None, enable_swarming=False, | 84 def __init__(self, name, revision=None, enable_swarming=False, |
| 93 swarming_shards=1, parallel=True, perf_test=False, | 85 swarming_shards=1, parallel=True, perf_test=False, |
| 94 **runtest_kwargs): | 86 **runtest_kwargs): |
| 95 super(WebRTCTest, self).__init__(name, enable_swarming, swarming_shards) | 87 super(WebRTCTest, self).__init__(name, enable_swarming, swarming_shards) |
| 96 self._revision = revision | 88 self._revision = revision |
| 97 self._parallel = parallel | 89 self._parallel = parallel |
| 98 self._perf_test = perf_test | 90 self._perf_test = perf_test |
| 99 self._runtest_kwargs = runtest_kwargs | 91 self._runtest_kwargs = runtest_kwargs |
| 100 | 92 |
| 101 def run_nonswarming(self, api, suffix): | 93 def run_nonswarming(self, api, suffix): |
| 102 self._runtest_kwargs['test'] = self._name | 94 self._runtest_kwargs['test'] = self._name |
| 103 api.add_test(name=self._name, revision=self._revision, | 95 api.add_test(name=self._name, revision=self._revision, |
| 104 parallel=self._parallel, perf_test=self._perf_test, | 96 parallel=self._parallel, perf_test=self._perf_test, |
| 105 **self._runtest_kwargs) | 97 **self._runtest_kwargs) |
| 106 | 98 |
| 107 | |
| 108 class BaremetalTest(WebRTCTest): | 99 class BaremetalTest(WebRTCTest): |
| 109 """A WebRTC desktop test that uses audio and/or video devices.""" | 100 """A WebRTC desktop test that uses audio and/or video devices.""" |
| 110 def __init__(self, name, revision, perf_test=False, **runtest_kwargs): | 101 def __init__(self, name, revision, perf_test=False, **runtest_kwargs): |
| 111 # Tests accessing hardware devices shouldn't be run in parallel. | 102 # Tests accessing hardware devices shouldn't be run in parallel. |
| 112 super(BaremetalTest, self).__init__(name, revision, parallel=False, | 103 super(BaremetalTest, self).__init__(name, revision, parallel=False, |
| 113 perf_test=perf_test, **runtest_kwargs) | 104 perf_test=perf_test, **runtest_kwargs) |
| 114 | 105 |
| 115 class AndroidJunitTest(Test): | 106 class AndroidJunitTest(Test): |
| 116 """Runs an Android Junit test.""" | 107 """Runs an Android Junit test.""" |
| 117 | 108 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 140 'run_%s' % self._name) | 131 'run_%s' % self._name) |
| 141 args = ['--verbose'] | 132 args = ['--verbose'] |
| 142 api.add_test(name=self._name, | 133 api.add_test(name=self._name, |
| 143 test=wrapper_script, | 134 test=wrapper_script, |
| 144 args=args, | 135 args=args, |
| 145 revision=self._revision, | 136 revision=self._revision, |
| 146 python_mode=True, | 137 python_mode=True, |
| 147 perf_test=True, | 138 perf_test=True, |
| 148 perf_dashboard_id=self._name) | 139 perf_dashboard_id=self._name) |
| 149 | 140 |
| OLD | NEW |