Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add a tests-mc target to rebuild only what's needed to run the MC tests
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Mon, 15 Mar 2021 22:29:30 +0000 (23:29 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Thu, 18 Mar 2021 23:55:46 +0000 (00:55 +0100)
Probably mostly useful to me, but hell, that's really useful :)

examples/cpp/CMakeLists.txt
examples/smpi/CMakeLists.txt
teshsuite/mc/CMakeLists.txt
teshsuite/smpi/isp/umpire/CMakeLists.txt
tools/cmake/MakeLib.cmake

index 15af769..5f0f776 100644 (file)
@@ -20,7 +20,8 @@ if(WIN32)
   set(_maestro-set_disable 1)
 endif()
 
-foreach (example mc-bugged1 mc-bugged2 mc-failing-assert mc-electric-fence)
+set(MC_regular_tests mc-bugged1 mc-bugged2 mc-failing-assert mc-electric-fence)
+foreach (example ${MC_regular_tests})
   if(NOT SIMGRID_HAVE_MC)
     set(_${example}_disable 1)
   endif()
@@ -31,18 +32,18 @@ if(SIMGRID_HAVE_MC)
    add_executable       (s4u-mc-bugged1-liveness  EXCLUDE_FROM_ALL mc-bugged1-liveness/s4u-mc-bugged1-liveness.cpp)
    target_link_libraries(s4u-mc-bugged1-liveness  simgrid)
    set_target_properties(s4u-mc-bugged1-liveness PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mc-bugged1-liveness)
-   add_dependencies(tests s4u-mc-bugged1-liveness)
+   add_dependencies(tests-mc s4u-mc-bugged1-liveness)
  
   if(HAVE_C_STACK_CLEANER)
     add_executable       (s4u-mc-bugged1-liveness-cleaner-on  EXCLUDE_FROM_ALL s4u-mc-bugged1-liveness/s4u-mc-bugged1-liveness.cpp)
     target_link_libraries(s4u-mc-bugged1-liveness-cleaner-on  simgrid)
     set_target_properties(s4u-mc-bugged1-liveness-cleaner-on  PROPERTIES COMPILE_FLAGS "-DGARBAGE_STACK -fstack-cleaner")
-    add_dependencies(tests s4u-mc-bugged1-liveness-cleaner-on)
+    add_dependencies(tests-mc s4u-mc-bugged1-liveness-cleaner-on)
 
     add_executable       (s4u-mc-bugged1-liveness-cleaner-off EXCLUDE_FROM_ALL s4u-mc-bugged1-liveness/s4u-mc-bugged1-liveness.cpp)
     target_link_libraries(s4u-mc-bugged1-liveness-cleaner-off simgrid)
     set_target_properties(s4u-mc-bugged1-liveness-cleaner-off PROPERTIES COMPILE_FLAGS "-DGARBAGE_STACK -fno-stack-cleaner")
-    add_dependencies(tests s4u-mc-bugged1-liveness-cleaner-off)
+    add_dependencies(tests-mc s4u-mc-bugged1-liveness-cleaner-off)
   endif()
 endif()
 
@@ -131,9 +132,17 @@ foreach(variant fun class)
 endforeach()
 set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/app-masterworkers/s4u-app-masterworkers.tesh)
 
-# Model-checking liveness
+# Model-checking
 if(SIMGRID_HAVE_MC)
+  foreach (example ${MC_regular_tests})
+    if(NOT DEFINED _${example}_disable)
+      add_dependencies(tests-mc s4u-${example})
+    endif()
+  endforeach()
+  
+  # Model-checking liveness
   IF(HAVE_UCONTEXT_CONTEXTS AND SIMGRID_PROCESSOR_x86_64) # liveness model-checking works only on 64bits (for now ...)
