@@ -460,3 +460,86 @@ function(cmpBuildDateRevisionString)
460460 endif ()
461461
462462endfunction ()
463+
464+
465+ #-------------------------------------------------------------------------------
466+ # @Brief function AddPythonTest
467+ # @ NAME
468+ # @ FILE
469+ # @ PYTHONPATH
470+ #-------------------------------------------------------------------------------
471+ function (AddPythonTest)
472+ set (options )
473+ set (oneValueArgs NAME FILE)
474+ set (multiValueArgs PYTHONPATH)
475+ cmake_parse_arguments (ARGS "${options} " "${oneValueArgs} " "${multiValueArgs} " ${ARGN} )
476+ message (STATUS "ARGS_FILE:${ARGS_FILE} " )
477+ if (COMPLEX_BUILD_PYTHON)
478+ if (WIN32 )
479+ add_test (NAME ${ARGS_NAME}
480+ COMMAND ${complex_SOURCE_DIR} /wrapping/python/testing/anaconda_test.bat
481+ )
482+
483+ set_property (TEST ${ARGS_NAME}
484+ PROPERTY
485+ ENVIRONMENT
486+ "PYTHON_TEST_FILE=${ARGS_FILE} "
487+ "Python3_EXECUTABLE=${Python3_EXECUTABLE} "
488+ )
489+ else ()
490+ add_test (NAME ${ARGS_NAME}
491+ COMMAND ${complex_SOURCE_DIR} /wrapping/python/testing/anaconda_test.sh
492+ )
493+ set_property (TEST ${ARGS_NAME}
494+ PROPERTY
495+ ENVIRONMENT
496+ "PYTHON_TEST_FILE=${ARGS_FILE} "
497+ "Python3_EXECUTABLE=${Python3_EXECUTABLE} "
498+ )
499+ endif ()
500+ else ()
501+ add_test (NAME ${ARGS_NAME}
502+ COMMAND ${Python3_EXECUTABLE} ${ARGS_FILE}
503+ )
504+ endif ()
505+
506+ if (WIN32 )
507+ string (REPLACE ";" "\\ ;" ARGS_PYTHONPATH "${ARGS_PYTHONPATH} " )
508+ else ()
509+ string (REPLACE ";" ":" ARGS_PYTHONPATH "${ARGS_PYTHONPATH} " )
510+ endif ()
511+
512+ set_property (TEST ${ARGS_NAME}
513+ APPEND
514+ PROPERTY
515+ ENVIRONMENT
516+ "PYTHONPATH=${ARGS_PYTHONPATH} "
517+ )
518+ endfunction ()
519+
520+ #-------------------------------------------------------------------------------
521+ # @Brief function CreatePythonTests
522+ # @ PREFIX
523+ # @ INPUT_DIR
524+ # @ TEST_NAMES
525+ #-------------------------------------------------------------------------------
526+ function (CreatePythonTests)
527+ set (options )
528+ set (oneValueArgs PREFIX INPUT_DIR)
529+ set (multiValueArgs TEST_NAMES)
530+ cmake_parse_arguments (ARGS "${options} " "${oneValueArgs} " "${multiValueArgs} " ${ARGN} )
531+
532+ set (TESTS_PYTHONPATH
533+ "$<TARGET_FILE_DIR:complex>"
534+ )
535+
536+ foreach (test ${ARGS_TEST_NAMES} )
537+ string (REPLACE "/" "_" test_name ${test} )
538+ set (PY_TEST_NAME ${ARGS_PREFIX} _${test_name} )
539+
540+ AddPythonTest(NAME ${PY_TEST_NAME}
541+ FILE ${ARGS_INPUT_DIR} /${test} .py
542+ PYTHONPATH ${TESTS_PYTHONPATH}
543+ )
544+ endforeach ()
545+ endfunction ()
0 commit comments