0
我想在單元測試中將ARGN傳遞給自定義run_test.cmake
。 我的CMake的腳本做的是:將ARGN傳遞給CMake的add_test()中的自定義腳本
# 1:
message("ARGN: ${ARGN}")
add_test(NAME ${_category}/${_test_name}_mpi${_nmpi}
WORKING_DIRECTORY "${_target_dir}"
COMMAND "${CMAKE_COMMAND}"
-DNMPI=${_nmpi}
-DTEST_PROG=${_target_dir}/${_target_exec}
-DTEST_ARGN=${ARGN}
-Doutput_blessed=${CMAKE_SOURCE_DIR}/unit_tests/${_category}/${_test_name}.output
-Doutput_test=${_target_dir}/output
-P ${CMAKE_SOURCE_DIR}/unit_tests/run_test.cmake
)
其中
# 2 (part of run_test.cmake):
message("TEST_ARGN: ${TEST_ARGN}")
# run the executable
execute_process(COMMAND mpirun -np ${NMPI} ${TEST_PROG} ${TEST_ARGN}
RESULT_VARIABLE HAD_ERROR
OUTPUT_VARIABLE output
ERROR_VARIABLE output)
的問題是,(1)獲取過程中配置郵件打印ARGN: ARG1;ARG2;ARG3
所有的參數,而(2)只獲得第一個,在運行時消息打印TEST_ARGN: ARG1
。
這絕對是我對Cmake缺乏瞭解,但我很想知道我做錯了什麼。
非常感謝,這解決了它! – Denis