Update the CMake build system to conditionally exclude tests that
return MFEM_SKIP_RETURN_VALUE under certain config conditions. These exclusions will need to be updated manually when a test is modified to return or no longer return MFEM_SKIP_RETURN_VALUE. Added some tests missing from the CMake tests compared to the GNU make tests.
This commit is contained in:
@@ -93,6 +93,15 @@ if (MFEM_USE_MPI)
|
||||
)
|
||||
endif()
|
||||
|
||||
# Examples that return MFEM_SKIP_RETURN_VALUE in some cases:
|
||||
set(SKIP_TESTS)
|
||||
if (HYPRE_USING_CUDA OR HYPRE_USING_HIP)
|
||||
list(APPEND SKIP_TESTS ex19p.cpp ex28p.cpp)
|
||||
endif()
|
||||
if (MFEM_USE_SINGLE)
|
||||
list(APPEND SKIP_TESTS ex33.cpp ex33p.cpp)
|
||||
endif()
|
||||
|
||||
# Include the source directory where mfem.hpp and mfem-performance.hpp are.
|
||||
include_directories(BEFORE ${PROJECT_BINARY_DIR})
|
||||
|
||||
@@ -102,6 +111,9 @@ add_mfem_examples(ALL_EXE_SRCS)
|
||||
# Add a test for each example
|
||||
if (MFEM_ENABLE_TESTING)
|
||||
foreach(SRC_FILE ${ALL_EXE_SRCS})
|
||||
if (SRC_FILE IN_LIST SKIP_TESTS)
|
||||
continue()
|
||||
endif()
|
||||
get_filename_component(SRC_FILENAME ${SRC_FILE} NAME)
|
||||
string(REPLACE ".cpp" "" TEST_NAME ${SRC_FILENAME})
|
||||
|
||||
|
||||
@@ -55,11 +55,13 @@ if (MFEM_USE_MPI)
|
||||
-no-vis -p rod -tf 3 -m ${CMAKE_CURRENT_SOURCE_DIR}/cylinder-hex.mesh
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
|
||||
add_test(NAME maxwell_np=4
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS}
|
||||
$<TARGET_FILE:maxwell>
|
||||
-no-vis -abcs "-1" -dp "-0.3 0.0 0.0 0.3 0.0 0.0 0.1 1 .5 .5"
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
if (MFEM_USE_DOUBLE) # otherwise returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME maxwell_np=4
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS}
|
||||
$<TARGET_FILE:maxwell>
|
||||
-no-vis -abcs "-1" -dp "-0.3 0.0 0.0 0.3 0.0 0.0 0.1 1 .5 .5"
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -91,10 +91,22 @@ add_mfem_miniapp(polar-nc
|
||||
|
||||
# Add serial tests.
|
||||
if (MFEM_ENABLE_TESTING)
|
||||
add_test(NAME mesh-optimizer
|
||||
COMMAND mesh-optimizer -no-vis -m ${CMAKE_CURRENT_SOURCE_DIR}/icf.mesh)
|
||||
|
||||
add_test(NAME minimal-surface COMMAND minimal-surface -no-vis)
|
||||
set(SERIAL_TESTS
|
||||
mobius-strip
|
||||
klein-bottle
|
||||
toroid
|
||||
trimmer
|
||||
twist
|
||||
extruder
|
||||
mesh-optimizer
|
||||
minimal-surface
|
||||
polar-nc
|
||||
reflector
|
||||
mesh-quality
|
||||
)
|
||||
foreach(test ${SERIAL_TESTS})
|
||||
add_test(NAME ${test} COMMAND ${test} -no-vis)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# Parallel apps.
|
||||
@@ -123,15 +135,26 @@ if (MFEM_USE_MPI)
|
||||
|
||||
# Add parallel tests.
|
||||
if (MFEM_ENABLE_TESTING)
|
||||
add_test(NAME pmesh-optimizer_np=${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS} $<TARGET_FILE:pmesh-optimizer> -no-vis
|
||||
-m ${CMAKE_CURRENT_SOURCE_DIR}/icf.mesh
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
set(PARALLEL_TESTS
|
||||
pmesh-optimizer
|
||||
pmesh-fitting
|
||||
fit-node-position
|
||||
pminimal-surface
|
||||
)
|
||||
# Meshing miniapps that return MFEM_SKIP_RETURN_VALUE in some cases:
|
||||
set(SKIP_TESTS)
|
||||
if (HYPRE_USING_CUDA OR HYPRE_USING_HIP)
|
||||
list(APPEND SKIP_TESTS pmesh-fitting)
|
||||
endif()
|
||||
|
||||
add_test(NAME pminimal-surface_np=${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS} $<TARGET_FILE:pminimal-surface> -no-vis
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
foreach(test ${PARALLEL_TESTS})
|
||||
if (test IN_LIST SKIP_TESTS)
|
||||
continue()
|
||||
endif()
|
||||
add_test(NAME ${test}_np=${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS} $<TARGET_FILE:${test}> -no-vis
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -14,13 +14,13 @@ if (MFEM_USE_MPI)
|
||||
sbm_solver.cpp
|
||||
marking.cpp
|
||||
extrapolator.cpp
|
||||
integ_algoim.cpp)
|
||||
integ_algoim.cpp)
|
||||
list(APPEND DIST_COMMON_HEADERS
|
||||
sbm_solver.hpp
|
||||
sbm_aux.hpp
|
||||
marking.hpp
|
||||
extrapolator.hpp
|
||||
integ_algoim.hpp)
|
||||
integ_algoim.hpp)
|
||||
|
||||
convert_filenames_to_full_paths(DIST_COMMON_SOURCES)
|
||||
convert_filenames_to_full_paths(DIST_COMMON_HEADERS)
|
||||
@@ -50,16 +50,27 @@ if (MFEM_USE_MPI)
|
||||
LIBRARIES mfem mfem-common)
|
||||
|
||||
if (MFEM_ENABLE_TESTING)
|
||||
add_test(NAME shifted_distance_np${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS}
|
||||
$<TARGET_FILE:distance> -no-vis
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
set(PARALLEL_TESTS
|
||||
distance
|
||||
diffusion
|
||||
extrapolate
|
||||
lsf_integral
|
||||
)
|
||||
# Shifted miniapps that return MFEM_SKIP_RETURN_VALUE in some cases:
|
||||
set(SKIP_TESTS)
|
||||
if (HYPRE_USING_CUDA OR HYPRE_USING_HIP)
|
||||
list(APPEND SKIP_TESTS diffusion)
|
||||
endif()
|
||||
|
||||
add_test(NAME shifted_diffusion_np${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS}
|
||||
$<TARGET_FILE:diffusion> -no-vis
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
foreach(test ${PARALLEL_TESTS})
|
||||
if (test IN_LIST SKIP_TESTS)
|
||||
continue()
|
||||
endif()
|
||||
add_test(NAME shifted_${test}_np${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS}
|
||||
$<TARGET_FILE:${test}> -no-vis
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
endforeach()
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
@@ -29,21 +29,24 @@ if (MFEM_USE_MPI)
|
||||
|
||||
# Add the corresponding tests to the "test" target
|
||||
if (MFEM_ENABLE_TESTING)
|
||||
add_test(NAME block-solvers-constant_np${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS}
|
||||
$<TARGET_FILE:block-solvers> -rs 1 -rp 1 -no-vis
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
if (NOT (HYPRE_USING_CUDA OR HYPRE_USING_HIP))
|
||||
# otherwise block-solvers returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME block-solvers-constant_np${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS}
|
||||
$<TARGET_FILE:block-solvers> -rs 1 -rp 1 -no-vis
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
|
||||
add_test(NAME block-solvers-anisotropic_np${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS}
|
||||
$<TARGET_FILE:block-solvers> -rs 1 -rp 1
|
||||
-m ${CMAKE_CURRENT_SOURCE_DIR}/anisotropic.mesh
|
||||
-c ${CMAKE_CURRENT_SOURCE_DIR}/anisotropic.coeff
|
||||
-eb ${CMAKE_CURRENT_SOURCE_DIR}/anisotropic.brd
|
||||
-no-vis
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
add_test(NAME block-solvers-anisotropic_np${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS}
|
||||
$<TARGET_FILE:block-solvers> -rs 1 -rp 1
|
||||
-m ${CMAKE_CURRENT_SOURCE_DIR}/anisotropic.mesh
|
||||
-c ${CMAKE_CURRENT_SOURCE_DIR}/anisotropic.coeff
|
||||
-eb ${CMAKE_CURRENT_SOURCE_DIR}/anisotropic.brd
|
||||
-no-vis
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
endif()
|
||||
|
||||
add_test(NAME plor_solvers_np${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
|
||||
@@ -19,7 +19,17 @@ if (MFEM_USE_MPI)
|
||||
# Copy files to the build folder.
|
||||
file(COPY ${PROJECT_SOURCE_DIR}/miniapps/spde/README.md
|
||||
DESTINATION ${PROJECT_BINARY_DIR}/miniapps/spde)
|
||||
else ()
|
||||
message("This miniapp requires MPI to be enabled."
|
||||
"Please compile with MFEM_USE_MPI.")
|
||||
|
||||
if (MFEM_ENABLE_TESTING)
|
||||
if (MFEM_USE_DOUBLE)
|
||||
# otherwise returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME generate_random_field_np${MFEM_MPI_NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
|
||||
${MPIEXEC_PREFLAGS}
|
||||
$<TARGET_FILE:generate_random_field> -no-vis
|
||||
-r 3 -rp 2 -nu 4 -l1 0.09 -l2 0.03 -l3 0.05 -s 0.01 -t 0.08 -top 1
|
||||
-no-rs -m ../../data/ref-square.mesh
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -25,7 +25,8 @@ include $(DEFAULTS_MK)
|
||||
MFEM_LIB_FILE = mfem_is_not_built
|
||||
-include $(CONFIG_MK)
|
||||
|
||||
SPDE_COMMON_SRC = material_metrics.cpp spde_solver.cpp transformation.cpp util.cpp visualizer.cpp
|
||||
SPDE_COMMON_SRC = material_metrics.cpp spde_solver.cpp transformation.cpp\
|
||||
util.cpp visualizer.cpp
|
||||
|
||||
SPDE_COMMON_OBJ = $(SPDE_COMMON_SRC:.cpp=.o)
|
||||
|
||||
@@ -60,7 +61,8 @@ include $(MFEM_TEST_MK)
|
||||
RUN_MPI = $(MFEM_MPIEXEC) $(MFEM_MPIEXEC_NP) $(MFEM_MPI_NP)
|
||||
generate_random_field-test-par: generate_random_field
|
||||
@$(call mfem-test,$<,$(RUN_MPI), random field miniapp,-r 3 -rp 2 \
|
||||
-nu 4 -l1 0.09 -l2 0.03 -l3 0.05 -s 0.01 -t 0.08 -top 1 -no-rs -m ../../data/ref-square.mesh)
|
||||
-nu 4 -l1 0.09 -l2 0.03 -l3 0.05 -s 0.01 -t 0.08 -top 1 -no-rs \
|
||||
-m ../../data/ref-square.mesh)
|
||||
|
||||
# Generate an error message if the MFEM library is not built and exit
|
||||
$(MFEM_LIB_FILE):
|
||||
|
||||
+36
-18
@@ -155,7 +155,9 @@ COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
# The unit tests can be built and run separately from the rest of the tests:
|
||||
# make unit_tests
|
||||
# ctest -R unit_tests [-V]
|
||||
add_test(NAME unit_tests COMMAND unit_tests)
|
||||
if (MFEM_USE_DOUBLE) # otherwise returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME unit_tests COMMAND unit_tests)
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------
|
||||
# SERIAL CUDA TESTS: cunit_tests
|
||||
@@ -168,7 +170,9 @@ if (MFEM_USE_CUDA)
|
||||
target_link_libraries(cunit_tests mfem)
|
||||
add_dependencies(cunit_tests copy_data)
|
||||
add_dependencies(${MFEM_ALL_TESTS_TARGET_NAME} cunit_tests)
|
||||
add_test(NAME cunit_tests COMMAND cunit_tests)
|
||||
if (MFEM_USE_DOUBLE) # otherwise returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME cunit_tests COMMAND cunit_tests)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------
|
||||
@@ -194,20 +198,26 @@ function(add_serial_miniapp_test name test_uvm)
|
||||
target_compile_definitions(${name}_tests_cpu PUBLIC MFEM_${NAME}_DEVICE="cpu")
|
||||
target_link_libraries(${name}_tests_cpu mfem)
|
||||
add_dependencies(${MFEM_ALL_TESTS_TARGET_NAME} ${name}_tests_cpu)
|
||||
add_test(NAME ${name}_tests_cpu COMMAND ${name}_tests_cpu)
|
||||
if (MFEM_USE_DOUBLE) # otherwise returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME ${name}_tests_cpu COMMAND ${name}_tests_cpu)
|
||||
endif()
|
||||
|
||||
mfem_add_executable(${name}_tests_debug ${${NAME}_TESTS_SRCS})
|
||||
target_compile_definitions(${name}_tests_debug PUBLIC MFEM_${NAME}_DEVICE="debug")
|
||||
target_link_libraries(${name}_tests_debug mfem)
|
||||
add_dependencies(${MFEM_ALL_TESTS_TARGET_NAME} ${name}_tests_debug)
|
||||
add_test(NAME ${name}_tests_debug COMMAND ${name}_tests_debug)
|
||||
if (MFEM_USE_DOUBLE) # otherwise returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME ${name}_tests_debug COMMAND ${name}_tests_debug)
|
||||
endif()
|
||||
|
||||
if (MFEM_USE_CUDA)
|
||||
mfem_add_executable(${name}_tests_cuda ${${NAME}_TESTS_SRCS})
|
||||
target_compile_definitions(${name}_tests_cuda PUBLIC MFEM_${NAME}_DEVICE="cuda")
|
||||
target_link_libraries(${name}_tests_cuda mfem)
|
||||
add_dependencies(${MFEM_ALL_TESTS_TARGET_NAME} ${name}_tests_cuda)
|
||||
add_test(NAME ${name}_tests_cuda COMMAND ${name}_tests_cuda)
|
||||
if (MFEM_USE_DOUBLE) # otherwise returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME ${name}_tests_cuda COMMAND ${name}_tests_cuda)
|
||||
endif()
|
||||
|
||||
if (test_uvm)
|
||||
mfem_add_executable(${name}_tests_cuda_uvm ${${NAME}_TESTS_SRCS})
|
||||
@@ -216,7 +226,9 @@ function(add_serial_miniapp_test name test_uvm)
|
||||
target_link_libraries(${name}_tests_cuda_uvm mfem)
|
||||
add_dependencies(${MFEM_ALL_TESTS_TARGET_NAME}
|
||||
${name}_tests_cuda_uvm)
|
||||
add_test(NAME ${name}_tests_cuda_uvm COMMAND ${name}_tests_cuda_uvm)
|
||||
if (MFEM_USE_DOUBLE) # otherwise returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME ${name}_tests_cuda_uvm COMMAND ${name}_tests_cuda_uvm)
|
||||
endif()
|
||||
endif()
|
||||
endif(MFEM_USE_CUDA)
|
||||
endfunction(add_serial_miniapp_test)
|
||||
@@ -268,10 +280,12 @@ if (MFEM_USE_MPI)
|
||||
target_link_libraries(punit_tests mfem)
|
||||
add_dependencies(${MFEM_ALL_TESTS_TARGET_NAME} punit_tests)
|
||||
foreach(np 1 ${MFEM_MPI_NP})
|
||||
add_test(NAME punit_tests_np=${np}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${np}
|
||||
${MPIEXEC_PREFLAGS} $<TARGET_FILE:punit_tests>
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
if (MFEM_USE_DOUBLE) # otherwise returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME punit_tests_np=${np}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${np}
|
||||
${MPIEXEC_PREFLAGS} $<TARGET_FILE:punit_tests>
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
endif()
|
||||
endforeach()
|
||||
if (MFEM_USE_CUDA)
|
||||
set(PCUNIT_TESTS_SRCS pcunit_test_main.cpp)
|
||||
@@ -281,10 +295,12 @@ if (MFEM_USE_MPI)
|
||||
target_link_libraries(pcunit_tests mfem)
|
||||
add_dependencies(${MFEM_ALL_TESTS_TARGET_NAME} pcunit_tests)
|
||||
foreach(np 1 ${MFEM_MPI_NP})
|
||||
add_test(NAME pcunit_tests_np=${np}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${np}
|
||||
${MPIEXEC_PREFLAGS} $<TARGET_FILE:pcunit_tests>
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
if (MFEM_USE_DOUBLE) # otherwise returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME pcunit_tests_np=${np}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${np}
|
||||
${MPIEXEC_PREFLAGS} $<TARGET_FILE:pcunit_tests>
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endif(MFEM_USE_MPI)
|
||||
@@ -311,10 +327,12 @@ function(add_parallel_miniapp_test name HYPRE_MM)
|
||||
|
||||
function(add_mpi_unit_test DEV NP)
|
||||
set(test_name p${name}_tests_${DEV})
|
||||
add_test(NAME ${test_name}_np=${NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${NP}
|
||||
${MPIEXEC_PREFLAGS} $<TARGET_FILE:${test_name}>
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
if (MFEM_USE_DOUBLE) # otherwise returns MFEM_SKIP_RETURN_VALUE
|
||||
add_test(NAME ${test_name}_np=${NP}
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${NP}
|
||||
${MPIEXEC_PREFLAGS} $<TARGET_FILE:${test_name}>
|
||||
${MPIEXEC_POSTFLAGS})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
set(PAR_${NAME}_TESTS_SRCS punit_test_main.cpp miniapps/test_${name}.cpp)
|
||||
|
||||
Reference in New Issue
Block a user