forked from NSCCN/hpc-app
fix: make MPI tests CI friendly
This commit is contained in:
parent
c80a2a536f
commit
f87ce92f0f
|
|
@ -5,6 +5,7 @@ project(hpc_stencil_demo LANGUAGES CXX)
|
|||
option(ENABLE_MPI "Build MPI executable" ON)
|
||||
option(ENABLE_TESTS "Build tests" ON)
|
||||
option(ENABLE_BENCHMARKS "Enable benchmark CTest labels" ON)
|
||||
option(ENABLE_MPI_OVERSUBSCRIBE "Allow MPI tests to oversubscribe small CI runners" ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
|
@ -49,11 +50,32 @@ if(ENABLE_TESTS)
|
|||
add_test(NAME stencil_unit_tests COMMAND stencil_unit_tests)
|
||||
|
||||
if(ENABLE_MPI)
|
||||
add_test(NAME stencil_mpi_smoke COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 2 $<TARGET_FILE:stencil_mpi> --size 1000 --steps 20)
|
||||
set(HPC_DEMO_MPIEXEC_PREFLAGS "")
|
||||
if(ENABLE_MPI_OVERSUBSCRIBE)
|
||||
list(APPEND HPC_DEMO_MPIEXEC_PREFLAGS "--oversubscribe")
|
||||
endif()
|
||||
|
||||
function(add_hpc_demo_mpi_test test_name ranks)
|
||||
add_test(
|
||||
NAME ${test_name}
|
||||
COMMAND
|
||||
${MPIEXEC_EXECUTABLE}
|
||||
${MPIEXEC_NUMPROC_FLAG} ${ranks}
|
||||
${HPC_DEMO_MPIEXEC_PREFLAGS}
|
||||
$<TARGET_FILE:stencil_mpi>
|
||||
${ARGN}
|
||||
)
|
||||
set_tests_properties(${test_name}
|
||||
PROPERTIES
|
||||
ENVIRONMENT "OMPI_ALLOW_RUN_AS_ROOT=1;OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1"
|
||||
)
|
||||
endfunction()
|
||||
|
||||
add_hpc_demo_mpi_test(stencil_mpi_smoke 2 --size 1000 --steps 20)
|
||||
endif()
|
||||
|
||||
if(ENABLE_BENCHMARKS AND ENABLE_MPI)
|
||||
add_test(NAME benchmark_stencil_mpi COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} 4 $<TARGET_FILE:stencil_mpi> --size 200000 --steps 200)
|
||||
add_hpc_demo_mpi_test(benchmark_stencil_mpi 4 --size 200000 --steps 200)
|
||||
set_tests_properties(benchmark_stencil_mpi PROPERTIES LABELS benchmark)
|
||||
endif()
|
||||
endif()
|
||||
|
|
@ -68,4 +90,3 @@ if(ENABLE_MPI)
|
|||
endif()
|
||||
|
||||
install(DIRECTORY include/ DESTINATION include)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue