mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
39 lines
1.6 KiB
CMake
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( )
|