mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-11 08:20:18 -06:00
FindMatlab: Use -batch option in matlab_add_unit_test if possible
This commit is contained in:
committed by
Brad King
parent
ebb0685824
commit
8468dfb35f
@@ -968,6 +968,16 @@ function(matlab_add_unit_test)
|
||||
message(FATAL_ERROR "[MATLAB] The Matlab test name cannot be empty")
|
||||
endif()
|
||||
|
||||
# The option to run a batch program with MATLAB changes depending on the MATLAB version
|
||||
# For MATLAB before R2019a (9.6), the only supported option is -r, afterwords the suggested option
|
||||
# is -batch as -r is deprecated
|
||||
set(maut_BATCH_OPTION "-r")
|
||||
if(NOT (Matlab_VERSION_STRING STREQUAL ""))
|
||||
if(Matlab_VERSION_STRING VERSION_GREATER_EQUAL "9.6")
|
||||
set(maut_BATCH_OPTION "-batch")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_test(NAME ${${prefix}_NAME}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
"-Dtest_name=${${prefix}_NAME}"
|
||||
@@ -981,6 +991,7 @@ function(matlab_add_unit_test)
|
||||
"-Dunittest_file_to_run=${${prefix}_UNITTEST_FILE}"
|
||||
"-Dcustom_Matlab_test_command=${${prefix}_CUSTOM_TEST_COMMAND}"
|
||||
"-Dcmd_to_run_before_test=${${prefix}_UNITTEST_PRECOMMAND}"
|
||||
"-Dmaut_BATCH_OPTION=${maut_BATCH_OPTION}"
|
||||
-P ${_FindMatlab_SELF_DIR}/MatlabTestsRedirect.cmake
|
||||
${${prefix}_TEST_ARGS}
|
||||
${${prefix}_UNPARSED_ARGUMENTS}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
# -Dcustom_Matlab_test_command=""
|
||||
# -Dcmd_to_run_before_test=""
|
||||
# -Dunittest_file_to_run
|
||||
# -Dmaut_BATCH_OPTION="-batch"
|
||||
# -P FindMatlab_TestsRedirect.cmake
|
||||
|
||||
set(Matlab_UNIT_TESTS_CMD -nosplash -nodesktop -nodisplay ${Matlab_ADDITIONAL_STARTUP_OPTIONS})
|
||||
@@ -84,7 +85,7 @@ execute_process(
|
||||
# Do not use a full path to log file. Depend on the fact that the log file
|
||||
# is always going to go in the working_directory. This is because matlab
|
||||
# on unix is a shell script that does not handle spaces in the logfile path.
|
||||
COMMAND "${Matlab_PROGRAM}" ${Matlab_UNIT_TESTS_CMD} -logfile "${log_file_name}" -r "${Matlab_SCRIPT_TO_RUN}"
|
||||
COMMAND "${Matlab_PROGRAM}" ${Matlab_UNIT_TESTS_CMD} -logfile "${log_file_name}" "${maut_BATCH_OPTION}" "${Matlab_SCRIPT_TO_RUN}"
|
||||
RESULT_VARIABLE res
|
||||
${test_timeout}
|
||||
OUTPUT_QUIET # we do not want the output twice
|
||||
|
||||
Reference in New Issue
Block a user