Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
a dumb test for the upcoming interface
authorMartin Quinson <martin.quinson@loria.fr>
Wed, 22 Jul 2015 12:02:05 +0000 (14:02 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Sat, 25 Jul 2015 21:06:49 +0000 (23:06 +0200)
.gitignore
buildtools/Cmake/AddTests.cmake
buildtools/Cmake/DefinePackages.cmake
buildtools/Cmake/MakeExe.cmake
examples/s4u/CMakeLists.txt [new file with mode: 0644]
examples/s4u/README [new file with mode: 0644]
examples/s4u/dumb/CMakeLists.txt [new file with mode: 0644]
examples/s4u/dumb/s4u_test.cpp [new file with mode: 0644]
examples/s4u/dumb/s4u_test.tesh [new file with mode: 0644]

index b55a3ec..a42d951 100644 (file)
@@ -181,6 +181,7 @@ examples/msg/masterslave/masterslave_console
 examples/msg/irc_isend/peer
 examples/msg/irc_isend/toto.txt
 examples/msg/ns3/ns3
 examples/msg/irc_isend/peer
 examples/msg/irc_isend/toto.txt
 examples/msg/ns3/ns3
+examples/s4u/dumb/s4u_test
 examples/simdag/sd_avail
 examples/simdag/ex_sd_seq_access
 examples/simdag/sd_seq_access
 examples/simdag/sd_avail
 examples/simdag/ex_sd_seq_access
 examples/simdag/sd_seq_access
index 64de948..8abfa55 100644 (file)
@@ -279,6 +279,8 @@ IF(NOT enable_memcheck)
   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
 
   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)
 
   ### SIMDAG ###
   # BEGIN TESH TESTS
 
   ### SIMDAG ###
   # BEGIN TESH TESTS
index 4d5527e..67fd24c 100644 (file)
@@ -694,7 +694,7 @@ set(headers_to_install
   include/simgrid/simix.h
   include/simgrid/host.h
   include/simgrid/link.h
   include/simgrid/simix.h
   include/simgrid/host.h
   include/simgrid/link.h
-  include/simgrid/s4u/s4u/engine.hpp  
+  include/simgrid/s4u/engine.hpp  
   include/simgrid/s4u/host.hpp  
   include/simgrid/s4u/process.hpp
   include/simgrid/s4u.h
   include/simgrid/s4u/host.hpp  
   include/simgrid/s4u/process.hpp
   include/simgrid/s4u.h
@@ -1066,6 +1066,7 @@ set(EXAMPLES_CMAKEFILES_TXT
   examples/msg/suspend/CMakeLists.txt
   examples/msg/token_ring/CMakeLists.txt
   examples/msg/tracing/CMakeLists.txt
   examples/msg/suspend/CMakeLists.txt
   examples/msg/token_ring/CMakeLists.txt
   examples/msg/tracing/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
   examples/scala/CMakeLists.txt
   examples/scala/master_slave_bypass/CMakeLists.txt
   examples/scala/master_slave_kill/CMakeLists.txt
index c04c5bc..b50ae4f 100644 (file)
@@ -58,6 +58,9 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/suspend)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/token_ring)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/tracing)
 
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/token_ring)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/msg/tracing)
 
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/s4u)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/s4u/dumb)
+
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/scala)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/scala/master_slave_bypass)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/scala/master_slave_kill)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/scala)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/scala/master_slave_bypass)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/scala/master_slave_kill)
diff --git a/examples/s4u/CMakeLists.txt b/examples/s4u/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1400a02
--- /dev/null
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(tesh_files
+  ${tesh_files}
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/README
+  PARENT_SCOPE
+  )
diff --git a/examples/s4u/README b/examples/s4u/README
new file mode 100644 (file)
index 0000000..0b54715
--- /dev/null
@@ -0,0 +1,7 @@
+S4U (Simgrid for you) is the next interface of SimGrid, expected to be
+released with SimGrid 4.0.
+
+Even if it's in a very preliminary state so far, you are welcome to
+try it an report any interface glitches that you see. Be however
+warned that the interface will be modified until its final release.
+You will have to adapt your code on the way.
\ No newline at end of file
diff --git a/examples/s4u/dumb/CMakeLists.txt b/examples/s4u/dumb/CMakeLists.txt
new file mode 100644 (file)
index 0000000..0f105ca
--- /dev/null
@@ -0,0 +1,30 @@
+cmake_minimum_required(VERSION 2.6)
+
+set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
+add_executable(s4u_test s4u_test.cpp)
+
+### Add definitions for compile
+target_link_libraries(s4u_test simgrid)
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/s4u_test.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${CMAKE_CURRENT_SOURCE_DIR}/s4u_test.cpp
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
diff --git a/examples/s4u/dumb/s4u_test.cpp b/examples/s4u/dumb/s4u_test.cpp
new file mode 100644 (file)
index 0000000..a69c7e6
--- /dev/null
@@ -0,0 +1,50 @@
+/* Copyright (c) 2006-2015. The SimGrid Team. All rights reserved.          */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#include "simgrid/s4u.h"
+
+using namespace simgrid;
+
+XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "a sample log category");
+
+class Worker : s4u::Process {
+public:
+       Worker(const char*procname, s4u::Host *host,int argc, char **argv)
+                       : s4u::Process(procname,host,argc,argv){}
+
+       int main(int argc, char **argv) {
+               XBT_INFO("Hello s4u, I'm ready to serve");
+
+               char *msg = recvstr("worker");
+               XBT_INFO("I received '%s'",msg);
+               XBT_INFO("I'm done. See you.");
+               return 1;
+       }
+};
+
+class Master : s4u::Process {
+public:
+       Master(const char*procname, s4u::Host *host,int argc, char **argv)
+                       : s4u::Process(procname,host,argc,argv){}
+
+       int main(int argc, char **argv) {
+               XBT_INFO("Hello s4u, I have something to send");
+               sendstr("worker","GaBuZoMeu");
+
+               XBT_INFO("I'm done. See you.");
+               return 1;
+       }
+};
+
+
+int main(int argc, char **argv) {
+       s4u::Engine *e = new s4u::Engine(&argc,argv);
+       e->loadPlatform("../../platforms/two_hosts_platform.xml");
+
+       new Worker("worker", s4u::Host::byName("host0"), 0, NULL);
+       new Master("master", s4u::Host::byName("host1"), 0, NULL);
+       e->run();
+       return 0;
+}
diff --git a/examples/s4u/dumb/s4u_test.tesh b/examples/s4u/dumb/s4u_test.tesh
new file mode 100644 (file)
index 0000000..ae282fb
--- /dev/null
@@ -0,0 +1,8 @@
+#! ./tesh
+
+$ $SG_TEST_EXENV ./s4u_test
+> [host0:worker:(0) 0.000000] [s4u_test/INFO] Hello s4u, I'm ready to serve
+> [host1:master:(0) 0.000000] [s4u_test/INFO] Hello s4u, I have something to send
+> [host0:worker:(0) 0.001301] [s4u_test/INFO] I received 'GaBuZoMeu'
+> [host0:worker:(0) 0.001301] [s4u_test/INFO] I'm done. See you.
+> [host1:master:(0) 0.001301] [s4u_test/INFO] I'm done. See you.