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

Unified Diff: gm/rebaseline_server/compare_rendered_pictures.py

Issue 480293002: rebaseline_server: constrain setADir/setBDir to consistently refer to single directories, not lists (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | gm/rebaseline_server/compare_rendered_pictures_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gm/rebaseline_server/compare_rendered_pictures.py
diff --git a/gm/rebaseline_server/compare_rendered_pictures.py b/gm/rebaseline_server/compare_rendered_pictures.py
index 91bce02eac2fc0054fc1111c5d80bcb2abe1a7ba..f1af2e02c7e59e24d95d8e584b09a6cfc38b1e5d 100755
--- a/gm/rebaseline_server/compare_rendered_pictures.py
+++ b/gm/rebaseline_server/compare_rendered_pictures.py
@@ -85,7 +85,7 @@ class RenderedPicturesComparisons(results.BaseComparisons):
"""
def __init__(self,
- setA_dirs, setB_dirs,
+ setA_dir, setB_dir,
setA_section, setB_section,
image_diff_db,
image_base_gs_url=DEFAULT_IMAGE_BASE_GS_URL, diff_base_url=None,
@@ -100,12 +100,12 @@ class RenderedPicturesComparisons(results.BaseComparisons):
asynchronously warm up the ImageDiffDB cache but not fill in self._results.
Args:
- setA_dirs: list of root directories to copy all JSON summaries from,
- and to use as setA within the comparisons. These directories may be
- gs:// URLs, special "repo:" URLs, or local filepaths.
- setB_dirs: list of root directories to copy all JSON summaries from,
- and to use as setB within the comparisons. These directories may be
- gs:// URLs, special "repo:" URLs, or local filepaths.
+ setA_dir: root directory to copy all JSON summaries from, and to use as
+ setA within the comparisons. This directory may be specified as a
+ gs:// URL, special "repo:" URL, or local filepath.
+ setB_dir: root directory to copy all JSON summaries from, and to use as
+ setB within the comparisons. This directory may be specified as a
+ gs:// URL, special "repo:" URL, or local filepath.
setA_section: which section within setA to examine; must be one of
ALLOWED_SECTION_NAMES
setB_section: which section within setB to examine; must be one of
@@ -159,29 +159,23 @@ class RenderedPicturesComparisons(results.BaseComparisons):
try:
setA_root = os.path.join(tempdir, 'setA')
setB_root = os.path.join(tempdir, 'setB')
- setA_repo_revision = None
- setB_repo_revision = None
- for source_dir in setA_dirs:
- self._copy_dir_contents(source_dir=source_dir, dest_dir=setA_root)
- # TODO(stephana): There is a potential race condition here... we copy
- # the contents out of the source_dir, and THEN we get the commithash
- # of source_dir. If source_dir points at a git checkout, and that
- # checkout is updated (by a different thread/process) during this
- # operation, then the contents and commithash will be out of sync.
- setA_repo_revision = self._get_repo_revision(
- source_dir=source_dir, assert_if_not=setA_repo_revision)
- for source_dir in setB_dirs:
- self._copy_dir_contents(source_dir=source_dir, dest_dir=setB_root)
- setB_repo_revision = self._get_repo_revision(
- source_dir=source_dir, assert_if_not=setB_repo_revision)
+ # TODO(stephana): There is a potential race condition here... we copy
+ # the contents out of the source_dir, and THEN we get the commithash
+ # of source_dir. If source_dir points at a git checkout, and that
+ # checkout is updated (by a different thread/process) during this
+ # operation, then the contents and commithash will be out of sync.
+ self._copy_dir_contents(source_dir=setA_dir, dest_dir=setA_root)
+ setA_repo_revision = self._get_repo_revision(source_dir=setA_dir)
+ self._copy_dir_contents(source_dir=setB_dir, dest_dir=setB_root)
+ setB_repo_revision = self._get_repo_revision(source_dir=setB_dir)
self._setA_descriptions = {
- results.KEY__SET_DESCRIPTIONS__DIR: setA_dirs,
+ results.KEY__SET_DESCRIPTIONS__DIR: setA_dir,
results.KEY__SET_DESCRIPTIONS__REPO_REVISION: setA_repo_revision,
results.KEY__SET_DESCRIPTIONS__SECTION: setA_section,
}
self._setB_descriptions = {
- results.KEY__SET_DESCRIPTIONS__DIR: setB_dirs,
+ results.KEY__SET_DESCRIPTIONS__DIR: setB_dir,
results.KEY__SET_DESCRIPTIONS__REPO_REVISION: setB_repo_revision,
results.KEY__SET_DESCRIPTIONS__SECTION: setB_section,
}
@@ -468,23 +462,17 @@ class RenderedPicturesComparisons(results.BaseComparisons):
else:
shutil.copytree(source_dir, dest_dir)
- def _get_repo_revision(self, source_dir, assert_if_not=None):
+ def _get_repo_revision(self, source_dir):
"""Get the commit hash of source_dir, IF it refers to a git checkout.
Args:
source_dir: path to source dir (GS URL, local filepath, or a special
"repo:" URL type that points at a file within our Skia checkout;
only the "repo:" URL type will have a commit hash.
- assert_if_not: if not None, raise an Exception if source_dir has a
- commit hash and that hash is not equal to this
"""
if source_dir.lower().startswith(REPO_URL_PREFIX):
repo_dir = os.path.join(REPO_BASEPATH, source_dir[len(REPO_URL_PREFIX):])
- revision = subprocess.check_output(
+ return subprocess.check_output(
args=[git_utils.GIT, 'rev-parse', 'HEAD'], cwd=repo_dir).strip()
- if assert_if_not and revision != assert_if_not:
- raise Exception('found revision %s that did not match %s' % (
- revision, assert_if_not))
- return revision
else:
return None
« 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