+    add_dependencies(tests-mc s4u-mc-bugged1-liveness)
     ADD_TESH(s4u-mc-bugged1-liveness-ucontext     --setenv bindir=${CMAKE_CURRENT_BINARY_DIR}/mc-bugged1-liveness 
                                                   --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms 
                                                   --cd ${CMAKE_CURRENT_SOURCE_DIR}/mc-bugged1-liveness
@@ -145,6 +154,7 @@ if(SIMGRID_HAVE_MC)
 #                                                      --cd ${CMAKE_CURRENT_SOURCE_DIR}/mc-bugged1-liveness
 #                                                       ${CMAKE_HOME_DIRECTORY}/examples/cpp/mc-bugged1-liveness/s4u-mc-bugged1-liveness-visited.tesh)
     IF(HAVE_C_STACK_CLEANER)
+      add_dependencies(tests-mc s4u-mc-bugged1-liveness-stack-cleaner)
       # This test checks if the stack cleaner is making a difference:
       ADD_TEST(s4u-mc-bugged1-liveness-stack-cleaner ${CMAKE_HOME_DIRECTORY}/examples/cpp/mc-bugged1-liveness/s4u-mc-bugged1-liveness-stack-cleaner
                                                      ${CMAKE_HOME_DIRECTORY}/examples/cpp/mc-bugged1-liveness/ 
index cbe0b34..332f14f 100644 (file)
@@ -75,7 +75,10 @@ set(txt_files     ${txt_files}     ${CMAKE_CURRENT_SOURCE_DIR}/replay/actions0.t
 if(enable_smpi)
   # MC is currently broken with threads (deadlock => timeout)
   if(SIMGRID_HAVE_MC)
+    add_dependencies(tests-mc smpimain)
+    add_dependencies(tests-mc smpi_only_send_deterministic)
     ADD_TESH(smpi-mc-only-send-determinism --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/smpi/mc --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_BINARY_DIR}/examples/smpi/mc ${CMAKE_HOME_DIRECTORY}/examples/smpi/mc/only_send_deterministic.tesh)
+    add_dependencies(tests-mc smpi_sendsend)
     ADD_TESH_FACTORIES(smpi-mc-sendsend "^thread" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/smpi/mc --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_BINARY_DIR}/examples/smpi/mc ${CMAKE_HOME_DIRECTORY}/examples/smpi/mc/sendsend.tesh)
   endif()
 
index b1b95f8..7d233a5 100644 (file)
@@ -5,7 +5,7 @@ foreach(x dwarf dwarf-expression)
     target_link_libraries(${x}  simgrid)
     set_target_properties(${x}  PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${x})
     set_property(TARGET ${x} APPEND PROPERTY INCLUDE_DIRECTORIES "${INTERNAL_INCLUDES}")
-    add_dependencies(tests ${x})
+    add_dependencies(tests-mc ${x})
   endif()
 
   set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/${x}/${x}.tesh)
@@ -18,7 +18,7 @@ foreach(x random-bug mutex-handling)
   target_link_libraries(${x}  simgrid)
   set_target_properties(${x}  PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${x})
   set_property(TARGET ${x} APPEND PROPERTY INCLUDE_DIRECTORIES "${INTERNAL_INCLUDES}")
-  add_dependencies(tests ${x})
+  add_dependencies(tests-mc ${x})
 
   set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/${x}/${x}.tesh)
   set(teshsuite_src ${teshsuite_src} ${CMAKE_CURRENT_SOURCE_DIR}/${x}/${x}.cpp)
@@ -28,7 +28,7 @@ add_executable       (without-mutex-handling EXCLUDE_FROM_ALL mutex-handling/mut
 target_link_libraries(without-mutex-handling simgrid)
 set_target_properties(without-mutex-handling PROPERTIES COMPILE_FLAGS -DDISABLE_THE_MUTEX=1)
 set_target_properties(without-mutex-handling PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mutex-handling)
-add_dependencies(tests without-mutex-handling)
+add_dependencies(tests-mc without-mutex-handling)
 
 set(teshsuite_src  ${teshsuite_src}                                                                        PARENT_SCOPE)
 set(tesh_files     ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/random-bug/random-bug-nocrash.tesh
index e99fdf8..db02743 100644 (file)
@@ -205,7 +205,7 @@ if(enable_smpi AND enable_model-checking AND enable_smpi_ISP_testsuite)
 
   foreach (test ${umpire_tests_passing} ${umpire_tests_deadlock} ${umpire_tests_problematic} )
     add_executable(${test} EXCLUDE_FROM_ALL ${test}.c)
-    add_dependencies(tests ${test})
+    add_dependencies(tests-mc ${test})
     target_link_libraries(${test} simgrid)
     set_source_files_properties(${test}.c PROPERTIES COMPILE_FLAGS "-Dlint -Wno-error -Wno-return-type")
     set(umpire_tesh ${umpire_tesh} ${test})
index debbe95..e84134e 100644 (file)
@@ -27,6 +27,9 @@ set_property(TARGET simgrid
 add_dependencies(simgrid maintainer_files)
 
 if(enable_model-checking)
+  add_custom_target(tests-mc COMMENT "Recompiling the MC tests and tools.")
+  add_dependencies(tests tests-mc)
+
   add_executable(simgrid-mc ${MC_SIMGRID_MC_SRC})
   target_link_libraries(simgrid-mc simgrid)
   set_target_properties(simgrid-mc
@@ -35,7 +38,7 @@ if(enable_model-checking)
                APPEND PROPERTY INCLUDE_DIRECTORIES "${INTERNAL_INCLUDES}")
   install(TARGETS simgrid-mc # install that binary without breaking the rpath on Mac
     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}/)
-  add_dependencies(tests simgrid-mc)
+  add_dependencies(tests-mc simgrid-mc)
 endif()