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) _______________________________________________ Bf-blender-cvs mailing list [email protected] List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs
