Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'S4U'
authorMartin Quinson <martin.quinson@loria.fr>
Tue, 13 Oct 2015 22:06:18 +0000 (00:06 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Tue, 13 Oct 2015 22:06:18 +0000 (00:06 +0200)
1  2 
include/simgrid/msg.h
tools/cmake/DefinePackages.cmake
tools/cmake/Distrib.cmake
tools/cmake/Tests.cmake

diff --combined include/simgrid/msg.h
@@@ -52,7 -52,6 +52,7 @@@ typedef struct s_msg_host_priv 
    int        is_migrating;
  
    xbt_dict_t affinity_mask_db;
 +  xbt_dynar_t file_descriptor_table;
  
  #ifdef MSG_USE_DEPRECATED
    msg_mailbox_t *mailboxes;     /**< the channels  */
@@@ -103,7 -102,6 +103,7 @@@ typedef struct msg_file_priv  
    char* storageId;
    char* storage_type;
    char* content_type;
 +  int desc_id;
    void *data;
    simdata_file_t simdata;
  } s_msg_file_priv_t, *msg_file_priv_t;
@@@ -266,7 -264,7 +266,7 @@@ XBT_PUBLIC(msg_error_t) MSG_file_seek(m
  XBT_PUBLIC(sg_size_t) MSG_file_tell (msg_file_t fd);
  XBT_PUBLIC(void) __MSG_file_get_info(msg_file_t fd);
  XBT_PUBLIC(void) __MSG_file_priv_free(msg_file_priv_t priv);
- XBT_PUBLIC(const char *) MSG_file_get_name(msg_file_t storage);
+ XBT_PUBLIC(const char *) MSG_file_get_name(msg_file_t file);
  XBT_PUBLIC(msg_error_t) MSG_file_move(msg_file_t fd, const char* fullpath);
  XBT_PUBLIC(msg_error_t) MSG_file_rcopy(msg_file_t fd, msg_host_t host, const char* fullpath);
  XBT_PUBLIC(msg_error_t) MSG_file_rmove(msg_file_t fd, msg_host_t host, const char* fullpath);
@@@ -87,6 -87,7 +87,6 @@@ set(EXTRA_DIS
    src/surf/host_clm03.hpp
    src/surf/host_interface.hpp
    src/surf/host_ptask_L07.hpp
 -  src/win32/config.h
    src/xbt/automaton/automaton_lexer.yy.c
    src/xbt/automaton/parserPromela.lex
    src/xbt/automaton/parserPromela.tab.cacc
@@@ -265,7 -266,7 +265,7 @@@ set(XBT_SR
    src/xbt/lib.c
    src/xbt/log.c
    src/xbt/mallocator.c
 -  src/xbt/parmap.c
 +  src/xbt/parmap.cpp
    src/xbt/set.c
    src/xbt/setset.c
    src/xbt/snprintf.c
    src/xbt/xbt_main.c
    src/xbt/xbt_matrix.c
    src/xbt/xbt_os_time.c
 +  src/xbt/xbt_os_file.c
    src/xbt/xbt_peer.c
    src/xbt/xbt_queue.c
    src/xbt/xbt_replay.c
@@@ -353,6 -353,7 +353,6 @@@ set(SIMIX_SR
    src/simix/libsmx.c
    src/simix/smx_context.c
    src/simix/smx_context_base.c
 -  src/simix/smx_context_raw.c
    src/simix/smx_deployment.c
    src/simix/smx_environment.c
    src/simix/smx_global.c
    ${SIMIX_GENERATED_SRC}
    )
  
 +# Don't try to compile our inline assembly with MSVC
 +if (MSVC)
 +  set(EXTRA_DIST
 +      ${EXTRA_DIST}
 +      src/simix/smx_context_raw.c)
 +else()
 +  set(SIMIX_SRC
 +      ${SIMIX_SRC}
 +      src/simix/smx_context_raw.c)
 +endif()
 +
 +# Boost context may not be available
  if (HAVE_BOOST_CONTEXT)
    set(SIMIX_SRC
        ${SIMIX_SRC}
@@@ -389,6 -378,17 +389,17 @@@ else(
        src/simix/smx_context_boost.cpp)
  endif()
  
+ set(S4U_SRC
+   src/s4u/s4u_actor.cpp
+   src/s4u/s4u_async.cpp
+   src/s4u/s4u_comm.cpp
+   src/s4u/s4u_engine.cpp  
+   src/s4u/s4u_file.cpp  
+   src/s4u/s4u_host.cpp  
+   src/s4u/s4u_mailbox.cpp
+   src/s4u/s4u_storage.cpp
+ )
  set(SIMGRID_SRC
    src/simgrid/sg_config.c
    src/simgrid/host.cpp
@@@ -616,8 -616,8 +627,8 @@@ set(MC_SR
  
    src/mc/mc_forward.h
    src/mc/mc_forward.hpp
 -  src/mc/mc_process.h
 -  src/mc/mc_process.cpp
 +  src/mc/Process.hpp
 +  src/mc/Process.cpp
    src/mc/mc_unw.h
    src/mc/mc_unw.cpp
    src/mc/mc_unw_vmread.cpp
    src/mc/mc_comm_determinism.cpp
    src/mc/mc_compare.cpp
    src/mc/mc_diff.cpp
 +  src/mc/mc_dwarf.hpp
    src/mc/mc_dwarf.cpp
    src/mc/mc_dwarf_attrnames.cpp
    src/mc/mc_dwarf_expression.cpp
@@@ -695,6 -694,15 +706,15 @@@ set(headers_to_instal
    include/simgrid/simix.h
    include/simgrid/host.h
    include/simgrid/link.h
+   include/simgrid/s4u/actor.hpp
+   include/simgrid/s4u/async.hpp
+   include/simgrid/s4u/comm.hpp
+   include/simgrid/s4u/engine.hpp  
+   include/simgrid/s4u/file.hpp  
+   include/simgrid/s4u/host.hpp  
+   include/simgrid/s4u/mailbox.hpp  
+   include/simgrid/s4u/storage.hpp  
+   include/simgrid/s4u.h
    include/smpi/mpi.h
    include/smpi/smpi.h
    include/smpi/smpi_cocci.h
    include/xbt/dynar.h
    include/xbt/ex.h
    include/xbt/fifo.h
 +  include/xbt/file.h
    include/xbt/function_types.h
    include/xbt/graph.h
    include/xbt/graphxml.h
@@@ -779,6 -786,7 +799,7 @@@ endif(
  ### Simgrid Lib sources
  set(simgrid_sources
    ${BINDINGS_SRC}
+   ${S4U_SRC}
    ${MSG_SRC}
    ${SIMDAG_SRC}
    ${SIMGRID_SRC}
@@@ -880,7 -888,6 +901,7 @@@ set(DOC_SOURCE
    doc/doxygen/deployment.doc
    doc/doxygen/footer.html
    doc/doxygen/getting_started.doc
 +  doc/doxygen/getting_started_index.doc
    doc/doxygen/header.html
    doc/doxygen/help.doc
    doc/doxygen/index.doc
    doc/doxygen/pls.doc
    doc/doxygen/stylesheet.css
    doc/doxygen/tracing.doc
 -  doc/doxygen/use.doc
 +  doc/doxygen/examples.doc
  
    doc/manpage/smpicc.1
    doc/manpage/smpicxx.1
@@@ -941,7 -948,6 +962,7 @@@ set(DOC_TOOL
    tools/doxygen/fig2dev_postprocessor.pl
    tools/doxygen/index_create.pl
    tools/doxygen/xbt_log_extract_hierarchy.pl
 +  tools/doxygen/list_routing_models_examples.sh
    )
  
  # these files get copied automatically to the html documentation
@@@ -957,7 -963,6 +978,7 @@@ set(DOC_IM
    ${CMAKE_HOME_DIRECTORY}/doc/webcruft/awstats_logo3.png
    ${CMAKE_HOME_DIRECTORY}/doc/webcruft/output.goal.pdf
    ${CMAKE_HOME_DIRECTORY}/doc/webcruft/poster_thumbnail.png
 +  ${CMAKE_HOME_DIRECTORY}/doc/webcruft/storage_sample_scenario.png
    ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_2011.gif
    ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_2011.png
    ${CMAKE_HOME_DIRECTORY}/doc/webcruft/simgrid_logo_2011_small.png
@@@ -1052,6 -1057,8 +1073,8 @@@ set(EXAMPLES_CMAKEFILES_TX
    examples/msg/suspend/CMakeLists.txt
    examples/msg/token_ring/CMakeLists.txt
    examples/msg/tracing/CMakeLists.txt
+   examples/s4u/CMakeLists.txt
+   examples/s4u/dumb/CMakeLists.txt
    examples/scala/CMakeLists.txt
    examples/scala/master_slave_bypass/CMakeLists.txt
    examples/scala/master_slave_kill/CMakeLists.txt
@@@ -1175,17 -1182,18 +1198,17 @@@ set(TOOLS_CMAKEFILES_TX
  
  set(CMAKE_SOURCE_FILES
    CMakeLists.txt
 -  tools/cmake/AddTests.cmake
 +  tools/cmake/Tests.cmake
    tools/cmake/CTestConfig.cmake
    tools/cmake/CTestCustom.cmake
    tools/cmake/CompleteInFiles.cmake
    tools/cmake/DefinePackages.cmake
    tools/cmake/Distrib.cmake
 -  tools/cmake/Flags.cmake
 -  tools/cmake/GenerateDoc.cmake
 -  tools/cmake/GenerateDocWin.cmake
 +  tools/cmake/GCCFlags.cmake
 +  tools/cmake/Documentation.cmake
    tools/cmake/MaintainerMode.cmake
    tools/cmake/MakeExe.cmake
 -  tools/cmake/MakeJava.cmake
 +  tools/cmake/Java.cmake
    tools/cmake/MakeLib.cmake
    tools/cmake/MakeLibWin.cmake
    tools/cmake/Modules/FindGFortran.cmake
    tools/cmake/Modules/FindSimGrid.cmake
    tools/cmake/Modules/FindValgrind.cmake
    tools/cmake/Option.cmake
 -  tools/cmake/Pipol.cmake
    tools/cmake/PrintArgs.cmake
 -  tools/cmake/Scripts/Diff.pm
 -  tools/cmake/Scripts/Makefile.default
 -  tools/cmake/Scripts/SimGrid.packproj
 -  tools/cmake/Scripts/generate_memcheck_tests.pl
 -  tools/cmake/Scripts/java_bundle.sh
 -  tools/cmake/Scripts/my_valgrind.pl
 -  tools/cmake/Scripts/postinstall.sh
 -  tools/cmake/Scripts/preinstall.sh
 -  tools/cmake/Scripts/update_tesh.pl
 +  tools/cmake/scripts/IPC/Run.pm
 +  tools/cmake/scripts/IPC/Run/Debug.pm
 +  tools/cmake/scripts/IPC/Run/IO.pm
 +  tools/cmake/scripts/IPC/Run/Timer.pm
 +  tools/cmake/scripts/IPC/Run/Win32Helper.pm
 +  tools/cmake/scripts/IPC/Run/Win32IO.pm
 +  tools/cmake/scripts/IPC/Run/Win32Pump.pm
 +  tools/cmake/scripts/Diff.pm
 +  tools/cmake/scripts/Makefile.default
 +  tools/cmake/scripts/SimGrid.packproj
 +  tools/cmake/scripts/generate_memcheck_tests.pl
 +  tools/cmake/scripts/my_valgrind.pl
 +  tools/cmake/scripts/postinstall.sh
 +  tools/cmake/scripts/preinstall.sh
 +  tools/cmake/scripts/update_tesh.pl
    tools/cmake/UnitTesting.cmake
    tools/cmake/src/internal_config.h.in
    tools/cmake/src/simgrid.nsi.in
    tools/cmake/test_prog/prog_stacksetup.c
    tools/cmake/test_prog/prog_thread_storage.c
    tools/cmake/test_prog/prog_vsnprintf.c
 -  buildtools/Cross/Mingw.cmake
 +  tools/cmake/cross-mingw.cmake
    tools/stack-cleaner/as
    tools/stack-cleaner/cc
    tools/stack-cleaner/c++
@@@ -9,6 -9,29 +9,6 @@@ install(DIRECTORY "${CMAKE_HOME_DIRECTO
  install(DIRECTORY "${CMAKE_HOME_DIRECTORY}/doc/HelloWorld/"
    DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/doc/simgrid/HelloWorld/)
  
 -#### Generate the manpages
 -if(NOT WIN32)
 -  if( NOT MANPAGE_DIR)
 -    set( MANPAGE_DIR ${CMAKE_BINARY_DIR}/manpages )
 -  endif()
 -
 -  add_custom_target(manpages ALL
 -    COMMAND ${CMAKE_COMMAND} -E make_directory ${MANPAGE_DIR}
 -    COMMAND pod2man ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl > ${MANPAGE_DIR}/simgrid_update_xml.1
 -    COMMENT "Generating manpages"
 -    )
 -  install(FILES
 -    ${MANPAGE_DIR}/simgrid_update_xml.1
 -    ${CMAKE_HOME_DIRECTORY}/tools/tesh/tesh.1
 -    ${CMAKE_HOME_DIRECTORY}/doc/manpage/smpicc.1
 -    ${CMAKE_HOME_DIRECTORY}/doc/manpage/smpicxx.1
 -    ${CMAKE_HOME_DIRECTORY}/doc/manpage/smpif90.1
 -    ${CMAKE_HOME_DIRECTORY}/doc/manpage/smpiff.1
 -    ${CMAKE_HOME_DIRECTORY}/doc/manpage/smpirun.1
 -    DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/man/man1)
 -
 -endif()
 -
  # binaries
  if(enable_smpi)
    install(PROGRAMS
@@@ -58,7 -81,11 +58,7 @@@ if(enable_lib_static AND NOT WIN32
  endif()
  
  if(enable_java)
 -  if(enable_lib_in_jar)
 -    set(SIMGRID_JAR_TO_INSTALL "${SIMGRID_FULL_JAR}")
 -  else()
 -    set(SIMGRID_JAR_TO_INSTALL "${SIMGRID_JAR}")
 -  endif()
 +  set(SIMGRID_JAR_TO_INSTALL "${SIMGRID_JAR}")
    install(TARGETS simgrid-java
        DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
    install(FILES ${SIMGRID_JAR_TO_INSTALL}
@@@ -179,6 -206,7 +179,7 @@@ set(source_to_pac
    ${MC_SRC}
    ${MC_SIMGRID_MC_SRC}
    ${MSG_SRC}
+   ${S4U_SRC}
    ${NS3_SRC}
    ${RNGSTREAM_SRC}
    ${SIMDAG_SRC}
@@@ -250,7 -278,7 +251,7 @@@ endforeach(file ${source_to_pack}
  
  add_custom_command(
    TARGET dist-dir
 -  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/cmake/Scripts/Makefile.default ${PROJECT_NAME}-${release_version}/Makefile
 +  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/Makefile.default ${PROJECT_NAME}-${release_version}/Makefile
    COMMAND ${CMAKE_COMMAND} -E echo "${GIT_VERSION}" > ${PROJECT_NAME}-${release_version}/.gitversion
    )
  
@@@ -363,18 -391,4 +364,18 @@@ add_custom_target(maintainer-clea
    WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}"
    )
  
 +if(WIN32)
 +  find_program(NSIS_PROGRAM NAMES makensi)
 +  message(STATUS "nsis: ${NSIS_PROGRAM}")
 +
 +  if(NSIS_PROGRAM)
 +    ADD_CUSTOM_TARGET(nsis
 +      COMMENT "Generating the SimGrid installer for Windows..."
 +      DEPENDS simgrid simgrid graphicator simgrid-colorizer simgrid_update_xml
 +      COMMAND ${NSIS_PROGRAM} simgrid.nsi
 +      WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/
 +    )
 +  endif()
 +endif()
 +
  include(CPack)
diff --combined tools/cmake/Tests.cmake
@@@ -59,38 -59,39 +59,38 @@@ MACRO(ADD_TESH_FACTORIES NAME FACTORIES
    ENDFOREACH()
  ENDMACRO()
  
 -INCLUDE(CTest)
 -ENABLE_TESTING()
 -
  IF(NOT enable_memcheck)
    ## CORE ##
    ### TESH ###
 -  ADD_TESH(tesh-self-basic                       --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/basic.tesh)
 -  ADD_TESH(tesh-self-cd                          --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/cd.tesh)
 -  ADD_TESH(tesh-self-IO-broken-pipe              --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/IO-broken-pipe.tesh)
 -  ADD_TESH(tesh-self-IO-orders                   --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/IO-orders.tesh)
 -  ADD_TESH(tesh-self-IO-bigsize                  --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/IO-bigsize.tesh)
 -  ADD_TESH(tesh-self-set-return                  --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-return.tesh)
 -  ADD_TESH(tesh-self-set-timeout                 --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-timeout.tesh)
 -  ADD_TESH(tesh-self-set-output-ignore           --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-output-ignore.tesh)
 -  ADD_TESH(tesh-self-set-output-sort             --setenv bindir=${CMAKE_BINARY_DIR}/bin --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" set-output-sort.tesh)
 -  ADD_TESH(tesh-self-catch-return                --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-return.tesh)
 -  ADD_TESH(tesh-self-catch-timeout               --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-timeout.tesh)
 -  ADD_TESH(tesh-self-catch-wrong-output          --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-wrong-output.tesh)
 -  ADD_TESH(tesh-self-bg-basic                    --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/bg-basic.tesh)
 -  ADD_TESH(tesh-self-background                  --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/background.tesh)
    IF(NOT WIN32)
 -    ADD_TESH(tesh-self-set-signal                --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-signal.tesh)
 -    ADD_TESH(tesh-self-bg-set-signal             --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/bg-set-signal.tesh)
 -    ADD_TESH(tesh-self-catch-signal              --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-signal.tesh)
 +    ADD_TESH(tesh-self-basic              --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/basic.tesh)
 +    ADD_TESH(tesh-self-cd                 --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/cd.tesh)
 +    ADD_TESH(tesh-self-setenv             --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/setenv.tesh)
 +    ADD_TESH(tesh-self-IO-broken-pipe     --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/IO-broken-pipe.tesh)
 +    ADD_TESH(tesh-self-IO-orders          --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/IO-orders.tesh)
 +    ADD_TESH(tesh-self-IO-bigsize         --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/IO-bigsize.tesh)
 +    ADD_TESH(tesh-self-set-return         --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-return.tesh)
 +    ADD_TESH(tesh-self-set-timeout        --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-timeout.tesh)
 +    ADD_TESH(tesh-self-set-output-ignore  --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-output-ignore.tesh)
 +    ADD_TESH(tesh-self-set-output-sort    --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-output-sort.tesh)
 +    ADD_TESH(tesh-self-catch-return       --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-return.tesh)
 +    ADD_TESH(tesh-self-catch-timeout      --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-timeout.tesh)
 +    ADD_TESH(tesh-self-catch-wrong-output --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-wrong-output.tesh)
 +    ADD_TESH(tesh-self-bg-basic           --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/bg-basic.tesh)
 +    ADD_TESH(tesh-self-background         --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/background.tesh)
 +    ADD_TESH(tesh-self-bg-set-signal      --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/bg-set-signal.tesh)
 +    ADD_TESH(tesh-self-catch-signal       --setenv bindir=${CMAKE_BINARY_DIR}/bin ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-signal.tesh)
    ENDIF()
  
    ### GENERIC  ###
    # BEGIN TESH TESTS
    # test for code coverage
 -  ADD_TEST(test-help                             ${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms/basic_parsing_test --help)
 -  ADD_TEST(test-help-models                      ${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms/basic_parsing_test --help-models)
 -  ADD_TEST(test-tracing-help                   ${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms/basic_parsing_test --help-tracing)
 -  ADD_TESH(graphicator                         --setenv srcdir=${CMAKE_HOME_DIRECTORY} --setenv bindir=${CMAKE_BINARY_DIR}/bin --cd ${CMAKE_HOME_DIRECTORY}/tools/graphicator graphicator.tesh)
 +  IF(NOT WIN32)
 +    ADD_TEST(test-help                             ${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms/basic_parsing_test --help)
 +    ADD_TEST(test-help-models                      ${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms/basic_parsing_test --help-models)
 +    ADD_TEST(test-tracing-help                   ${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms/basic_parsing_test --help-tracing)
 +    ADD_TESH(graphicator                         --setenv srcdir=${CMAKE_HOME_DIRECTORY} --setenv bindir=${CMAKE_BINARY_DIR}/bin --cd ${CMAKE_HOME_DIRECTORY}/tools/graphicator graphicator.tesh)
 +  ENDIF()
    # END TESH TESTS
  
    ADD_TESH(mc-replay-random-bug                  --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/replay --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/mc/replay --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/replay random_bug_replay.tesh)
      ADD_TESH(tesh-mc-dwarf                       --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/dwarf --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/dwarf dwarf.tesh)
      ADD_TESH(tesh-mc-dwarf-expression            --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/dwarf_expression --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/dwarf_expression dwarf_expression.tesh)
  
 -    ADD_TESH(tesh-mc-mutex-handling              --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc mutex_handling.tesh --cfg=model-check/reduction:none)
 -    ADD_TESH(tesh-mc-mutex-handling-dpor         --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc mutex_handling.tesh --cfg=model-check/reduction:dpor)
 -    ADD_TESH(tesh-mc-no-mutex-handling           --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc no_mutex_handling.tesh --cfg=model-check/reduction:none)
 -    ADD_TESH(tesh-mc-no-mutex-handling-dpor      --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc no_mutex_handling.tesh --cfg=model-check/reduction:dpor)
 +    ADD_TESH(tesh-mc-with-mutex-handling              --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc with_mutex_handling.tesh --cfg=model-check/reduction:none)
 +#    ADD_TESH(tesh-mc-with-mutex-handling-dpor         --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc with_mutex_handling.tesh --cfg=model-check/reduction:dpor)
 +    ADD_TESH(tesh-mc-without-mutex-handling           --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc without_mutex_handling.tesh --cfg=model-check/reduction:none)
 +    ADD_TESH(tesh-mc-without-mutex-handling-dpor      --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc without_mutex_handling.tesh --cfg=model-check/reduction:dpor)
  
      ADD_TESH(mc-record-random-bug                --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/mc/replay --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/mc/replay --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/mc/replay random_bug.tesh)
  
    ADD_TEST(msg-icomms-waitany                      ${CMAKE_BINARY_DIR}/examples/msg/icomms/peer3 ${CMAKE_HOME_DIRECTORY}/examples/platforms/small_platform.xml ${CMAKE_HOME_DIRECTORY}/examples/msg/icomms/deployment_peer05.xml)
    # END TESH TESTS
  
+   ### S4U ###
+   ADD_TESH_FACTORIES(s4u-dumb "thread;ucontext;raw;boost" --cd ${CMAKE_HOME_DIRECTORY}/examples/s4u/dumb s4u_test.tesh)
+   ADD_TESH_FACTORIES(s4u-io "thread;ucontext;raw;boost" --cd ${CMAKE_HOME_DIRECTORY}/examples/s4u/io s4u_io_test.tesh)
  
    ### SIMDAG ###
    # BEGIN TESH TESTS
    ADD_TESH(tesh-simdag-flatifier                 --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms flatifier.tesh)
    ADD_TESH(tesh-simdag-link                      --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms basic_link_test.tesh)
    ADD_TESH(tesh-simdag-reinit-costs              --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/network/test_reinit_costs.tesh)
 -  set_property(TEST tesh-simdag-reinit-costs PROPERTY WILL_FAIL TRUE)
    ADD_TESH(tesh-simdag-parser                    --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms basic_parsing_test.tesh)
    ADD_TESH(tesh-simdag-parser-sym-full           --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms basic_parsing_test_sym_full.tesh)
    ADD_TESH(tesh-simdag-full-links                --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms get_full_link.tesh)
    ### JAVA ###
    IF(enable_java)
      IF(WIN32)
 -      SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/java/\;${CMAKE_BINARY_DIR}/teshsuite/java/\;${SIMGRID_FULL_JAR}")
 +      SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/java/\;${CMAKE_BINARY_DIR}/teshsuite/java/\;${SIMGRID_JAR}")
        STRING(REPLACE "\;" "§" TESH_CLASSPATH "${TESH_CLASSPATH}")
      ELSE()
 -      SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/java/:${CMAKE_BINARY_DIR}/teshsuite/java/:${SIMGRID_FULL_JAR}")
 +      SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/java/:${CMAKE_BINARY_DIR}/teshsuite/java/:${SIMGRID_JAR}")
      ENDIF()
      ADD_TESH(java-async                          --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/async/async.tesh)
      ADD_TESH(java-bittorrent                     --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/bittorrent/bittorrent.tesh)
      ADD_TESH(java-mutualExclusion                --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/mutualExclusion/mutualexclusion.tesh)
      ADD_TESH(java-pingPong                       --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/pingPong/pingpong.tesh)
      ADD_TESH(java-priority                       --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/priority/priority.tesh)
 -    ADD_TESH(java-reservation-surf-plugin        --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/reservationSurfPlugin/reservation_surf_plugin.tesh)
      ADD_TESH(java-startKillTime                  --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/startKillTime/startKillTime.tesh)
      ADD_TESH(java-surf-cpu-model                 --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/surfCpuModel/surf_cpu_model.tesh)
      ADD_TESH(java-surf-plugin                    --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/surfPlugin/surf_plugin.tesh)
 +    ADD_TESH(java-surf-plugin-reservation        --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/reservationSurfPlugin/reservation_surf_plugin.tesh)
      ADD_TESH(java-suspend                        --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/suspend/suspend.tesh)
 -    ADD_TESH(java-tracing                      --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/tracing/tracingPingPong.tesh)
 +    ADD_TESH(java-tracing                        --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/tracing/tracingPingPong.tesh)
  
      # teshsuite ones
      ADD_TESH(tesh-java-sleep-host-off            --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/teshsuite/java ${CMAKE_HOME_DIRECTORY}/teshsuite/java/sleep_host_off/sleep_host_off.tesh)
    ### SCALA ###
    IF(enable_scala)
      IF(WIN32)
 -      SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/scala/\;${SIMGRID_FULL_JAR}\;${SCALA_JARS}")
 +      SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/scala/\;${SIMGRID_JAR}\;${SCALA_JARS}")
        STRING(REPLACE "\;" "§" TESH_CLASSPATH "${TESH_CLASSPATH}")
      ELSE()
 -      SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/scala/:${SIMGRID_FULL_JAR}:${SCALA_JARS}")
 +      SET(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/scala/:${SIMGRID_JAR}:${SCALA_JARS}")
      ENDIF()
      ADD_TESH(scala-bypass                        --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/scala --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/scala ${CMAKE_HOME_DIRECTORY}/examples/scala/master_slave_bypass/bypass.tesh)
      ADD_TESH(scala-kill                          --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/scala --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/scala ${CMAKE_HOME_DIRECTORY}/examples/scala/master_slave_kill/kill.tesh)
  
  ENDIF()
  
 -if(enable_smpi AND enable_smpi_ISP_testsuite)
 -FOREACH (tesh
 -    any_src-can-deadlock10
 -    any_src-can-deadlock4
 -    any_src-can-deadlock5
 -    any_src-can-deadlock6
 -    any_src-waitall-deadlock2
 -    any_src-waitall-deadlock3
 -    any_src-waitany-deadlock2
 -    any_src-waitany-deadlock
 -    any_src-wait-deadlock
 -    basic-deadlock-comm_create
 -    basic-deadlock-comm_dup
 -    basic-deadlock-comm_split
 -    basic-deadlock
 -    bcast-deadlock
 -    collective-misorder-allreduce
 -    collective-misorder
 -    complex-deadlock
 -    deadlock-config
 -    finalize-deadlock
 -    irecv-deadlock
 -    no-error2
 -    no-error3-any_src
 -    no-error3
 -    no-error
 -    )
 -  IF(HAVE_MC)
 -    ADD_TESH(mc-umpire-${tesh}
 -      --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/isp/umpire
 -      --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/isp/umpire
 -      --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/isp/umpire
 -      ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/isp/umpire/${tesh}.tesh)
 -  ENDIF()
 -ENDFOREACH()
 -endif()
  
    ## OTHER ##
  ADD_TEST(testall                                 ${CMAKE_BINARY_DIR}/src/testall)