Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
try to fix MC now (sigh, CMake ...)
[simgrid.git] / tools / cmake / Tests.cmake
index 461d420..3dd8793 100644 (file)
@@ -1,14 +1,11 @@
-IF(enable_smpi AND NOT WIN32)
-  execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpicc)
-  execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpicxx)
-  execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpiff)
-  execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpif90)
-  execute_process(COMMAND chmod a=rwx ${CMAKE_BINARY_DIR}/bin/smpirun)
-ENDIF()
-
 SET(TESH_OPTION "--ignore-jenkins")
 SET(TESH_COMMAND "${PYTHON_EXECUTABLE}" ${CMAKE_BINARY_DIR}/bin/tesh)
 
+SET(TESH_LIBRARY_PATH "${CMAKE_BINARY_DIR}/lib")
+if(NOT $ENV{LD_LIBRARY_PATH} STREQUAL "")
+  SET(TESH_LIBRARY_PATH "${TESH_LIBRARY_PATH}:$ENV{LD_LIBRARY_PATH}")
+endif()
+
 IF(enable_memcheck)
   INCLUDE(FindValgrind)
 
@@ -60,12 +57,18 @@ MACRO(ADD_TESH_FACTORIES NAME FACTORIES)
     LIST(REMOVE_AT ARGR 0)
   ENDFOREACH()
   FOREACH(FACTORY ${FACTORIES})
-    if ((${FACTORY} STREQUAL "thread" ) OR # Always available, thanks to C++11 threads
+    if ((${FACTORY} STREQUAL "thread" ) OR # Always available, thanks to C++11 threads
         (${FACTORY} STREQUAL "boost" AND HAVE_BOOST_CONTEXTS) OR
         (${FACTORY} STREQUAL "raw" AND HAVE_RAW_CONTEXTS) OR
         (${FACTORY} STREQUAL "ucontext" AND HAVE_UCONTEXT_CONTEXTS))
       ADD_TESH("${NAME}-${FACTORY}" "--cfg" "contexts/factory:${FACTORY}" ${ARGR})
-    ENDIF()
+    endif()
+    if ((NOT ${FACTORY} STREQUAL "thread") AND 
+        (NOT ${FACTORY} STREQUAL "boost") AND
+       (NOT ${FACTORY} STREQUAL "raw") AND
+       (NOT ${FACTORY} STREQUAL "ucontext"))
+       message(FATAL_ERROR "Cannot add a tesh for an unknown factory: ${FACTORY}")
+    endif()
   ENDFOREACH()
 ENDMACRO()
 
@@ -76,7 +79,7 @@ MACRO(SET_TESH_PROPERTIES NAME FACTORIES)
     LIST(REMOVE_AT ARGR 0)
   ENDFOREACH()
   FOREACH(FACTORY ${FACTORIES})
-    if ((${FACTORY} STREQUAL "thread" ) OR # Always available, thanks to C++11 threads
+    if ((${FACTORY} STREQUAL "thread" ) OR # Always available, thanks to C++11 threads
         (${FACTORY} STREQUAL "boost" AND HAVE_BOOST_CONTEXTS) OR
         (${FACTORY} STREQUAL "raw" AND HAVE_RAW_CONTEXTS) OR
         (${FACTORY} STREQUAL "ucontext" AND HAVE_UCONTEXT_CONTEXTS))
@@ -92,7 +95,6 @@ IF(enable_java)
   ELSE()
     SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/deprecated/java/:${CMAKE_BINARY_DIR}/teshsuite/java/:${SIMGRID_JAR}")
   ENDIF()
-  ADD_TESH_FACTORIES(mc-sendsend                "ucontext;raw" --setenv bindir=${CMAKE_BINARY_DIR}/examples/smpi/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/smpi/mc sendsend.tesh)
 ENDIF()
 
 # New tests should use the Catch Framework
@@ -101,6 +103,7 @@ set(UNIT_TESTS  src/xbt/unit-tests_main.cpp
                 src/xbt/config_test.cpp
                 src/xbt/dict_test.cpp
                 src/xbt/dynar_test.cpp
+               src/xbt/random_test.cpp
                 src/xbt/xbt_str_test.cpp
                src/kernel/lmm/maxmin_test.cpp)
 if (SIMGRID_HAVE_MC)