Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: scripts/slave/recipe_modules/webrtc/steps.py

Issue 2438993002: WebRTC: Make WebRTC's Test more similar to Chromium's GTestTest (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698