[Bf-blender-cvs] [a84d6d0e1ce] temp-T99046-platform-reference-images: RenderReport: Add option to add platform specific overrides.
Jeroen Bakker
noreply at git.blender.org
Wed Jun 22 17:51:22 CEST 2022
Commit: a84d6d0e1cefa38071919b9eede8b1585e5d8bef
Author: Jeroen Bakker
Date: Wed Jun 22 09:52:29 2022 +0200
Branches: temp-T99046-platform-reference-images
https://developer.blender.org/rBa84d6d0e1cefa38071919b9eede8b1585e5d8bef
RenderReport: Add option to add platform specific overrides.
Reference images in the platform_reference_dir will be chosen before
images in reference_dir. This allows platform specific reference
images, with a common base.
To ignore set platform_reference_dir to None. The caller is responsible
of setting the platform reference dir as the unit test is more aware
what the definition of a platform is.
NOTE: should we rename it to reference_override_dir as that is better
suited to the actual implementation and responsibilities.
Differential Revision: https://developer.blender.org/D15265
===================================================================
M tests/python/modules/render_report.py
===================================================================
diff --git a/tests/python/modules/render_report.py b/tests/python/modules/render_report.py
index 15441918800..24b066a4167 100755
--- a/tests/python/modules/render_report.py
+++ b/tests/python/modules/render_report.py
@@ -78,12 +78,18 @@ def test_get_name(filepath):
return os.path.splitext(filename)[0]
-def test_get_images(output_dir, filepath, reference_dir):
+def test_get_images(output_dir, filepath, reference_dir, reference_override_dir):
testname = test_get_name(filepath)
dirpath = os.path.dirname(filepath)
old_dirpath = os.path.join(dirpath, reference_dir)
old_img = os.path.join(old_dirpath, testname + ".png")
+ if reference_override_dir:
+ platform_dirpath = os.path.join(dirpath, reference_override_dir)
+ platform_img = os.path.join(platform_dirpath, testname + ".png")
+ if os.path.exists(old_img):
+ old_dirpath = platform_dirpath
+ old_img = platform_img
ref_dirpath = os.path.join(output_dir, os.path.basename(dirpath), "ref")
ref_img = os.path.join(ref_dirpath, testname + ".png")
@@ -108,6 +114,7 @@ class Report:
'output_dir',
'global_dir',
'reference_dir',
+ 'reference_override_dir',
'idiff',
'pixelated',
'fail_threshold',
@@ -127,6 +134,7 @@ class Report:
self.output_dir = output_dir
self.global_dir = os.path.dirname(output_dir)
self.reference_dir = 'reference_renders'
+ self.reference_override_dir = None
self.idiff = idiff
self.compare_engine = None
self.fail_threshold = 0.016
@@ -161,6 +169,9 @@ class Report:
def set_reference_dir(self, reference_dir):
self.reference_dir = reference_dir
+ def set_reference_override_dir(self, reference_override_dir):
+ self.reference_override_dir = reference_override_dir
+
def set_compare_engine(self, other_engine, other_device=None):
self.compare_engine = (other_engine, other_device)
@@ -343,7 +354,7 @@ class Report:
name = test_get_name(filepath)
name = name.replace('_', ' ')
- old_img, ref_img, new_img, diff_img = test_get_images(self.output_dir, filepath, self.reference_dir)
+ old_img, ref_img, new_img, diff_img = test_get_images(self.output_dir, filepath, self.reference_dir, self.reference_override_dir)
status = error if error else ""
tr_style = """ class="table-danger" """ if error else ""
@@ -390,7 +401,7 @@ class Report:
self.compare_tests += test_html
def _diff_output(self, filepath, tmp_filepath):
- old_img, ref_img, new_img, diff_img = test_get_images(self.output_dir, filepath, self.reference_dir)
+ old_img, ref_img, new_img, diff_img = test_get_images(self.output_dir, filepath, self.reference_dir, self.reference_override_dir)
# Create reference render directory.
old_dirpath = os.path.dirname(old_img)
More information about the Bf-blender-cvs
mailing list