From f322f94ddd9c5b0c80377fe0bbec20e57055ff10 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Mon, 15 Mar 2021 23:29:30 +0100 Subject: [PATCH] Add a tests-mc target to rebuild only what's needed to run the MC tests Probably mostly useful to me, but hell, that's really useful :) --- examples/cpp/CMakeLists.txt | 20 +++++++++++++++----- examples/smpi/CMakeLists.txt | 3 +++ teshsuite/mc/CMakeLists.txt | 6 +++--- teshsuite/smpi/isp/umpire/CMakeLists.txt | 2 +- tools/cmake/MakeLib.cmake | 5 ++++- 5 files changed, 26 insertions(+), 10 deletions(-) diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt index 15af769ee7..5f0f776854 100644 --- a/examples/cpp/CMakeLists.txt +++ b/examples/cpp/CMakeLists.txt @@ -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/ diff --git a/examples/smpi/CMakeLists.txt b/examples/smpi/CMakeLists.txt index cbe0b34c71..332f14ff47 100644 --- a/examples/smpi/CMakeLists.txt +++ b/examples/smpi/CMakeLists.txt @@ -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() diff --git a/teshsuite/mc/CMakeLists.txt b/teshsuite/mc/CMakeLists.txt index b1b95f86b8..7d233a598b 100644 --- a/teshsuite/mc/CMakeLists.txt +++ b/teshsuite/mc/CMakeLists.txt @@ -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 diff --git a/teshsuite/smpi/isp/umpire/CMakeLists.txt b/teshsuite/smpi/isp/umpire/CMakeLists.txt index e99fdf882e..db02743f18 100644 --- a/teshsuite/smpi/isp/umpire/CMakeLists.txt +++ b/teshsuite/smpi/isp/umpire/CMakeLists.txt @@ -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}) diff --git a/tools/cmake/MakeLib.cmake b/tools/cmake/MakeLib.cmake index debbe95c7b..e84134e95d 100644 --- a/tools/cmake/MakeLib.cmake +++ b/tools/cmake/MakeLib.cmake @@ -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() -- 2.20.1