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

Side by Side Diff: gm/rebaseline_server/compare_rendered_pictures.py

Issue 442203002: rebaseline_server live queries: allow comparison against summary files within the Skia repo (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: "repo:", man Created 6 years, 4 months 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
« no previous file with comments | « no previous file | gm/rebaseline_server/compare_rendered_pictures_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 2
3 """ 3 """
4 Copyright 2014 Google Inc. 4 Copyright 2014 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 Compare results of two render_pictures runs. 9 Compare results of two render_pictures runs.
10 10
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 FREEFORM_COLUMN_IDS = [ 48 FREEFORM_COLUMN_IDS = [
49 COLUMN__TILENUM, 49 COLUMN__TILENUM,
50 ] 50 ]
51 ORDERED_COLUMN_IDS = [ 51 ORDERED_COLUMN_IDS = [
52 COLUMN__RESULT_TYPE, 52 COLUMN__RESULT_TYPE,
53 COLUMN__SOURCE_SKP, 53 COLUMN__SOURCE_SKP,
54 COLUMN__TILED_OR_WHOLE, 54 COLUMN__TILED_OR_WHOLE,
55 COLUMN__TILENUM, 55 COLUMN__TILENUM,
56 ] 56 ]
57 57
58 # A special "repo:" URL type that we use to refer to Skia repo contents.
59 # (Useful for comparing against expectations files we store in our repo.)
60 REPO_URL_PREFIX = 'repo:'
61 REPO_BASEPATH = os.path.abspath(os.path.join(
62 os.path.dirname(os.path.abspath(__file__)), os.pardir, os.pardir))
63
58 64
59 class RenderedPicturesComparisons(results.BaseComparisons): 65 class RenderedPicturesComparisons(results.BaseComparisons):
60 """Loads results from multiple render_pictures runs into an ImagePairSet. 66 """Loads results from multiple render_pictures runs into an ImagePairSet.
61 """ 67 """
62 68
63 def __init__(self, setA_dirs, setB_dirs, image_diff_db, 69 def __init__(self, setA_dirs, setB_dirs, image_diff_db,
64 image_base_gs_url=DEFAULT_IMAGE_BASE_GS_URL, 70 image_base_gs_url=DEFAULT_IMAGE_BASE_GS_URL,
65 diff_base_url=None, setA_label='setA', 71 diff_base_url=None, setA_label='setA',
66 setB_label='setB', gs=None, 72 setB_label='setB', gs=None,
67 truncate_results=False): 73 truncate_results=False):
68 """ 74 """
69 Args: 75 Args:
70 setA_dirs: list of root directories to copy all JSON summaries from, 76 setA_dirs: list of root directories to copy all JSON summaries from,
71 and to use as setA within the comparisons 77 and to use as setA within the comparisons. These directories may be
78 gs:// URLs, special "repo:" URLs, or local filepaths.
72 setB_dirs: list of root directories to copy all JSON summaries from, 79 setB_dirs: list of root directories to copy all JSON summaries from,
73 and to use as setB within the comparisons 80 and to use as setB within the comparisons. These directories may be
81 gs:// URLs, special "repo:" URLs, or local filepaths.
74 image_diff_db: ImageDiffDB instance 82 image_diff_db: ImageDiffDB instance
75 image_base_gs_url: "gs://" URL pointing at the Google Storage bucket/dir 83 image_base_gs_url: "gs://" URL pointing at the Google Storage bucket/dir
76 under which all render_pictures result images can 84 under which all render_pictures result images can
77 be found; this will be used to read images for comparison within 85 be found; this will be used to read images for comparison within
78 this code, and included in the ImagePairSet (as an HTTP URL) so its 86 this code, and included in the ImagePairSet (as an HTTP URL) so its
79 consumers know where to download the images from 87 consumers know where to download the images from
80 diff_base_url: base URL within which the client should look for diff 88 diff_base_url: base URL within which the client should look for diff
81 images; if not specified, defaults to a "file:///" URL representation 89 images; if not specified, defaults to a "file:///" URL representation
82 of image_diff_db's storage_root 90 of image_diff_db's storage_root
83 setA_label: description to use for results in setA 91 setA_label: description to use for results in setA
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 'got exception while creating ImagePair for' 326 'got exception while creating ImagePair for'
319 ' urlPair=("%s","%s"), source_skp_name="%s", tilenum="%s"' % ( 327 ' urlPair=("%s","%s"), source_skp_name="%s", tilenum="%s"' % (
320 imageA_relative_url, imageB_relative_url, source_skp_name, 328 imageA_relative_url, imageB_relative_url, source_skp_name,
321 tilenum)) 329 tilenum))
322 return None 330 return None
323 331
324 def _copy_dir_contents(self, source_dir, dest_dir): 332 def _copy_dir_contents(self, source_dir, dest_dir):
325 """Copy all contents of source_dir into dest_dir, recursing into subdirs. 333 """Copy all contents of source_dir into dest_dir, recursing into subdirs.
326 334
327 Args: 335 Args:
328 source_dir: path to source dir (GS URL or local filepath) 336 source_dir: path to source dir (GS URL, local filepath, or a special
337 "repo:" URL type that points at a file within our Skia checkout)
329 dest_dir: path to destination dir (local filepath) 338 dest_dir: path to destination dir (local filepath)
330 339
331 The copy operates as a "merge with overwrite": any files in source_dir will 340 The copy operates as a "merge with overwrite": any files in source_dir will
332 be "overlaid" on top of the existing content in dest_dir. Existing files 341 be "overlaid" on top of the existing content in dest_dir. Existing files
333 with the same names will be overwritten. 342 with the same names will be overwritten.
334 """ 343 """
335 if gs_utils.GSUtils.is_gs_url(source_dir): 344 if gs_utils.GSUtils.is_gs_url(source_dir):
336 (bucket, path) = gs_utils.GSUtils.split_gs_url(source_dir) 345 (bucket, path) = gs_utils.GSUtils.split_gs_url(source_dir)
337 self._gs.download_dir_contents(source_bucket=bucket, source_dir=path, 346 self._gs.download_dir_contents(source_bucket=bucket, source_dir=path,
338 dest_dir=dest_dir) 347 dest_dir=dest_dir)
348 elif source_dir.lower().startswith(REPO_URL_PREFIX):
349 repo_dir = os.path.join(REPO_BASEPATH, source_dir[len(REPO_URL_PREFIX):])
350 shutil.copytree(repo_dir, dest_dir)
339 else: 351 else:
340 shutil.copytree(source_dir, dest_dir) 352 shutil.copytree(source_dir, dest_dir)
OLDNEW
« no previous file with comments | « no previous file | gm/rebaseline_server/compare_rendered_pictures_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698