diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake index e8da5b5609c86fa80d499c57c9cd6a22779d213b..4b4ab6cb27f30a2eb60d908665ec66c01d233dd7 100644 --- a/scripts/cmake/test/AddTest.cmake +++ b/scripts/cmake/test/AddTest.cmake @@ -26,7 +26,7 @@ function (AddTest) # parse arguments set(options NONE) set(oneValueArgs EXECUTABLE PATH NAME WRAPPER TESTER) - set(multiValueArgs EXECUTABLE_ARGS DATA DIFF_DATA) + set(multiValueArgs EXECUTABLE_ARGS DATA DIFF_DATA WRAPPER_ARGS) cmake_parse_arguments(AddTest "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) # set defaults @@ -63,6 +63,9 @@ function (AddTest) if(AddTest_WRAPPER STREQUAL "callgrind" AND NOT VALGRIND_TOOL_PATH) message(FATAL_ERROR "Valgrind is required for callgrind wrapper but was not found!") endif() + if(AddTest_WRAPPER STREQUAL "mpirun" AND NOT MPIRUN_TOOL_PATH) + message(FATAL_ERROR "mpirun is required for mpirun wrapper but was not found!") + endif() if(AddTest_WRAPPER STREQUAL "time") set(WRAPPER_COMMAND time) @@ -72,6 +75,8 @@ function (AddTest) elseif(AddTest_WRAPPER STREQUAL "callgrind" AND VALGRIND_TOOL_PATH) set(WRAPPER_COMMAND "${VALGRIND_TOOL_PATH} --tool=callgrind --branch-sim=yes --cache-sim=yes --dump-instr=yes --collect-jumps=yes") unset(tester) + elseif(AddTest_WRAPPER STREQUAL "mpirun") + set(WRAPPER_COMMAND "${MPIRUN_TOOL_PATH} ${AddTest_WRAPPER_ARGS}") endif() # --- Implement testers --- diff --git a/scripts/cmake/test/Test.cmake b/scripts/cmake/test/Test.cmake index d68cdc6c62f12824ebdf0a32da1aa70c62e6b3d1..36a4a1ae0562e31382891b38cb6eac630a0e2a1e 100644 --- a/scripts/cmake/test/Test.cmake +++ b/scripts/cmake/test/Test.cmake @@ -5,6 +5,7 @@ SET(TIME_TOOL_PATH time) FIND_PROGRAM(GREP_TOOL_PATH grep) FIND_PROGRAM(BASH_TOOL_PATH bash) FIND_PROGRAM(VALGRIND_TOOL_PATH valgrind) +FIND_PROGRAM(MPIRUN_TOOL_PATH mpirun) ENABLE_TESTING() # Enable CTest