diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-02-10 16:52:54 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-02-10 16:52:54 +0300 |
commit | e33e58bf23f039ea077bb790684684068f009bff (patch) | |
tree | c448e89ac35f3818c690412106cd996bbaeb0e4a | |
parent | e991af0934c297c61978a292cf7102159fa2a317 (diff) |
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.
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/python/CMakeLists.txt | 3 | ||||
-rwxr-xr-x | tests/python/cycles_render_tests.py | 47 |
3 files changed, 38 insertions, 13 deletions
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: |