Bug fix for irregular replex steps with GPU update
[alexxy/gromacs.git] / src / programs / mdrun / tests / CMakeLists.txt
index 32ff54143f39454872f6e83069493d201774a6a2..e80d1647f8f0db09fd8f39f8e31199132e37c107 100644 (file)
@@ -190,6 +190,19 @@ gmx_add_gtest_executable(${exename} MPI
         # files with code for tests
         multisim.cpp
         multisimtest.cpp
+        # pseudo-library for code for mdrun
+        $<TARGET_OBJECTS:mdrun_objlib>
+        )
+target_link_libraries(${exename} PRIVATE mdrun_test_infrastructure)
+gmx_register_gtest_test(${testname} ${exename} MPI_RANKS 4 INTEGRATION_TEST IGNORE_LEAKS)
+
+set(testname "MdrunMultiSimReplexTests")
+set(exename "mdrun-multisim-replex-test")
+
+gmx_add_gtest_executable(${exename} MPI
+    CPP_SOURCE_FILES
+        # files with code for tests
+       multisimtest.cpp
         replicaexchange.cpp
         # pseudo-library for code for mdrun
         $<TARGET_OBJECTS:mdrun_objlib>
@@ -197,6 +210,20 @@ gmx_add_gtest_executable(${exename} MPI
 target_link_libraries(${exename} PRIVATE mdrun_test_infrastructure)
 gmx_register_gtest_test(${testname} ${exename} MPI_RANKS 4 INTEGRATION_TEST IGNORE_LEAKS)
 
+set(testname "MdrunMultiSimReplexEquivalenceTests")
+set(exename "mdrun-multisim-replex-equivalence-test")
+
+gmx_add_gtest_executable(${exename} MPI
+    CPP_SOURCE_FILES
+        # files with code for tests
+       multisimtest.cpp
+        replicaexchange_equivalence.cpp
+        # pseudo-library for code for mdrun
+        $<TARGET_OBJECTS:mdrun_objlib>
+        )
+target_link_libraries(${exename} PRIVATE mdrun_test_infrastructure)
+gmx_register_gtest_test(${testname} ${exename} MPI_RANKS 4 INTEGRATION_TEST IGNORE_LEAKS)
+
 # Tests that only make sense to run with multiple ranks and/or real
 # MPI are implemented here. Special case for slow PME tests
 set(testname "MdrunMpiPmeTests")
@@ -213,23 +240,60 @@ target_link_libraries(${exename} PRIVATE mdrun_test_infrastructure)
 gmx_register_gtest_test(${testname} ${exename} MPI_RANKS 2 OPENMP_THREADS 2 INTEGRATION_TEST IGNORE_LEAKS)
 
 # Slow-running tests that target testing multiple-rank coordination behaviors
-set(exename "mdrun-mpi-coordination-test")
+# These tests are extremely slow without optimization or OpenMP, so only run them for
+# build types like Release or RelWithDebInfo and if the build has been configured
+# with OpenMP enabled
+set(exename "mdrun-mpi-coordination-basic-test")
 gmx_add_gtest_executable(${exename} MPI
     CPP_SOURCE_FILES
         # files with code for tests
         periodicactions.cpp
+       periodicactions_basic.cpp
+        # pseudo-library for code for mdrun
+        $<TARGET_OBJECTS:mdrun_objlib>
+        )
+target_link_libraries(${exename} PRIVATE mdrun_test_infrastructure)
+
+if (CMAKE_BUILD_TYPE MATCHES "Rel" AND GMX_OPENMP)
+    set(testname "MdrunMpiCoordinationBasicTestsOneRank")
+    gmx_register_gtest_test(${testname} ${exename} MPI_RANKS 1 SLOW_TEST IGNORE_LEAKS)
+    set(testname "MdrunMpiCoordinationBasicTestsTwoRanks")
+    gmx_register_gtest_test(${testname} ${exename} MPI_RANKS 2 SLOW_TEST IGNORE_LEAKS)
+endif()
+
+set(exename "mdrun-mpi-coordination-coupling-test")
+gmx_add_gtest_executable(${exename} MPI
+    CPP_SOURCE_FILES
+        # files with code for tests
+        periodicactions.cpp
+       periodicactions_coupling.cpp
+        # pseudo-library for code for mdrun
+        $<TARGET_OBJECTS:mdrun_objlib>
+        )
+target_link_libraries(${exename} PRIVATE mdrun_test_infrastructure)
+
+if (CMAKE_BUILD_TYPE MATCHES "Rel" AND GMX_OPENMP)
+    set(testname "MdrunMpiCoordinationCouplingTestsOneRank")
+    gmx_register_gtest_test(${testname} ${exename} MPI_RANKS 1 SLOW_TEST IGNORE_LEAKS)
+    set(testname "MdrunMpiCoordinationCouplingTestsTwoRanks")
+    gmx_register_gtest_test(${testname} ${exename} MPI_RANKS 2 SLOW_TEST IGNORE_LEAKS)
+endif()
+
+set(exename "mdrun-mpi-coordination-constraints-test")
+gmx_add_gtest_executable(${exename} MPI
+    CPP_SOURCE_FILES
+        # files with code for tests
+        periodicactions.cpp
+       periodicactions_constraints.cpp
         # pseudo-library for code for mdrun
         $<TARGET_OBJECTS:mdrun_objlib>
         )
 target_link_libraries(${exename} PRIVATE mdrun_test_infrastructure)
 
-# These tests are extremely slow without optimization or OpenMP, so only run them for
-# build types like Release or RelWithDebInfo and if the build has been configured
-# with OpenMP enabled.
 if (CMAKE_BUILD_TYPE MATCHES "Rel" AND GMX_OPENMP)
-    set(testname "MdrunMpiCoordinationTestsOneRank")
+    set(testname "MdrunMpiCoordinationConstraintsTestsOneRank")
     gmx_register_gtest_test(${testname} ${exename} MPI_RANKS 1 SLOW_TEST IGNORE_LEAKS)
-    set(testname "MdrunMpiCoordinationTestsTwoRanks")
+    set(testname "MdrunMpiCoordinationConstraintsTestsTwoRanks")
     gmx_register_gtest_test(${testname} ${exename} MPI_RANKS 2 SLOW_TEST IGNORE_LEAKS)
 endif()