[Bf-blender-cvs] [28532f18672] master: Cycles tests: add environment variable to update references renders.

Brecht Van Lommel noreply at git.blender.org
Tue Sep 12 13:01:23 CEST 2017


Commit: 28532f18672b1a2a8d3190f6ec1e7ec861699d66
Author: Brecht Van Lommel
Date:   Sun Sep 3 00:15:14 2017 +0200
Branches: master
https://developer.blender.org/rB28532f18672b1a2a8d3190f6ec1e7ec861699d66

Cycles tests: add environment variable to update references renders.

This will copy new renders over references renders:
CYCLESTEST_UPDATE=1 ctest -R cycles

===================================================================

M	tests/python/cycles_render_tests.py

===================================================================

diff --git a/tests/python/cycles_render_tests.py b/tests/python/cycles_render_tests.py
index ba4c04f7cf3..2bdadced80f 100755
--- a/tests/python/cycles_render_tests.py
+++ b/tests/python/cycles_render_tests.py
@@ -142,7 +142,7 @@ def test_get_images(filepath):
         os.makedirs(diff_dirpath)
     diff_img = os.path.join(diff_dirpath, testname + ".diff.png")
 
-    return ref_img, new_img, diff_img
+    return old_img, ref_img, new_img, diff_img
 
 
 class Report:
@@ -239,7 +239,7 @@ class Report:
         name = test_get_name(filepath)
         name = name.replace('_', ' ')
 
-        ref_img, new_img, diff_img = test_get_images(filepath)
+        old_img, ref_img, new_img, diff_img = test_get_images(filepath)
 
         status = error if error else ""
         style = """ style="background-color: #f99;" """ if error else ""
@@ -266,7 +266,7 @@ class Report:
 
 
 def verify_output(report, filepath):
-    ref_img, new_img, diff_img = test_get_images(filepath)
+    old_img, ref_img, new_img, diff_img = test_get_images(filepath)
 
     # copy new image
     if os.path.exists(new_img):
@@ -274,25 +274,35 @@ def verify_output(report, filepath):
     if os.path.exists(TEMP_FILE):
         shutil.copy(TEMP_FILE, new_img)
 
+    update = os.getenv('CYCLESTEST_UPDATE')
+
+    if os.path.exists(ref_img):
+        # diff test with threshold
+        command = (
+            IDIFF,
+            "-fail", "0.016",
+            "-failpercent", "1",
+            ref_img,
+            TEMP_FILE,
+            )
+        try:
+            subprocess.check_output(command)
+            failed = False
+        except subprocess.CalledProcessError as e:
+            if VERBOSE:
+                print_message(e.output.decode("utf-8"))
+            failed = e.returncode != 1
+    else:
+        if not update:
+            return False
 
-    if not os.path.exists(ref_img):
-        return False
+        failed = True
 
-    # diff test with threshold
-    command = (
-        IDIFF,
-        "-fail", "0.016",
-        "-failpercent", "1",
-        ref_img,
-        TEMP_FILE,
-        )
-    try:
-        subprocess.check_output(command)
+    if failed and update:
+        # update reference
+        shutil.copy(new_img, ref_img)
+        shutil.copy(new_img, old_img)
         failed = False
-    except subprocess.CalledProcessError as e:
-        if VERBOSE:
-            print_message(e.output.decode("utf-8"))
-        failed = e.returncode != 1
 
     # generate diff image
     command = (



More information about the Bf-blender-cvs mailing list