Skip to content

Commit

Permalink
Fix parallel build failures for make check by adding dependencies and…
Browse files Browse the repository at this point in the history
… compiling fortran modules only once.
  • Loading branch information
markjolah committed Jul 16, 2020
1 parent 1533e32 commit cfb02eb
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 57 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ add_subdirectory (src)

# Custom "piotests" target (builds the test executables)
add_custom_target (tests)
add_dependencies (tests pioc piof)

# Custom "check" target that depends upon "tests"
add_custom_target (check COMMAND ${CMAKE_CTEST_COMMAND})
Expand Down
98 changes: 41 additions & 57 deletions tests/general/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,13 @@ endif()
# Test Timeout (4 min = 240 sec)
set (DEFAULT_TEST_TIMEOUT 480)

add_library(pio_tutil util/pio_tutil.F90)
target_link_libraries(pio_tutil piof)

#===== pio_init_finalize =====
add_executable (pio_init_finalize EXCLUDE_FROM_ALL
pio_init_finalize.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_init_finalize piof)
pio_init_finalize.F90)
target_link_libraries (pio_init_finalize piof pio_tutil)
add_dependencies (tests pio_init_finalize)

if (PIO_USE_MPISERIAL)
Expand Down Expand Up @@ -98,9 +100,8 @@ endif ()

#===== pio_file_simple_tests =====
add_executable (pio_file_simple_tests EXCLUDE_FROM_ALL
pio_file_simple_tests.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_file_simple_tests piof)
pio_file_simple_tests.F90)
target_link_libraries (pio_file_simple_tests piof pio_tutil)
add_dependencies (tests pio_file_simple_tests)

if (PIO_USE_MPISERIAL)
Expand All @@ -117,9 +118,8 @@ endif ()

#===== pio_file_fail =====
add_executable (pio_file_fail EXCLUDE_FROM_ALL
pio_file_fail.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_file_fail piof)
pio_file_fail.F90)
target_link_libraries (pio_file_fail piof pio_tutil)
if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU")
target_compile_options (pio_init_finalize
PRIVATE -ffree-line-length-none)
Expand All @@ -140,9 +140,8 @@ endif ()

#===== ncdf_simple_tests =====
add_executable (ncdf_simple_tests EXCLUDE_FROM_ALL
ncdf_simple_tests.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (ncdf_simple_tests piof)
ncdf_simple_tests.F90)
target_link_libraries (ncdf_simple_tests piof pio_tutil)
add_dependencies (tests ncdf_simple_tests)

if (PIO_USE_MPISERIAL)
Expand All @@ -159,9 +158,8 @@ endif ()

#===== ncdf_get_put =====
add_executable (ncdf_get_put EXCLUDE_FROM_ALL
ncdf_get_put.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (ncdf_get_put piof)
ncdf_get_put.F90)
target_link_libraries (ncdf_get_put piof pio_tutil)
add_dependencies (tests ncdf_get_put)

if (PIO_USE_MPISERIAL)
Expand All @@ -186,9 +184,8 @@ endif ()

#===== ncdf_fail =====
add_executable (ncdf_fail EXCLUDE_FROM_ALL
ncdf_fail.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (ncdf_fail piof)
ncdf_fail.F90)
target_link_libraries (ncdf_fail piof pio_tutil)
add_dependencies (tests ncdf_fail)

if (PIO_USE_MPISERIAL)
Expand All @@ -205,9 +202,8 @@ endif ()

#===== ncdf_inq =====
add_executable (ncdf_inq EXCLUDE_FROM_ALL
ncdf_inq.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (ncdf_inq piof)
ncdf_inq.F90)
target_link_libraries (ncdf_inq piof pio_tutil)
add_dependencies (tests ncdf_inq)

if (PIO_USE_MPISERIAL)
Expand All @@ -224,9 +220,8 @@ endif ()

#===== pio_rearr =====
add_executable (pio_rearr EXCLUDE_FROM_ALL
pio_rearr.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_rearr piof)
pio_rearr.F90)
target_link_libraries (pio_rearr piof pio_tutil)
add_dependencies (tests pio_rearr)

if (PIO_USE_MPISERIAL)
Expand All @@ -243,9 +238,8 @@ endif ()

#===== pio_rearr_opts =====
add_executable (pio_rearr_opts EXCLUDE_FROM_ALL
pio_rearr_opts.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_rearr_opts piof)
pio_rearr_opts.F90)
target_link_libraries (pio_rearr_opts piof pio_tutil)
add_dependencies (tests pio_rearr_opts)

if (PIO_USE_MPISERIAL)
Expand All @@ -262,9 +256,8 @@ endif ()

