Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add suspend example/test
authorSamuel Lepetit <samuel.lepetit@inria.fr>
Mon, 11 Jun 2012 15:45:31 +0000 (17:45 +0200)
committerSamuel Lepetit <samuel.lepetit@inria.fr>
Mon, 11 Jun 2012 15:47:06 +0000 (17:47 +0200)
CMakeLists.txt
examples/suspend/DreamMaster.java [new file with mode: 0644]
examples/suspend/LazyGuy.java [new file with mode: 0644]
examples/suspend/Suspend.java [new file with mode: 0644]
examples/suspend/suspend.tesh [new file with mode: 0644]
examples/suspend/suspendDeployment.xml [new file with mode: 0644]

index f2d0163..94aef31 100644 (file)
@@ -113,6 +113,18 @@ set(JMSG_JAVA_SRC
 )
 
 set(JAVA_EXAMPLES
 )
 
 set(JAVA_EXAMPLES
+       examples/async/AsyncTest.java
+       examples/async/FinalizeTask.java  
+       examples/async/Forwarder.java
+       examples/async/Master.java  
+       examples/async/Slave.java
+       examples/startKillTime/Slave.java
+       examples/basic/FinalizeTask.java
+       examples/basic/Forwarder.java
+       examples/basic/Master.java
+       examples/basic/BasicTest.java
+       examples/basic/Slave.java
+
   examples/bittorrent/Bittorrent.java
   examples/bittorrent/Common.java
   examples/bittorrent/Connection.java
   examples/bittorrent/Bittorrent.java
   examples/bittorrent/Common.java
   examples/bittorrent/Connection.java
@@ -128,25 +140,10 @@ set(JAVA_EXAMPLES
        examples/chord/FindSuccessorTask.java
        examples/chord/GetPredecessorAnswerTask.java
        examples/chord/NotifyTask.java
        examples/chord/FindSuccessorTask.java
        examples/chord/GetPredecessorAnswerTask.java
        examples/chord/NotifyTask.java
-       examples/mutualExclusion/centralized/MutexCentral.java
-       examples/mutualExclusion/centralized/GrantTask.java
-       examples/mutualExclusion/centralized/Coordinator.java
-       examples/mutualExclusion/centralized/ReleaseTask.java
-       examples/mutualExclusion/centralized/Node.java
-       examples/mutualExclusion/centralized/RequestTask.java
-       examples/basic/FinalizeTask.java
-       examples/basic/Forwarder.java
-       examples/basic/Master.java
-       examples/basic/BasicTest.java
-       examples/basic/Slave.java
        examples/commTime/FinalizeTask.java
        examples/commTime/Master.java
        examples/commTime/Slave.java
        examples/commTime/CommTimeTest.java
        examples/commTime/FinalizeTask.java
        examples/commTime/Master.java
        examples/commTime/Slave.java
        examples/commTime/CommTimeTest.java
-       examples/pingPong/PingPongTask.java
-       examples/pingPong/Sender.java
-       examples/pingPong/Receiver.java
-       examples/pingPong/PingPongTest.java
        examples/master_slave_bypass/Master.java
        examples/master_slave_bypass/MsBypass.java
        examples/master_slave_bypass/Slave.java
        examples/master_slave_bypass/Master.java
        examples/master_slave_bypass/MsBypass.java
        examples/master_slave_bypass/Slave.java
@@ -155,14 +152,21 @@ set(JAVA_EXAMPLES
        examples/master_slave_kill/MsKill.java
        examples/master_slave_kill/Slave.java
        examples/master_slave_kill/FinalizeTask.java
        examples/master_slave_kill/MsKill.java
        examples/master_slave_kill/Slave.java
        examples/master_slave_kill/FinalizeTask.java
-       examples/async/AsyncTest.java
-       examples/async/FinalizeTask.java  
-       examples/async/Forwarder.java
-       examples/async/Master.java  
-       examples/async/Slave.java
-       examples/startKillTime/Slave.java
+       examples/mutualExclusion/centralized/MutexCentral.java
+       examples/mutualExclusion/centralized/GrantTask.java
+       examples/mutualExclusion/centralized/Coordinator.java
+       examples/mutualExclusion/centralized/ReleaseTask.java
+       examples/mutualExclusion/centralized/Node.java
+       examples/mutualExclusion/centralized/RequestTask.java
+       examples/pingPong/PingPongTask.java
+       examples/pingPong/Sender.java
+       examples/pingPong/Receiver.java
+       examples/pingPong/PingPongTest.java
        examples/startKillTime/Master.java
        examples/startKillTime/StartKillTime.java
        examples/startKillTime/Master.java
        examples/startKillTime/StartKillTime.java
+       examples/suspend/DreamMaster.java
+       examples/suspend/LazyGuy.java
+       examples/suspend/Suspend.java
 )
 
 set(CMAKE_SRC
 )
 
 set(CMAKE_SRC
@@ -255,16 +259,17 @@ add_custom_command(
        COMMENT "Build examples for java"
        OUTPUT  ${JAVA_EXAMPLES_CLASS}
        DEPENDS ${JAVA_EXAMPLES}
        COMMENT "Build examples for java"
        OUTPUT  ${JAVA_EXAMPLES_CLASS}
        DEPENDS ${JAVA_EXAMPLES}
-       COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/basic/*.java  
-       COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/async/*.java
-       COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/chord/*.java
-       COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/commTime/*.java
-         COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/*.java
-         COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/*.java
-       COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/*.java                                 
+  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/async/*.java
+  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/basic/*.java  
+       COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/*.java
+  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/chord/*.java
+  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/commTime/*.java
+       COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/*.java
+  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/*.java
+  COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/*.java                                      
        COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/pingPong/*.java
        COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/*.java
        COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/pingPong/*.java
        COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/*.java
-       COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/*.java
+       COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/suspend/*.java
 
 )
 
 
 )
 
@@ -290,16 +295,17 @@ ENABLE_TESTING()
 
 ADD_TEST(async           ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/async/async.tesh)
 ADD_TEST(basic           ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/basic/basic.tesh)
 
 ADD_TEST(async           ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/async/async.tesh)
 ADD_TEST(basic           ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/basic/basic.tesh)
-ADD_TEST(bittorrent           ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/bittorrent.tesh)
-ADD_TEST(chord          ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/chord/chord.tesh)
-ADD_TEST(pingPong        ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/pingPong/pingpong.tesh)
-ADD_TEST(CommTime        ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/commTime/commtime.tesh)
-ADD_TEST(mutualExclusion ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/mutualexclusion.tesh)
+ADD_TEST(bittorrent      ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/bittorrent.tesh)
 ADD_TEST(bypass          ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/bypass.tesh)
 ADD_TEST(bypass          ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/bypass.tesh)
+ADD_TEST(commTime        ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/commTime/commtime.tesh)
+ADD_TEST(chord          ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/chord/chord.tesh)
 ADD_TEST(kill            ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/kill.tesh)
 ADD_TEST(kill            ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/kill.tesh)
-ADD_TEST(startKillTime            ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/startKillTime.tesh)
+ADD_TEST(mutualExclusion ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/mutualexclusion.tesh)
+ADD_TEST(pingPong        ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/pingPong/pingpong.tesh)
+ADD_TEST(startKillTime   ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/startKillTime.tesh)
+ADD_TEST(suspend         ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/suspend/suspend.tesh)
 #Don't forget to put new test in this list!!!
 #Don't forget to put new test in this list!!!
-set(test_list basic bittorrent chord async pingPong CommTime mutualExclusion bypass kill startKillTime)
+set(test_list async basic bittorrent bypass chord commTime kill mutualExclusion pingPong startKillTime)
 
 ##########################################
 # Set the  DYLD_LIBRARY_PATH for mac     #
 
 ##########################################
 # Set the  DYLD_LIBRARY_PATH for mac     #
diff --git a/examples/suspend/DreamMaster.java b/examples/suspend/DreamMaster.java
new file mode 100644 (file)
index 0000000..2f1efe5
--- /dev/null
@@ -0,0 +1,21 @@
+package suspend;
+
+import org.simgrid.msg.Host;
+import org.simgrid.msg.Msg;
+import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
+public class DreamMaster extends Process {
+       public DreamMaster(Host host, String name, String[]args) {
+               super(host,name,args);
+       } 
+       public void main(String[] args) throws MsgException {
+               Msg.info("Let's create a lazy guy.");
+               Process lazyGuy = new LazyGuy(getHost(),"Lazy",null);
+               lazyGuy.start();
+               Msg.info("Let's wait a little bit...");
+               waitFor(10);
+               Msg.info("Let's wake the lazy guy up! >:) BOOOOOUUUHHH!!!!");
+               lazyGuy.restart();
+               Msg.info("OK, goodbye now.");
+       }
+}
\ No newline at end of file
diff --git a/examples/suspend/LazyGuy.java b/examples/suspend/LazyGuy.java
new file mode 100644 (file)
index 0000000..cb7c722
--- /dev/null
@@ -0,0 +1,17 @@
+package suspend;
+
+import org.simgrid.msg.Host;
+import org.simgrid.msg.Msg;
+import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
+public class LazyGuy extends Process {
+       public LazyGuy(Host host, String name, String[]args) {
+               super(host,name,args);
+       } 
+       public void main(String[] args) throws MsgException {
+               Msg.info("Nobody's watching me ? Let's go to sleep.");
+               pause();
+               Msg.info("Uuuh ? Did somebody call me ?");
+               Msg.info("Mmmh, goodbye now.");
+       }
+}
\ No newline at end of file
diff --git a/examples/suspend/Suspend.java b/examples/suspend/Suspend.java
new file mode 100644 (file)
index 0000000..b628c30
--- /dev/null
@@ -0,0 +1,21 @@
+package suspend;
+
+import org.simgrid.msg.Msg;
+
+public class Suspend {
+       public static void main(String[] args) {
+               /* initialize the MSG simulation. Must be done before anything else (even logging). */
+               Msg.init(args);
+       if(args.length < 2) {
+               Msg.info("Usage   : Suspend platform_file deployment_file");
+               Msg.info("example : Suspend platform.xml deployment.xml");
+               System.exit(1);
+       }
+               /* construct the platform and deploy the application */
+               Msg.createEnvironment(args[0]);
+               Msg.deployApplication(args[1]);
+                       
+               /*  execute the simulation. */
+        Msg.run();             
+       }
+}
diff --git a/examples/suspend/suspend.tesh b/examples/suspend/suspend.tesh
new file mode 100644 (file)
index 0000000..323fb6a
--- /dev/null
@@ -0,0 +1,18 @@
+#! ./tesh
+
+! output sort
+
+$ java -cp .:${srcdir:=.}/examples:${srcdir:=.}/simgrid.jar suspend/Suspend ${srcdir:=.}/examples/platform.xml ${srcdir:=.}/examples/suspend/suspendDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (0:@) Ready to run MSG_MAIN
+> [  0.000000] (1:suspend.DreamMaster@Jacquelin) Let's create a lazy guy.
+> [  0.000000] (1:suspend.DreamMaster@Jacquelin) Let's wait a little bit...
+> [  0.000000] (2:Lazy@Jacquelin) Nobody's watching me ? Let's go to sleep.
+> [ 10.000000] (0:@) Done running MSG_MAIN
+> [ 10.000000] (0:@) MSG_main finished
+> [ 10.000000] (0:@) Clean java world
+> [ 10.000000] (0:@) Clean native world
+> [ 10.000000] (1:suspend.DreamMaster@Jacquelin) Let's wake the lazy guy up! >:) BOOOOOUUUHHH!!!!
+> [ 10.000000] (1:suspend.DreamMaster@Jacquelin) OK, goodbye now.
+> [ 10.000000] (2:Lazy@Jacquelin) Uuuh ? Did somebody call me ?
+> [ 10.000000] (2:Lazy@Jacquelin) Mmmh, goodbye now.
+
diff --git a/examples/suspend/suspendDeployment.xml b/examples/suspend/suspendDeployment.xml
new file mode 100644 (file)
index 0000000..af3d363
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
+<platform version="3">
+  <process host="Jacquelin" function="suspend.DreamMaster"/>
+</platform>