X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c982b02120efb70184ab1c0eb4762ddfcca960b2..5ed37babb2fa9097abe82df299c0aa259ed84d5a:/teshsuite/smpi/MBI/CMakeLists.txt diff --git a/teshsuite/smpi/MBI/CMakeLists.txt b/teshsuite/smpi/MBI/CMakeLists.txt index d5e6b88689..a07c97c015 100644 --- a/teshsuite/smpi/MBI/CMakeLists.txt +++ b/teshsuite/smpi/MBI/CMakeLists.txt @@ -1,35 +1,11 @@ -# Copyright 2021-2022. The SimGrid Team. All rights reserved. +# Copyright 2021-2023. The SimGrid Team. All rights reserved. # Integrates the MBI tests into the SimGrid build chain when asked to # Only the python scripts are embeeded in the archive, and the C test files are generated at config time using these scripts. # These python scripts are copied over from the MBI repository with as little changes as possible. -set(generator_scripts - CollArgGenerator.py - CollComGenerator.py - CollLocalConcurrencyGenerator.py - CollMatchingGenerator.py - CollP2PMatchingGenerator.py - CollP2PMessageRaceGenerator.py - CollTopoGenerator.py - MissingWaitandStartGenerator.py - P2PArgGenerator.py - P2PComGenerator.py - P2PInvalidComGenerator.py - P2PLocalConcurrencyGenerator.py - P2PMatchingANYSRCGenerator.py - P2PMatchingGenerator.py - P2PProbeGenerator.py - ResleakGenerator.py - RMAArgGenerator.py - RMAInvalidArgGenerator.py - RMALocalLocalConcurrencyGenerator.py - RMAP2PGlobalConcurrencyGenerator.py - RMARemoteLocalConcurrencyGenerator.py - RMARemoteRemoteConcurrencyGenerator.py - RMAReqLifecycleGenerator.py - RMAWinBufferGenerator.py) +file(GLOB generator_scripts *Generator.py) if (enable_smpi_MBI_testsuite) if (NOT enable_smpi) @@ -45,7 +21,7 @@ if (enable_smpi_MBI_testsuite) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/generator_utils.py DESTINATION ${CMAKE_BINARY_DIR}/MBI/tmp) foreach (script ${generator_scripts}) message(STATUS " $ ${CMAKE_CURRENT_SOURCE_DIR}/${script}") - execute_process(COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${script} + execute_process(COMMAND ${PYTHON_EXECUTABLE} ${script} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/MBI/tmp RESULT_VARIABLE status) if (NOT status EQUAL 0) @@ -60,6 +36,19 @@ if (enable_smpi_MBI_testsuite) # Connect the MBI tests to the other tests add_custom_target(tests-mbi COMMENT "Recompiling the MBI tests and tools.") add_dependencies(tests tests-mbi) + add_dependencies(tests-mbi simgrid-mc smpimain) + + # Remove Concurrency tests that are out of reach because simgrid does not intercept local modifications yet + # An idea could be to use ASan on the verified application, along with https://github.com/google/sanitizers/wiki/AddressSanitizerManualPoisoning + # But currently, ASan is not usable at all, since the Checker dislikes this trick when it tries to read the memory of the app. + # We should change the checker to not read the app when verifying safty properties + file(GLOB cfiles ${CMAKE_BINARY_DIR}/MBI/tmp/LocalConcurrency*.c ${CMAKE_BINARY_DIR}/MBI/tmp/GlobalConcurrency*.c ) + foreach(cfile ${cfiles}) + file(REMOVE ${cfile}) + endforeach() + list(LENGTH cfiles len) + message(STATUS "Removed ${len} concurrency tests that would fail because we cannot intercept modifications of local variables.") + unset(len) file(GLOB cfiles RELATIVE ${CMAKE_BINARY_DIR}/MBI/tmp ${CMAKE_BINARY_DIR}/MBI/tmp/*.c ) foreach(cfile ${cfiles}) @@ -91,33 +80,11 @@ if (enable_smpi_MBI_testsuite) else() file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/MBIutils.py DESTINATION ${CMAKE_BINARY_DIR}/MBI) endif() - - # The following tests are known to fail because simgrid does not intercept local modifications yet - # An idea could be to use ASan on the verified application, along with https://github.com/google/sanitizers/wiki/AddressSanitizerManualPoisoning - # But currently, ASan is not usable at all, since the Checker dislikes this trick when it tries to read the memory of the app. - # We should change the checker to not read the app when verifying safty properties - foreach(localmodif - LocalConcurrency_Iallgather_nok LocalConcurrency_Iallgatherv_nok LocalConcurrency_Iallreduce_nok LocalConcurrency_Ialltoall_nok - LocalConcurrency_Ialltoallv_nok LocalConcurrency_Ibcast_nok LocalConcurrency_Iexscan_nok LocalConcurrency_Igather_nok - LocalConcurrency_Irecv_Isend_nok LocalConcurrency_Irecv_Send_init_nok LocalConcurrency_Irecv_Send_nok LocalConcurrency_Ireduce_nok - LocalConcurrency_Iscan_nok LocalConcurrency_Iscatter_nok LocalConcurrency_Recv_Isend_nok LocalConcurrency_Recv_Send_init_nok - LocalConcurrency_Recv_init_Isend_nok LocalConcurrency_Recv_init_Send_nok LocalConcurrency_Recv_init_Send_init_nok - - GlobalConcurrency_Get_Isend_Irecv_nok GlobalConcurrency_Get_Isend_Recv_nok GlobalConcurrency_Get_Send_Irecv_nok GlobalConcurrency_Get_Send_Recv_nok - GlobalConcurrency_Put_Isend_Irecv_nok GlobalConcurrency_Put_Isend_Recv_nok GlobalConcurrency_Put_Send_Irecv_nok GlobalConcurrency_Put_Send_Recv_nok - - GlobalConcurrency_rl_Win_fence_Get_rload_nok GlobalConcurrency_rl_Win_fence_Get_rstore_nok - GlobalConcurrency_rl_Win_fence_Put_rload_nok GlobalConcurrency_rl_Win_fence_Put_rstore_nok - GlobalConcurrency_rl_Win_lock_all_Get_rload_nok GlobalConcurrency_rl_Win_lock_all_Get_rstore_nok - GlobalConcurrency_rl_Win_lock_all_Put_rload_nok GlobalConcurrency_rl_Win_lock_all_Put_rstore_nok - ) - set_tests_properties(mbi-${localmodif} PROPERTIES WILL_FAIL true) - endforeach(localmodif ) endif() # Add the needed files to the distribution foreach(script ${generator_scripts}) - set(teshsuite_src ${teshsuite_src} ${CMAKE_CURRENT_SOURCE_DIR}/${script}) + set(teshsuite_src ${teshsuite_src} ${script}) endforeach() set(teshsuite_src ${teshsuite_src}