From: Sergey Sharybin Date: Fri, 10 Feb 2017 13:52:54 +0000 (+0100) Subject: CTests: Initial work to cover Cycles nodes with OpenGL tests X-Git-Tag: v2.79-rc1~1415 X-Git-Url: https://git.blender.org/gitweb/gitweb.cgi/blender.git/commitdiff_plain/e33e58bf23f039ea077bb790684684068f009bff CTests: Initial work to cover Cycles nodes with OpenGL tests Works similar to regular Cycles tests, just does OpenGL render to get output image. Seems to work fine with the only funny effect: Blender window will pop up for each of the tests. This is current limitation of our OpenGL context. Might be changed in the future. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 092de982b9d..1cc3e02e03a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -445,6 +445,7 @@ option(WITH_BOOST "Enable features depending on boost" ON) # Unit testsing option(WITH_GTESTS "Enable GTest unit testing" OFF) +option(WITH_OPENGL_TESTS "Enable OpenGL related unit testing (Experimental)" OFF) # Documentation diff --git a/tests/python/CMakeLists.txt b/tests/python/CMakeLists.txt index 3040e400cee..935a2a807fe 100644 --- a/tests/python/CMakeLists.txt +++ b/tests/python/CMakeLists.txt @@ -418,6 +418,9 @@ if(WITH_CYCLES) ) endif() endmacro() + if(WITH_OPENGL_TESTS) + add_cycles_render_test(opengl) + endif() add_cycles_render_test(reports) add_cycles_render_test(render) add_cycles_render_test(shader) diff --git a/tests/python/cycles_render_tests.py b/tests/python/cycles_render_tests.py index 64a71da301a..a030cc5e0de 100755 --- a/tests/python/cycles_render_tests.py +++ b/tests/python/cycles_render_tests.py @@ -47,20 +47,41 @@ def printMessage(type, status, message): def render_file(filepath): - 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", - "-o", TEMP_FILE_MASK, - "-F", "PNG", - "-f", "1", + dirname = os.path.dirname(filepath) + basedir = os.path.dirname(dirname) + subject = os.path.basename(dirname) + if subject == 'opengl': + 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", + "-o", TEMP_FILE_MASK, + "-F", "PNG", + '--python', os.path.join(basedir, + "util", + "render_opengl.py") ) + else: + 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", + "-o", TEMP_FILE_MASK, + "-F", "PNG", + "-f", "1", + ) try: output = subprocess.check_output(command) if VERBOSE: