Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Further cmake factorization
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Thu, 23 Dec 2021 20:30:32 +0000 (21:30 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Thu, 23 Dec 2021 20:30:32 +0000 (21:30 +0100)
examples/cpp/CMakeLists.txt

index 3b9056e..8ebe990 100644 (file)
@@ -20,19 +20,18 @@ if(WIN32)
   set(_maestro-set_disable 1)
 endif()
 
-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()
-  set(_${example}_factories "^thread")
-endforeach()
-
 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-mc s4u-mc-bugged1-liveness)
+  # These tests timeout with threads, maybe because of dwarf parsing? not sure
+  foreach(example mc-bugged1 mc-bugged2 mc-failing-assert mc-electric-fence)
+     set(_${example}_factories "^thread") # Timeout
+     add_dependencies(tests-mc s4u-${example})
+  endforeach()
+
+  # Make all MC tests buildable together
+  foreach(example mc-bugged1-liveness)
+    add_dependencies(tests-mc s4u-${example})
+  endforeach()
+  
 
   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)
@@ -45,6 +44,40 @@ if(SIMGRID_HAVE_MC)
     set_target_properties(s4u-mc-bugged1-liveness-cleaner-off PROPERTIES COMPILE_FLAGS "-DGARBAGE_STACK -fno-stack-cleaner")
     add_dependencies(tests-mc s4u-mc-bugged1-liveness-cleaner-off)
   endif()
+
+  # Model-checking liveness
+  if(HAVE_UCONTEXT_CONTEXTS AND SIMGRID_PROCESSOR_x86_64) 
+    # liveness model-checking works only on 64bits (for now ...)
+    set(_mc-bugged1-liveness_factories "ucontext") # Timeout
+  else()
+    set(_mc-bugged1-liveness_disable 1)
+  endif()
+  
+  # This example hit the 5' timeout on CI, disable it for now
+  #    ADD_TESH(s4u-mc-bugged1-liveness-visited-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
+  #                                                       ${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/
+                                                   ${CMAKE_CURRENT_BINARY_DIR}/mc-bugged1-liveness/)
+  ENDIF()
+  
+  if(enable_coverage)
+    foreach (example mc-bugged1 mc-bugged2 mc-electric-fence mc-failing-assert)
+      ADD_TEST(cover-${example} ${CMAKE_CURRENT_BINARY_DIR}/${example}/s4u-${example} ${CMAKE_HOME_DIRECTORY}/examples/platforms/model_checker_platform.xml)
+    endforeach()
+    ADD_TEST(cover-mc-bugged1-liveness ${CMAKE_CURRENT_BINARY_DIR}/mc-bugged1-liveness/s4u-mc-bugged1-liveness ${CMAKE_HOME_DIRECTORY}/examples/platforms/small_platform.xml 1 1001)
+  endif()
+
+else()
+  foreach (example mc-bugged1 mc-bugged2 mc-failing-assert mc-electric-fence 
+                   mc-bugged1-liveness)
+    set(_${example}_disable 1)
+  endforeach()
 endif()
 
 if(NOT HAVE_GRAPHVIZ)
@@ -72,7 +105,7 @@ foreach (example actor-create actor-daemon actor-exiting actor-join actor-kill
                  exec-async exec-basic exec-dvfs exec-remote exec-waitany exec-waitfor exec-dependent exec-unassigned
                  exec-ptask-multicore exec-cpu-nonlinear exec-cpu-factors exec-failure
                  maestro-set
-                 mc-bugged1 mc-bugged2 mc-electric-fence mc-failing-assert
+                 mc-bugged1 mc-bugged1-liveness mc-bugged2 mc-electric-fence mc-failing-assert
                  network-ns3 network-ns3-wifi network-wifi
                  io-async io-priority io-degradation io-file-system io-file-remote io-disk-raw io-dependent
                  platform-failures platform-profile platform-properties
@@ -136,41 +169,6 @@ foreach(variant fun class)
 endforeach()
 set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/app-masterworkers/s4u-app-masterworkers.tesh)
 
-# 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
-                                                  ${CMAKE_HOME_DIRECTORY}/examples/cpp/mc-bugged1-liveness/s4u-mc-bugged1-liveness.tesh)
-
-# This example hit the 5' timeout on CI, disable it for now
-#    ADD_TESH(s4u-mc-bugged1-liveness-visited-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
-#                                                       ${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/
-                                                     ${CMAKE_CURRENT_BINARY_DIR}/mc-bugged1-liveness/)
-    ENDIF()
-  ENDIF()
-
-#  if (enable_coverage)
-#    SET_TESTS_PROPERTIES(mc-bugged1-liveness-visited-ucontext PROPERTIES RUN_SERIAL "TRUE")
-#  endif()
-ENDIF()
-
 # The tests the parallel variant of of DHTs
 
 if(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "i386" AND CMAKE_SIZEOF_VOID_P EQUAL 8)
@@ -217,13 +215,6 @@ if (NOT enable_memcheck AND NOT WIN32)
                             ${CMAKE_CURRENT_SOURCE_DIR}/comm-pingpong/simix-breakpoint.tesh)
 endif()
 
-if(enable_coverage AND SIMGRID_HAVE_MC)
-  foreach (example mc-bugged1 mc-bugged2 mc-electric-fence mc-failing-assert)
-    ADD_TEST(cover-${example} ${CMAKE_CURRENT_BINARY_DIR}/${example}/s4u-${example} ${CMAKE_HOME_DIRECTORY}/examples/platforms/model_checker_platform.xml)
-  endforeach()
-  ADD_TEST(cover-mc-bugged1-liveness ${CMAKE_CURRENT_BINARY_DIR}/mc-bugged1-liveness/s4u-mc-bugged1-liveness ${CMAKE_HOME_DIRECTORY}/examples/platforms/small_platform.xml 1 1001)
-endif()
-
 # Add all extra files to the archive
 ####################################
 set(examples_src  ${examples_src} ${CMAKE_CURRENT_SOURCE_DIR}/mc-bugged1-liveness/s4u-mc-bugged1-liveness.cpp        PARENT_SCOPE)