#===== pio_rearr_opts2 =====
add_executable (pio_rearr_opts2 EXCLUDE_FROM_ALL
pio_rearr_opts2.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_rearr_opts2 piof)
pio_rearr_opts2.F90)
target_link_libraries (pio_rearr_opts2 piof pio_tutil)
add_dependencies (tests pio_rearr_opts2)

if (PIO_USE_MPISERIAL)
Expand All @@ -289,9 +282,8 @@ endif ()

#===== pio_decomp_tests =====
add_executable (pio_decomp_tests EXCLUDE_FROM_ALL
pio_decomp_tests.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_decomp_tests piof)
pio_decomp_tests.F90)
target_link_libraries (pio_decomp_tests piof pio_tutil)
add_dependencies (tests pio_decomp_tests)

if (PIO_USE_MPISERIAL)
Expand Down Expand Up @@ -402,9 +394,8 @@ endif ()

#===== pio_decomp_tests_1d =====
add_executable (pio_decomp_tests_1d EXCLUDE_FROM_ALL
pio_decomp_tests_1d.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_decomp_tests_1d piof)
pio_decomp_tests_1d.F90)
target_link_libraries (pio_decomp_tests_1d piof pio_tutil)
add_dependencies (tests pio_decomp_tests_1d)

if (PIO_USE_MPISERIAL)
Expand Down Expand Up @@ -515,9 +506,8 @@ endif ()

#===== pio_decomp_tests_2d =====
add_executable (pio_decomp_tests_2d EXCLUDE_FROM_ALL
pio_decomp_tests_2d.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_decomp_tests_2d piof)
pio_decomp_tests_2d.F90)
target_link_libraries (pio_decomp_tests_2d piof pio_tutil)
add_dependencies (tests pio_decomp_tests_2d)

if (PIO_USE_MPISERIAL)
Expand Down Expand Up @@ -628,9 +618,8 @@ endif ()

#===== pio_decomp_tests_3d =====
add_executable (pio_decomp_tests_3d EXCLUDE_FROM_ALL
pio_decomp_tests_3d.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_decomp_tests_3d piof)
pio_decomp_tests_3d.F90)
target_link_libraries (pio_decomp_tests_3d piof pio_tutil)
add_dependencies (tests pio_decomp_tests_3d)

if (PIO_USE_MPISERIAL)
Expand Down Expand Up @@ -741,9 +730,8 @@ endif ()

#===== pio_decomp_frame_tests =====
add_executable (pio_decomp_frame_tests EXCLUDE_FROM_ALL
pio_decomp_frame_tests.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_decomp_frame_tests piof)
pio_decomp_frame_tests.F90)
target_link_libraries (pio_decomp_frame_tests piof pio_tutil)
add_dependencies (tests pio_decomp_frame_tests)

if (PIO_USE_MPISERIAL)
Expand All @@ -760,9 +748,8 @@ endif ()

#===== pio_decomp_fillval =====
add_executable (pio_decomp_fillval EXCLUDE_FROM_ALL
pio_decomp_fillval.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_decomp_fillval piof)
pio_decomp_fillval.F90)
target_link_libraries (pio_decomp_fillval piof pio_tutil)
add_dependencies (tests pio_decomp_fillval)

if (PIO_USE_MPISERIAL)
Expand All @@ -779,9 +766,8 @@ endif ()

#===== pio_iosystems_test =====
add_executable (pio_iosystem_tests EXCLUDE_FROM_ALL
pio_iosystem_tests.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_iosystem_tests piof)
pio_iosystem_tests.F90)
target_link_libraries (pio_iosystem_tests piof pio_tutil)
add_dependencies (tests pio_iosystem_tests)

if (PIO_USE_MPISERIAL)
Expand All @@ -799,9 +785,8 @@ endif ()

#===== pio_iosystems_test2 =====
add_executable (pio_iosystem_tests2 EXCLUDE_FROM_ALL
pio_iosystem_tests2.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_iosystem_tests2 piof)
pio_iosystem_tests2.F90)
target_link_libraries (pio_iosystem_tests2 piof pio_tutil)
add_dependencies (tests pio_iosystem_tests2)

if (PIO_USE_MPISERIAL)
Expand All @@ -818,9 +803,8 @@ endif ()

#===== pio_iosystems_test3 =====
add_executable (pio_iosystem_tests3 EXCLUDE_FROM_ALL
pio_iosystem_tests3.F90
${CMAKE_CURRENT_SOURCE_DIR}/util/pio_tutil.F90)
target_link_libraries (pio_iosystem_tests3 piof)
pio_iosystem_tests3.F90)
target_link_libraries (pio_iosystem_tests3 piof pio_tutil)
add_dependencies (tests pio_iosystem_tests3)

if (PIO_USE_MPISERIAL)
Expand Down

0 comments on commit cfb02eb

Please sign in to comment.