Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MBI: don't even run the concurrency tests. Save white bears as we know these tests...
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Mon, 10 Oct 2022 21:25:57 +0000 (23:25 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Mon, 10 Oct 2022 21:25:57 +0000 (23:25 +0200)
teshsuite/smpi/MBI/CMakeLists.txt

index 7a0b334..4e12a1e 100644 (file)
@@ -27,6 +27,7 @@ if (enable_smpi_MBI_testsuite)
       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")
@@ -37,6 +38,18 @@ if (enable_smpi_MBI_testsuite)
   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)
@@ -67,48 +80,6 @@ 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_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