diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/python/CMakeLists.txt | 51 |
1 files changed, 32 insertions, 19 deletions
diff --git a/tests/python/CMakeLists.txt b/tests/python/CMakeLists.txt index 2125694701c..28029430673 100644 --- a/tests/python/CMakeLists.txt +++ b/tests/python/CMakeLists.txt @@ -32,24 +32,39 @@ file(MAKE_DIRECTORY ${TEST_OUT_DIR}/io_tests) #~ message(FATAL_ERROR "CMake test directory not found!") #~ endif() -# all calls to blender use this -# --env-system-scripts allows to run without the install target, but does -# not work for all configurations. -if(WITH_CYCLES OR (APPLE AND (${CMAKE_GENERATOR} MATCHES "Xcode"))) - set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup) +# Blender arguments for tests. +set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup) + +# Always run tests from install path, so all required scripts and libraries +# are available and we are testing the actual installation layout. +# +# Getting the install path of the executable is somewhat involved, as there are +# no direct CMake generator expressions to get the install paths of executables. +if(GENERATOR_IS_MULTI_CONFIG) + string(REPLACE "\${BUILD_TYPE}" "$<CONFIG>" TEST_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}) +else() + string(REPLACE "\${BUILD_TYPE}" "" TEST_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}) +endif() + +if(MSVC) + set(TEST_BLENDER_EXE ${TEST_INSTALL_DIR}/blender.exe) + set(TEST_PYTHON_EXE "${TEST_INSTALL_DIR}/${BLENDER_VERSION_MAJOR}.${BLENDER_VERSION_MINOR}/python/bin/python$<$<CONFIG:Debug>:_d>") +elseif(APPLE) + set(TEST_BLENDER_EXE ${TEST_INSTALL_DIR}/Blender.app/Contents/MacOS/Blender) + set(TEST_PYTHON_EXE) else() - set(TEST_BLENDER_EXE_PARAMS --background -noaudio --factory-startup --env-system-scripts ${CMAKE_SOURCE_DIR}/release/scripts) + set(TEST_BLENDER_EXE ${TEST_INSTALL_DIR}/blender) + set(TEST_PYTHON_EXE) endif() -# for testing with valgrind prefix: valgrind --track-origins=yes --error-limit=no -# set(TEST_BLENDER_EXE_BARE ${TEST_BLENDER_EXE}) -# set(TEST_BLENDER_EXE ${TEST_BLENDER_EXE} ${TEST_BLENDER_EXE_PARAMS} ) +# For testing with Valgrind +# set(TEST_BLENDER_EXE valgrind --track-origins=yes --error-limit=no ${TEST_BLENDER_EXE}) # Run Blender command with parameters. function(add_blender_test testname) add_test( NAME ${testname} - COMMAND "$<TARGET_FILE:blender>" ${TEST_BLENDER_EXE_PARAMS} ${ARGN} + COMMAND "${TEST_BLENDER_EXE}" ${TEST_BLENDER_EXE_PARAMS} ${ARGN} ) # Don't fail tests on leaks since these often happen in external libraries @@ -62,9 +77,7 @@ function(add_python_test testname testscript) if(MSVC) add_test( NAME ${testname} - COMMAND - "$<TARGET_FILE_DIR:blender>/${BLENDER_VERSION_MAJOR}.${BLENDER_VERSION_MINOR}/python/bin/python$<$<CONFIG:Debug>:_d>" - ${testscript} ${ARGN} + COMMAND ${TEST_PYTHON_EXE} ${testscript} ${ARGN} ) else() add_test( @@ -528,7 +541,7 @@ if(WITH_CYCLES OR WITH_OPENGL_RENDER_TESTS) add_python_test( cycles_${render_test} ${CMAKE_CURRENT_LIST_DIR}/cycles_render_tests.py - -blender "$<TARGET_FILE:blender>" + -blender "${TEST_BLENDER_EXE}" -testdir "${TEST_SRC_DIR}/render/${render_test}" -idiff "${OPENIMAGEIO_IDIFF}" -outdir "${TEST_OUT_DIR}/cycles" @@ -541,7 +554,7 @@ if(WITH_CYCLES OR WITH_OPENGL_RENDER_TESTS) add_python_test( eevee_${render_test}_test ${CMAKE_CURRENT_LIST_DIR}/eevee_render_tests.py - -blender "$<TARGET_FILE:blender>" + -blender "${TEST_BLENDER_EXE}" -testdir "${TEST_SRC_DIR}/render/${render_test}" -idiff "${OPENIMAGEIO_IDIFF}" -outdir "${TEST_OUT_DIR}/eevee" @@ -552,7 +565,7 @@ if(WITH_CYCLES OR WITH_OPENGL_RENDER_TESTS) add_python_test( workbench_${render_test}_test ${CMAKE_CURRENT_LIST_DIR}/workbench_render_tests.py - -blender "$<TARGET_FILE:blender>" + -blender "${TEST_BLENDER_EXE}" -testdir "${TEST_SRC_DIR}/render/${render_test}" -idiff "${OPENIMAGEIO_IDIFF}" -outdir "${TEST_OUT_DIR}/workbench" @@ -579,7 +592,7 @@ if(WITH_OPENGL_DRAW_TESTS) add_python_test( opengl_draw_${child} ${CMAKE_CURRENT_LIST_DIR}/opengl_draw_tests.py - -blender "$<TARGET_FILE:blender>" + -blender "${TEST_BLENDER_EXE}" -testdir "${child_path}" -idiff "${OPENIMAGEIO_IDIFF}" -outdir "${TEST_OUT_DIR}/opengl_draw" @@ -602,7 +615,7 @@ if(WITH_ALEMBIC) add_python_test( alembic_tests ${CMAKE_CURRENT_LIST_DIR}/alembic_tests.py - --blender "$<TARGET_FILE:blender>" + --blender "${TEST_BLENDER_EXE}" --testdir "${TEST_SRC_DIR}/alembic" --alembic-root "${ALEMBIC_ROOT_DIR}" ) @@ -619,7 +632,7 @@ if(WITH_CODEC_FFMPEG) add_python_test( ffmpeg ${CMAKE_CURRENT_LIST_DIR}/ffmpeg_tests.py - --blender "$<TARGET_FILE:blender>" + --blender "${TEST_BLENDER_EXE}" --testdir "${TEST_SRC_DIR}/ffmpeg" ) endif() |