Files
ResInsight/ThirdParty/Ert/python/cmake/Modules/add_python_test.cmake
2017-06-22 11:51:46 +02:00

39 lines
1.6 KiB
CMake

# This macro will create a ctest based on the supplied TEST_CLASS. The
# TEST_CLASS argument should correspond to a valid Python path, i.e.
#
# >> import ${TEST_CLASS}
#
# should work. The actual test is by running a small test script which
# will invoke normal Python test discovery functionality. This is a
# macro, and relevant variables must be crrectly set in calling scope
# before it is invoked:
#
# PYTHON_TEST_RUNNER: Path to executable which will load the testcase
# given by ${TEST_CLASS} and run it.
#
#
# CTEST_PYTHONPATH: Normal colon separated path variable, should at
# least include the binary root directory of the current python
# installation, but can in addition contain the path to
# additional packages. The PYTHON_TEST_RUNNER should inspect the
# $CTEST_PYTHONPATH environment variable and update sys.path
# accordingly.
macro( addPythonTest TEST_CLASS )
set(TEST_NAME ${TEST_CLASS})
add_test(NAME ${TEST_NAME}
WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/${PYTHON_INSTALL_PREFIX}"
COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_BINARY_DIR}/bin/ctest_run_python ${TEST_CLASS} )
set(oneValueArgs LABELS)
cmake_parse_arguments(TEST_OPTIONS "" "${oneValueArgs}" "" ${ARGN})
if(TEST_OPTIONS_LABELS)
set_property(TEST ${TEST_NAME} PROPERTY LABELS "Python:${TEST_OPTIONS_LABELS}")
else()
set_property(TEST ${TEST_NAME} PROPERTY LABELS "Python")
endif()
set_property(TEST ${TEST_NAME} PROPERTY ENVIRONMENT "CTEST_PYTHONPATH=${CTEST_PYTHONPATH};ERT_ROOT=${ERT_ROOT}")
endmacro( )