Cycles tests: pass Blender custom arguments from CYCLESTEST_ARGS.
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Sat, 19 Aug 2017 10:09:28 +0000 (12:09 +0200)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Sat, 19 Aug 2017 16:14:16 +0000 (18:14 +0200)
This is useful for testing with different devices, split kernel, OSL,
impact of integrator settings, etc.

tests/python/cycles_render_tests.py

index 77bee4953ba6593717f232134c5083bc52689462..d4e796f35ae6afb2fb636f993d0e79ba66e65936 100755 (executable)
@@ -5,6 +5,7 @@ import argparse
 import glob
 import os
 import pathlib
+import shlex
 import shutil
 import subprocess
 import sys
@@ -52,38 +53,44 @@ def render_file(filepath):
     dirname = os.path.dirname(filepath)
     basedir = os.path.dirname(dirname)
     subject = os.path.basename(dirname)
+
+    custom_args = os.getenv('CYCLESTEST_ARGS')
+    custom_args = shlex.split(custom_args) if custom_args else []
+
+    # OSL and GPU examples
+    # custom_args += ["--python-expr", "import bpy; bpy.context.scene.cycles.shading_system = True"]
+    # custom_args += ["--python-expr", "import bpy; bpy.context.scene.cycles.device = 'GPU'"]
+
     if subject == 'opengl':
-        command = (
+        command = [
             BLENDER,
             "--window-geometry", "0", "0", "1", "1",
             "-noaudio",
             "--factory-startup",
             "--enable-autoexec",
             filepath,
-            "-E", "CYCLES",
-            # Run with OSL enabled
-            # "--python-expr", "import bpy; bpy.context.scene.cycles.shading_system = True",
+            "-E", "CYCLES"]
+        command += custom_args
+        command += [
             "-o", TEMP_FILE_MASK,
             "-F", "PNG",
             '--python', os.path.join(basedir,
                                      "util",
-                                     "render_opengl.py")
-        )
+                                     "render_opengl.py")]
     else:
-        command = (
+        command = [
             BLENDER,
             "--background",
             "-noaudio",
             "--factory-startup",
             "--enable-autoexec",
             filepath,
-            "-E", "CYCLES",
-            # Run with OSL enabled
-            # "--python-expr", "import bpy; bpy.context.scene.cycles.shading_system = True",
+            "-E", "CYCLES"]
+        command += custom_args
+        command += [
             "-o", TEMP_FILE_MASK,
             "-F", "PNG",
-            "-f", "1",
-            )
+            "-f", "1"]
     try:
         output = subprocess.check_output(command)
         if VERBOSE: