| Index: gm/rebaseline_server/imagediffdb.py
|
| diff --git a/gm/rebaseline_server/imagediffdb.py b/gm/rebaseline_server/imagediffdb.py
|
| index 167134aaf4b2a2efb9f41f8de1b2e7601bf60690..3c5f45f60f846aaaa99a9a9316b68a2faac2e663 100644
|
| --- a/gm/rebaseline_server/imagediffdb.py
|
| +++ b/gm/rebaseline_server/imagediffdb.py
|
| @@ -125,8 +125,10 @@ class DiffRecord(object):
|
| try:
|
| skpdiff_summary_file = os.path.join(skpdiff_output_dir,
|
| 'skpdiff-output.json')
|
| - skpdiff_rgbdiff_dir = os.path.join(skpdiff_output_dir, 'rgbDiff')
|
| - skpdiff_whitediff_dir = os.path.join(skpdiff_output_dir, 'whiteDiff')
|
| + skpdiff_rgbdiff_dir = os.path.join(storage_root, RGBDIFFS_SUBDIR)
|
| + skpdiff_whitediff_dir = os.path.join(storage_root, WHITEDIFFS_SUBDIR)
|
| + _mkdir_unless_exists(skpdiff_rgbdiff_dir)
|
| + _mkdir_unless_exists(skpdiff_rgbdiff_dir)
|
|
|
| # TODO(epoger): Consider calling skpdiff ONCE for all image pairs,
|
| # instead of calling it separately for each image pair.
|
| @@ -134,9 +136,13 @@ class DiffRecord(object):
|
| # spinning up the skpdiff binary, etc.
|
| # Con: we would have to wait until all image pairs were loaded before
|
| # generating any of the diffs?
|
| + # Note(stephana): '--longnames' was added to allow for this
|
| + # case (multiple files at once) versus specifying output diffs
|
| + # directly.
|
| find_run_binary.run_command(
|
| [SKPDIFF_BINARY, '-p', expected_image_file, actual_image_file,
|
| '--jsonp', 'false',
|
| + '--longnames', 'true',
|
| '--output', skpdiff_summary_file,
|
| '--differs', 'perceptual', 'different_pixels',
|
| '--rgbDiffDir', skpdiff_rgbdiff_dir,
|
| @@ -157,8 +163,6 @@ class DiffRecord(object):
|
| # See http://stackoverflow.com/a/626871
|
| self._max_diff_per_channel = [
|
| record['maxRedDiff'], record['maxGreenDiff'], record['maxBlueDiff']]
|
| - rgb_diff_path = record['rgbDiffPath']
|
| - white_diff_path = record['whiteDiffPath']
|
| per_differ_stats = record['diffs']
|
| for stats in per_differ_stats:
|
| differ_name = stats['differName']
|
| @@ -175,22 +179,6 @@ class DiffRecord(object):
|
| if not 0 <= perceptual_similarity <= 1:
|
| perceptual_similarity = 0
|
| self._perceptual_difference = 100 - (perceptual_similarity * 100)
|
| -
|
| - # Store the rgbdiff and whitediff images generated above.
|
| - diff_image_locator = _get_difference_locator(
|
| - expected_image_locator=expected_image_locator,
|
| - actual_image_locator=actual_image_locator)
|
| - basename = str(diff_image_locator) + image_suffix
|
| - _mkdir_unless_exists(os.path.join(storage_root, RGBDIFFS_SUBDIR))
|
| - _mkdir_unless_exists(os.path.join(storage_root, WHITEDIFFS_SUBDIR))
|
| - # TODO: Modify skpdiff's behavior so we can tell it exactly where to
|
| - # write the image files into, rather than having to move them around
|
| - # after skpdiff writes them out.
|
| - shutil.copyfile(rgb_diff_path,
|
| - os.path.join(storage_root, RGBDIFFS_SUBDIR, basename))
|
| - shutil.copyfile(white_diff_path,
|
| - os.path.join(storage_root, WHITEDIFFS_SUBDIR, basename))
|
| -
|
| finally:
|
| shutil.rmtree(skpdiff_output_dir)
|
|
|
| @@ -479,20 +467,3 @@ def _sanitize_locator(locator):
|
| return DISALLOWED_FILEPATH_CHAR_REGEX.sub('_', str(locator))
|
| else:
|
| return locator
|
| -
|
| -def _get_difference_locator(expected_image_locator, actual_image_locator):
|
| - """Returns the locator string used to look up the diffs between expected_image
|
| - and actual_image.
|
| -
|
| - We must keep this function in sync with getImageDiffRelativeUrl() in
|
| - static/loader.js
|
| -
|
| - Args:
|
| - expected_image_locator: locator string pointing at expected image
|
| - actual_image_locator: locator string pointing at actual image
|
| -
|
| - Returns: already-sanitized locator where the diffs between expected and
|
| - actual images can be found
|
| - """
|
| - return "%s-vs-%s" % (_sanitize_locator(expected_image_locator),
|
| - _sanitize_locator(actual_image_locator))
|
|
|