message(FATAL_ERROR "Command failed with status: ${status}")
endif()
endforeach()
+ unset(generator_scripts)
set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
set(CMAKE_CXX_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicxx")
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})
# Copy the generated files only if different (needs cmake ≥ 3.21)
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_rstore_nok GlobalConcurrency_rl_Win_lock_all_Get_rstore_nok
- GlobalConcurrency_rl_Win_fence_Put_rstore_nok GlobalConcurrency_rl_Win_lock_all_Put_rstore_nok
-
- GlobalConcurrency_rl_Win_fence_Get_Get_nok
- GlobalConcurrency_rl_Win_fence_Put_Get_nok
- GlobalConcurrency_rl_Win_fence_Put_Put_nok
- GlobalConcurrency_rl_Win_fence_Put_rload_nok
-
- GlobalConcurrency_rl_Win_lock_Get_Get_nok
- GlobalConcurrency_rl_Win_lock_Get_rstore_nok
- GlobalConcurrency_rl_Win_lock_Put_Get_nok
- GlobalConcurrency_rl_Win_lock_Put_Put_nok
- GlobalConcurrency_rl_Win_lock_Put_rload_nok
- GlobalConcurrency_rl_Win_lock_Put_rstore_nok
- GlobalConcurrency_rl_Win_lock_all_Get_Get_nok
- GlobalConcurrency_rl_Win_lock_all_Put_Get_nok
- GlobalConcurrency_rl_Win_lock_all_Put_Put_nok
- GlobalConcurrency_rl_Win_lock_all_Put_rload_nok
- GlobalConcurrency_rr_Win_fence_Get_Put_nok
- GlobalConcurrency_rr_Win_fence_Put_Put_nok
- GlobalConcurrency_rr_Win_lock_Get_Put_nok
- GlobalConcurrency_rr_Win_lock_Put_Put_nok
- GlobalConcurrency_rr_Win_lock_all_Get_Put_nok
- GlobalConcurrency_rr_Win_lock_all_Put_Put_nok
- )
- set_tests_properties(mbi-${localmodif} PROPERTIES WILL_FAIL true)
- endforeach(localmodif )
endif()
# Add the needed files to the distribution