OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 | 2 |
3 """ | 3 """ |
4 Copyright 2013 Google Inc. | 4 Copyright 2013 Google Inc. |
5 | 5 |
6 Use of this source code is governed by a BSD-style license that can be | 6 Use of this source code is governed by a BSD-style license that can be |
7 found in the LICENSE file. | 7 found in the LICENSE file. |
8 | 8 |
9 HTTP server for our HTML rebaseline viewer. | 9 HTTP server for our HTML rebaseline viewer. |
10 """ | 10 """ |
(...skipping 27 matching lines...) Expand all Loading... |
38 import svn | 38 import svn |
39 | 39 |
40 # Imports from local dir | 40 # Imports from local dir |
41 import results | 41 import results |
42 | 42 |
43 ACTUALS_SVN_REPO = 'http://skia-autogen.googlecode.com/svn/gm-actual' | 43 ACTUALS_SVN_REPO = 'http://skia-autogen.googlecode.com/svn/gm-actual' |
44 EXPECTATIONS_SVN_REPO = 'http://skia.googlecode.com/svn/trunk/expectations/gm' | 44 EXPECTATIONS_SVN_REPO = 'http://skia.googlecode.com/svn/trunk/expectations/gm' |
45 PATHSPLIT_RE = re.compile('/([^/]+)/(.+)') | 45 PATHSPLIT_RE = re.compile('/([^/]+)/(.+)') |
46 TRUNK_DIRECTORY = os.path.dirname(os.path.dirname(os.path.dirname( | 46 TRUNK_DIRECTORY = os.path.dirname(os.path.dirname(os.path.dirname( |
47 os.path.realpath(__file__)))) | 47 os.path.realpath(__file__)))) |
| 48 GENERATED_IMAGES_ROOT = os.path.join(PARENT_DIRECTORY, 'static', |
| 49 'generated-images') |
48 | 50 |
49 # A simple dictionary of file name extensions to MIME types. The empty string | 51 # A simple dictionary of file name extensions to MIME types. The empty string |
50 # entry is used as the default when no extension was given or if the extension | 52 # entry is used as the default when no extension was given or if the extension |
51 # has no entry in this dictionary. | 53 # has no entry in this dictionary. |
52 MIME_TYPE_MAP = {'': 'application/octet-stream', | 54 MIME_TYPE_MAP = {'': 'application/octet-stream', |
53 'html': 'text/html', | 55 'html': 'text/html', |
54 'css': 'text/css', | 56 'css': 'text/css', |
55 'png': 'image/png', | 57 'png': 'image/png', |
56 'js': 'application/javascript', | 58 'js': 'application/javascript', |
57 'json': 'application/json' | 59 'json': 'application/json' |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 'Updating expected GM results in %s from SVN repo %s ...' % ( | 150 'Updating expected GM results in %s from SVN repo %s ...' % ( |
149 self._expectations_dir, EXPECTATIONS_SVN_REPO)) | 151 self._expectations_dir, EXPECTATIONS_SVN_REPO)) |
150 expectations_repo = svn.Svn(self._expectations_dir) | 152 expectations_repo = svn.Svn(self._expectations_dir) |
151 if not os.path.isdir(self._expectations_dir): | 153 if not os.path.isdir(self._expectations_dir): |
152 os.makedirs(self._expectations_dir) | 154 os.makedirs(self._expectations_dir) |
153 expectations_repo.Checkout(EXPECTATIONS_SVN_REPO, '.') | 155 expectations_repo.Checkout(EXPECTATIONS_SVN_REPO, '.') |
154 else: | 156 else: |
155 expectations_repo.Update('.') | 157 expectations_repo.Update('.') |
156 | 158 |
157 logging.info( | 159 logging.info( |
158 'Parsing results from actuals in %s and expectations in %s ...' % ( | 160 ('Parsing results from actuals in %s and expectations in %s, ' |
| 161 + 'and generating pixel diffs (may take a while) ...') % ( |
159 self._actuals_dir, self._expectations_dir)) | 162 self._actuals_dir, self._expectations_dir)) |
160 self.results = results.Results( | 163 self.results = results.Results( |
161 actuals_root=self._actuals_dir, | 164 actuals_root=self._actuals_dir, |
162 expected_root=self._expectations_dir) | 165 expected_root=self._expectations_dir, |
| 166 generated_images_root=GENERATED_IMAGES_ROOT) |
163 | 167 |
164 def _result_reloader(self): | 168 def _result_reloader(self): |
165 """ If --reload argument was specified, reload results at the appropriate | 169 """ If --reload argument was specified, reload results at the appropriate |
166 interval. | 170 interval. |
167 """ | 171 """ |
168 while self._reload_seconds: | 172 while self._reload_seconds: |
169 time.sleep(self._reload_seconds) | 173 time.sleep(self._reload_seconds) |
170 self.update_results() | 174 self.update_results() |
171 | 175 |
172 def run(self): | 176 def run(self): |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
438 args = parser.parse_args() | 442 args = parser.parse_args() |
439 global _SERVER | 443 global _SERVER |
440 _SERVER = Server(actuals_dir=args.actuals_dir, | 444 _SERVER = Server(actuals_dir=args.actuals_dir, |
441 expectations_dir=args.expectations_dir, | 445 expectations_dir=args.expectations_dir, |
442 port=args.port, export=args.export, editable=args.editable, | 446 port=args.port, export=args.export, editable=args.editable, |
443 reload_seconds=args.reload) | 447 reload_seconds=args.reload) |
444 _SERVER.run() | 448 _SERVER.run() |
445 | 449 |
446 if __name__ == '__main__': | 450 if __name__ == '__main__': |
447 main() | 451 main() |
OLD | NEW |