# Create a unit test. The unit test will be serial if mpi_np is zero, otherwise it will be run with np cores # which should be small. macro( make_schism_test testname mpi_np) add_executable(${testname} ${testname}.F90) set_target_properties(${testname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) mpi_wrap(${testname}) add_dependencies(${testname} hydro core) target_link_libraries (${testname} hydro core) get_target_property(outdir ${testname} RUNTIME_OUTPUT_DIRECTORY) if(${mpi_np} LESS 1) message(STATUS "Serial test: ${testname}") add_test(NAME ${testname} COMMAND "${outdir}/${testname}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) else() message(STATUS "Parallel test: ${testname}") add_test(NAME ${testname} COMMAND mpirun --quiet -np ${mpi_np} "${outdir}/${testname}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) endif() set_property(TEST ${testname} PROPERTY FAIL_REGULAR_EXPRESSION "ASSERTION FAILED") endmacro()