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

Side by Side Diff: third_party/WebKit/Tools/Scripts/webkitpy/common/checkout/baseline_optimizer_unittest.py

Issue 2578213005: Use underscores to separate words in filenames in webkitpy. (Closed)
Patch Set: Created 4 years 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 (C) 2011 Google Inc. All rights reserved. 1 # Copyright (C) 2011 Google Inc. All rights reserved.
2 # 2 #
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are 4 # modification, are permitted provided that the following conditions are
5 # met: 5 # met:
6 # 6 #
7 # * Redistributions of source code must retain the above copyright 7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer. 8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above 9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following disclaimer 10 # copyright notice, this list of conditions and the following disclaimer
(...skipping 10 matching lines...) Expand all
21 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 28
29 import unittest 29 import unittest
30 30
31 from webkitpy.common.checkout.baselineoptimizer import BaselineOptimizer 31 from webkitpy.common.checkout.baseline_optimizer import BaselineOptimizer
32 from webkitpy.common.host_mock import MockHost 32 from webkitpy.common.host_mock import MockHost
33 from webkitpy.common.webkit_finder import WebKitFinder 33 from webkitpy.common.webkit_finder import WebKitFinder
34 34
35 35
36 class BaselineOptimizerTest(unittest.TestCase): 36 class BaselineOptimizerTest(unittest.TestCase):
37 37
38 # Protected method _move_baselines is tested below - pylint: disable=protect ed-access 38 # Protected method _move_baselines is tested below - pylint: disable=protect ed-access
39 def test_move_baselines(self): 39 def test_move_baselines(self):
40 host = MockHost() 40 host = MockHost()
41 host.filesystem.write_text_file('/mock-checkout/third_party/WebKit/Layou tTests/VirtualTestSuites', '[]') 41 host.filesystem.write_text_file('/mock-checkout/third_party/WebKit/Layou tTests/VirtualTestSuites', '[]')
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 }, 78 },
79 { 79 {
80 '/mock-checkout/third_party/WebKit/LayoutTests/platform/linux': 'bbb', 80 '/mock-checkout/third_party/WebKit/LayoutTests/platform/linux': 'bbb',
81 '/mock-checkout/third_party/WebKit/LayoutTests': 'aaa', 81 '/mock-checkout/third_party/WebKit/LayoutTests': 'aaa',
82 }) 82 })
83 self.assertEqual( 83 self.assertEqual(
84 host.filesystem.read_binary_file( 84 host.filesystem.read_binary_file(
85 '/mock-checkout/third_party/WebKit/LayoutTests/another/test-expe cted.txt'), 85 '/mock-checkout/third_party/WebKit/LayoutTests/another/test-expe cted.txt'),
86 'result A') 86 'result A')
87 87
88 def _assertOptimization(self, results_by_directory, expected_new_results_by_ directory, 88 def _assert_optimization(
89 baseline_dirname='', host=None): 89 self,
90 results_by_directory,
91 directory_to_new_results,
92 baseline_dirname='', host=None):
90 if not host: 93 if not host:
91 host = MockHost() 94 host = MockHost()
92 fs = host.filesystem 95 fs = host.filesystem
93 webkit_base = WebKitFinder(fs).webkit_base() 96 webkit_base = WebKitFinder(fs).webkit_base()
94 baseline_name = 'mock-baseline-expected.txt' 97 baseline_name = 'mock-baseline-expected.txt'
95 fs.write_text_file(fs.join(webkit_base, 'LayoutTests', 'VirtualTestSuite s'), 98 fs.write_text_file(fs.join(webkit_base, 'LayoutTests', 'VirtualTestSuite s'),
96 '[{"prefix": "gpu", "base": "fast/canvas", "args": [" --foo"]}]') 99 '[{"prefix": "gpu", "base": "fast/canvas", "args": [" --foo"]}]')
97 100
98 for dirname, contents in results_by_directory.items(): 101 for dirname, contents in results_by_directory.items():
99 path = fs.join(webkit_base, 'LayoutTests', dirname, baseline_name) 102 path = fs.join(webkit_base, 'LayoutTests', dirname, baseline_name)
100 fs.write_binary_file(path, contents) 103 fs.write_binary_file(path, contents)
101 104
102 baseline_optimizer = BaselineOptimizer(host, host.port_factory.get( 105 baseline_optimizer = BaselineOptimizer(host, host.port_factory.get(
103 ), host.port_factory.all_port_names()) 106 ), host.port_factory.all_port_names())
104 self.assertTrue(baseline_optimizer.optimize(fs.join(baseline_dirname, ba seline_name))) 107 self.assertTrue(baseline_optimizer.optimize(fs.join(baseline_dirname, ba seline_name)))
105 108
106 for dirname, contents in expected_new_results_by_directory.items(): 109 for dirname, contents in directory_to_new_results.items():
107 path = fs.join(webkit_base, 'LayoutTests', dirname, baseline_name) 110 path = fs.join(webkit_base, 'LayoutTests', dirname, baseline_name)
108 if contents is not None: 111 if contents is not None:
109 self.assertEqual(fs.read_binary_file(path), contents) 112 self.assertEqual(fs.read_binary_file(path), contents)
110 113
111 def test_linux_redundant_with_win(self): 114 def test_linux_redundant_with_win(self):
112 self._assertOptimization( 115 self._assert_optimization(
113 { 116 {
114 'platform/win': '1', 117 'platform/win': '1',
115 'platform/linux': '1', 118 'platform/linux': '1',
116 }, 119 },
117 { 120 {
118 'platform/win': '1', 121 'platform/win': '1',
119 }) 122 })
120 123
121 def test_covers_mac_win_linux(self): 124 def test_covers_mac_win_linux(self):
122 self._assertOptimization( 125 self._assert_optimization(
123 { 126 {
124 'platform/mac': '1', 127 'platform/mac': '1',
125 'platform/win': '1', 128 'platform/win': '1',
126 'platform/linux': '1', 129 'platform/linux': '1',
127 '': None, 130 '': None,
128 }, 131 },
129 { 132 {
130 '': '1', 133 '': '1',
131 }) 134 })
132 135
133 def test_overwrites_root(self): 136 def test_overwrites_root(self):
134 self._assertOptimization( 137 self._assert_optimization(
135 { 138 {
136 'platform/mac': '1', 139 'platform/mac': '1',
137 'platform/win': '1', 140 'platform/win': '1',
138 'platform/linux': '1', 141 'platform/linux': '1',
139 '': '2', 142 '': '2',
140 }, 143 },
141 { 144 {
142 '': '1', 145 '': '1',
143 }) 146 })
144 147
145 def test_no_new_common_directory(self): 148 def test_no_new_common_directory(self):
146 self._assertOptimization( 149 self._assert_optimization(
147 { 150 {
148 'platform/mac': '1', 151 'platform/mac': '1',
149 'platform/linux': '1', 152 'platform/linux': '1',
150 '': '2', 153 '': '2',
151 }, 154 },
152 { 155 {
153 'platform/mac': '1', 156 'platform/mac': '1',
154 'platform/linux': '1', 157 'platform/linux': '1',
155 '': '2', 158 '': '2',
156 }) 159 })
157 160
158 def test_local_optimization(self): 161 def test_local_optimization(self):
159 self._assertOptimization( 162 self._assert_optimization(
160 { 163 {
161 'platform/mac': '1', 164 'platform/mac': '1',
162 'platform/linux': '1', 165 'platform/linux': '1',
163 'platform/linux-precise': '1', 166 'platform/linux-precise': '1',
164 }, 167 },
165 { 168 {
166 'platform/mac': '1', 169 'platform/mac': '1',
167 'platform/linux': '1', 170 'platform/linux': '1',
168 }) 171 })
169 172
170 def test_local_optimization_skipping_a_port_in_the_middle(self): 173 def test_local_optimization_skipping_a_port_in_the_middle(self):
171 self._assertOptimization( 174 self._assert_optimization(
172 { 175 {
173 'platform/mac-snowleopard': '1', 176 'platform/mac-snowleopard': '1',
174 'platform/win': '1', 177 'platform/win': '1',
175 'platform/linux': '1', 178 'platform/linux': '1',
176 'platform/linux-precise': '1', 179 'platform/linux-precise': '1',
177 }, 180 },
178 { 181 {
179 'platform/mac-snowleopard': '1', 182 'platform/mac-snowleopard': '1',
180 'platform/win': '1', 183 'platform/win': '1',
181 }) 184 })
182 185
183 def test_baseline_redundant_with_root(self): 186 def test_baseline_redundant_with_root(self):
184 self._assertOptimization( 187 self._assert_optimization(
185 { 188 {
186 'platform/mac': '1', 189 'platform/mac': '1',
187 'platform/win': '2', 190 'platform/win': '2',
188 '': '2', 191 '': '2',
189 }, 192 },
190 { 193 {
191 'platform/mac': '1', 194 'platform/mac': '1',
192 '': '2', 195 '': '2',
193 }) 196 })
194 197
195 def test_root_baseline_unused(self): 198 def test_root_baseline_unused(self):
196 self._assertOptimization( 199 self._assert_optimization(
197 { 200 {
198 'platform/mac': '1', 201 'platform/mac': '1',
199 'platform/win': '2', 202 'platform/win': '2',
200 '': '3', 203 '': '3',
201 }, 204 },
202 { 205 {
203 'platform/mac': '1', 206 'platform/mac': '1',
204 'platform/win': '2', 207 'platform/win': '2',
205 }) 208 })
206 209
207 def test_root_baseline_unused_and_non_existant(self): 210 def test_root_baseline_unused_and_non_existant(self):
208 self._assertOptimization( 211 self._assert_optimization(
209 { 212 {
210 'platform/mac': '1', 213 'platform/mac': '1',
211 'platform/win': '2', 214 'platform/win': '2',
212 }, 215 },
213 { 216 {
214 'platform/mac': '1', 217 'platform/mac': '1',
215 'platform/win': '2', 218 'platform/win': '2',
216 }) 219 })
217 220
218 def test_virtual_root_redundant_with_actual_root(self): 221 def test_virtual_root_redundant_with_actual_root(self):
219 self._assertOptimization( 222 self._assert_optimization(
220 { 223 {
221 'virtual/gpu/fast/canvas': '2', 224 'virtual/gpu/fast/canvas': '2',
222 'fast/canvas': '2', 225 'fast/canvas': '2',
223 }, 226 },
224 { 227 {
225 'virtual/gpu/fast/canvas': None, 228 'virtual/gpu/fast/canvas': None,
226 'fast/canvas': '2', 229 'fast/canvas': '2',
227 }, 230 },
228 baseline_dirname='virtual/gpu/fast/canvas') 231 baseline_dirname='virtual/gpu/fast/canvas')
229 232
230 def test_virtual_root_redundant_with_ancestors(self): 233 def test_virtual_root_redundant_with_ancestors(self):
231 self._assertOptimization( 234 self._assert_optimization(
232 { 235 {
233 'virtual/gpu/fast/canvas': '2', 236 'virtual/gpu/fast/canvas': '2',
234 'platform/mac/fast/canvas': '2', 237 'platform/mac/fast/canvas': '2',
235 'platform/win/fast/canvas': '2', 238 'platform/win/fast/canvas': '2',
236 }, 239 },
237 { 240 {
238 'virtual/gpu/fast/canvas': None, 241 'virtual/gpu/fast/canvas': None,
239 'fast/canvas': '2', 242 'fast/canvas': '2',
240 }, 243 },
241 baseline_dirname='virtual/gpu/fast/canvas') 244 baseline_dirname='virtual/gpu/fast/canvas')
242 245
243 def test_virtual_root_redundant_with_ancestors_skip_scm_commands(self):
244 self._assertOptimization(
245 {
246 'virtual/gpu/fast/canvas': '2',
247 'platform/mac/fast/canvas': '2',
248 'platform/win/fast/canvas': '2',
249 },
250 {
251 'virtual/gpu/fast/canvas': None,
252 'fast/canvas': '2',
253 },
254 baseline_dirname='virtual/gpu/fast/canvas')
255
256 def test_virtual_root_redundant_with_ancestors_skip_scm_commands_with_file_n ot_in_scm(self):
257 self._assertOptimization(
258 {
259 'virtual/gpu/fast/canvas': '2',
260 'platform/mac/fast/canvas': '2',
261 'platform/win/fast/canvas': '2',
262 },
263 {
264 'virtual/gpu/fast/canvas': None,
265 'fast/canvas': '2',
266 },
267 baseline_dirname='virtual/gpu/fast/canvas',
268 host=MockHost())
269
qyearsley 2016/12/17 18:58:57 As far as I can tell, these methods were both redu
Dirk Pranke 2016/12/18 02:46:41 Acknowledged.
270 def test_virtual_root_not_redundant_with_ancestors(self): 246 def test_virtual_root_not_redundant_with_ancestors(self):
271 self._assertOptimization( 247 self._assert_optimization(
272 { 248 {
273 'virtual/gpu/fast/canvas': '2', 249 'virtual/gpu/fast/canvas': '2',
274 'platform/mac/fast/canvas': '1', 250 'platform/mac/fast/canvas': '1',
275 }, 251 },
276 { 252 {
277 'virtual/gpu/fast/canvas': '2', 253 'virtual/gpu/fast/canvas': '2',
278 'platform/mac/fast/canvas': '1', 254 'platform/mac/fast/canvas': '1',
279 }, 255 },
280 baseline_dirname='virtual/gpu/fast/canvas') 256 baseline_dirname='virtual/gpu/fast/canvas')
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698