[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