OLD | NEW |
1 # Copyright (c) 2010 Google Inc. All rights reserved. | 1 # Copyright (c) 2010 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 13 matching lines...) Expand all Loading... |
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 fnmatch | 29 import fnmatch |
30 import os | 30 import os |
31 import os.path | 31 import os.path |
32 import BaseHTTPServer | 32 import BaseHTTPServer |
33 | 33 |
34 from webkitpy.common.host import Host # FIXME: This should not be needed! | |
35 from webkitpy.layout_tests.port.base import Port | 34 from webkitpy.layout_tests.port.base import Port |
36 from webkitpy.tool.servers.reflectionhandler import ReflectionHandler | 35 from webkitpy.tool.servers.reflectionhandler import ReflectionHandler |
37 | 36 |
38 | 37 |
39 STATE_NEEDS_REBASELINE = 'needs_rebaseline' | 38 STATE_NEEDS_REBASELINE = 'needs_rebaseline' |
40 STATE_REBASELINE_FAILED = 'rebaseline_failed' | 39 STATE_REBASELINE_FAILED = 'rebaseline_failed' |
41 STATE_REBASELINE_SUCCEEDED = 'rebaseline_succeeded' | 40 STATE_REBASELINE_SUCCEEDED = 'rebaseline_succeeded' |
42 | 41 |
43 | 42 |
44 def _get_actual_result_files(test_file, test_config): | 43 def _get_actual_result_files(test_file, test_config): |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 super(AllPlatformsPort, self).__init__(host, 'mac') | 167 super(AllPlatformsPort, self).__init__(host, 'mac') |
169 self._platforms_by_directory = dict([(self._webkit_baseline_path(p),
p) for p in test_config.platforms]) | 168 self._platforms_by_directory = dict([(self._webkit_baseline_path(p),
p) for p in test_config.platforms]) |
170 | 169 |
171 def baseline_search_path(self): | 170 def baseline_search_path(self): |
172 return self._platforms_by_directory.keys() | 171 return self._platforms_by_directory.keys() |
173 | 172 |
174 def platform_from_directory(self, directory): | 173 def platform_from_directory(self, directory): |
175 return self._platforms_by_directory[directory] | 174 return self._platforms_by_directory[directory] |
176 | 175 |
177 test_path = test_config.filesystem.join(test_config.layout_tests_directory,
test_file) | 176 test_path = test_config.filesystem.join(test_config.layout_tests_directory,
test_file) |
178 | 177 host = test_config.host |
179 # FIXME: This should get the Host from the test_config to be mockable! | |
180 host = Host() | |
181 host.initialize_scm() | |
182 host.filesystem = test_config.filesystem | |
183 all_platforms_port = AllPlatformsPort(host) | 178 all_platforms_port = AllPlatformsPort(host) |
184 | 179 |
185 all_test_baselines = {} | 180 all_test_baselines = {} |
186 for baseline_extension in ('.txt', '.checksum', '.png'): | 181 for baseline_extension in ('.txt', '.checksum', '.png'): |
187 test_baselines = test_config.test_port.expected_baselines(test_file, bas
eline_extension) | 182 test_baselines = test_config.test_port.expected_baselines(test_file, bas
eline_extension) |
188 baselines = all_platforms_port.expected_baselines(test_file, baseline_ex
tension, all_baselines=True) | 183 baselines = all_platforms_port.expected_baselines(test_file, baseline_ex
tension, all_baselines=True) |
189 for platform_directory, expected_filename in baselines: | 184 for platform_directory, expected_filename in baselines: |
190 if not platform_directory: | 185 if not platform_directory: |
191 continue | 186 continue |
192 if platform_directory == test_config.layout_tests_directory: | 187 if platform_directory == test_config.layout_tests_directory: |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 elif mode == 'diff-text': | 274 elif mode == 'diff-text': |
280 file_name = test_name + '-diff.txt' | 275 file_name = test_name + '-diff.txt' |
281 elif mode == 'diff-text-pretty': | 276 elif mode == 'diff-text-pretty': |
282 file_name = test_name + '-pretty-diff.html' | 277 file_name = test_name + '-pretty-diff.html' |
283 | 278 |
284 file_path = os.path.join(self.server.test_config.results_directory, file
_name) | 279 file_path = os.path.join(self.server.test_config.results_directory, file
_name) |
285 | 280 |
286 # Let results be cached for 60 seconds, so that they can be pre-fetched | 281 # Let results be cached for 60 seconds, so that they can be pre-fetched |
287 # by the UI | 282 # by the UI |
288 self._serve_file(file_path, cacheable_seconds=60) | 283 self._serve_file(file_path, cacheable_seconds=60) |
OLD | NEW |