Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
revamp the start_kill test to greatly improve the coverage
authorMartin Quinson <martin.quinson@loria.fr>
Sun, 26 Apr 2015 21:40:20 +0000 (23:40 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Sun, 26 Apr 2015 21:40:20 +0000 (23:40 +0200)
examples/msg/start_kill_time/deployment.xml
examples/msg/start_kill_time/deployment_kill.xml
examples/msg/start_kill_time/deployment_start.xml
examples/msg/start_kill_time/deployment_start_kill.xml
examples/msg/start_kill_time/sk_time.c
examples/msg/start_kill_time/start_kill_time.tesh

index fefeb8e..c9b5c37 100644 (file)
@@ -1,10 +1,8 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
 <platform version="3">
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
 <platform version="3">
-    <process host="node-0.acme.org" function="master"/>
-       <process host="node-1.acme.org" function="slave"/>
-       <process host="node-2.acme.org" function="slave"/>
-       <process host="node-3.acme.org" function="slave"/>
-       <process host="node-4.acme.org" function="slave"/>
-       <process host="node-5.acme.org" function="slave"/>
+    <!-- Just sleeps for 10 seconds and quits -->
+    <process host="node-0.acme.org" function="sleeper">  
+       <argument value="10"/>
+    </process>
 </platform>
 </platform>
index 39cdf4e..056979d 100644 (file)
@@ -1,10 +1,7 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
 <platform version="3">
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
 <platform version="3">
-    <process host="node-0.acme.org" function="master"/>
-       <process host="node-1.acme.org" function="slave" kill_time="6"/>
-       <process host="node-2.acme.org" function="slave" kill_time="6"/>
-       <process host="node-3.acme.org" function="slave" kill_time="6"/>
-       <process host="node-4.acme.org" function="slave" kill_time="6"/>
-       <process host="node-5.acme.org" function="slave" kill_time="6"/>
+    <process host="node-1.acme.org" function="sleeper" kill_time="6">  <argument value="10"/></process>
+    <process host="node-2.acme.org" function="sleeper" kill_time="6">  <argument value="6"/></process>
+    <process host="node-3.acme.org" function="sleeper" kill_time="10"> <argument value="6"/></process>
 </platform>
 </platform>
index 203df2b..39af2ab 100644 (file)
@@ -1,10 +1,10 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
 <platform version="3">
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
 <platform version="3">
-    <process host="node-0.acme.org" function="master"/>
-       <process host="node-1.acme.org" function="slave" start_time="1"/>
-       <process host="node-2.acme.org" function="slave" start_time="2"/>
-       <process host="node-3.acme.org" function="slave" start_time="3"/>
-       <process host="node-4.acme.org" function="slave" start_time="4"/>
-       <process host="node-5.acme.org" function="slave" start_time="5"/>
+    <process host="node-0.acme.org" function="sleeper" start_time="0">  <argument value="10"/></process>
+    <process host="node-1.acme.org" function="sleeper" start_time="1">  <argument value="10"/></process>
+    <process host="node-2.acme.org" function="sleeper" start_time="2">  <argument value="10"/></process>
+    <process host="node-3.acme.org" function="sleeper" start_time="3">  <argument value="10"/></process>
+    <process host="node-4.acme.org" function="sleeper" start_time="4">  <argument value="10"/></process>
+    <process host="node-5.acme.org" function="sleeper" start_time="5">  <argument value="10"/></process>
 </platform>
 </platform>
index d4beac4..0a6d5ca 100644 (file)
@@ -1,10 +1,10 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
 <platform version="3">
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
 <platform version="3">
-    <process host="node-0.acme.org" function="master"/>
-       <process host="node-1.acme.org" function="slave" start_time="1" kill_time="5"/>
-       <process host="node-2.acme.org" function="slave" start_time="2" kill_time="6"/>
-       <process host="node-3.acme.org" function="slave" start_time="3" kill_time="7"/>
-       <process host="node-4.acme.org" function="slave" start_time="4" kill_time="8"/>
-       <process host="node-5.acme.org" function="slave" start_time="5" kill_time="9"/>
+    <process host="node-0.acme.org" function="sleeper" start_time="0" kill_time="5">  <argument value="10"/></process>
+    <process host="node-1.acme.org" function="sleeper" start_time="1" kill_time="6">  <argument value="10"/></process>
+    <process host="node-2.acme.org" function="sleeper" start_time="2" kill_time="7">  <argument value="4" /></process>
+    <process host="node-3.acme.org" function="sleeper" start_time="3" kill_time="8">  <argument value="4" /></process>
+    <process host="node-4.acme.org" function="sleeper" start_time="4" kill_time="9">  <argument value="5" /></process>
+    <process host="node-5.acme.org" function="sleeper" start_time="5" kill_time="10"> <argument value="5"/></process>
 </platform>
 </platform>
index af50303..3ade8f0 100644 (file)
@@ -1,10 +1,10 @@
-/* Copyright (c) 2007, 2009-2010, 2012-2014. The SimGrid Team.
+/* Copyright (c) 2007, 2009-2010, 2012-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. */
 
  * 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/msg.h"            /* Yeah! If you want to use msg, you need to include simgrid/msg.h */
+#include "simgrid/msg.h"        /* Yeah! If you want to use msg, you need to include simgrid/msg.h */
 #include "xbt/sysdep.h"         /* calloc */
 
 /* Create a log channel to have nice outputs. */
 #include "xbt/sysdep.h"         /* calloc */
 
 /* Create a log channel to have nice outputs. */
 XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
                              "Messages specific for this msg example");
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
                              "Messages specific for this msg example");
 
-/** Lazy guy function. This process suspends itself asap.  */
-static int slave(int argc, char *argv[])
-{
-  XBT_INFO("Hello!");
-  MSG_process_sleep(10.0);
-  XBT_INFO("OK, goodbye now.");
+static int my_onexit(void* ignored1, void *ignored2) {
+  XBT_INFO("Exiting now (done sleeping or got killed).");
   return 0;
   return 0;
-}                               /* end_of_lazy_guy */
+}
 
 
-static int master(int argc, char *argv[])
+static int sleeper(int argc, char *argv[])
 {
 {
-  XBT_INFO("Hello!");
-  MSG_process_sleep(10.0);
-  XBT_INFO("OK, goodbye now.");
+  XBT_INFO("Hello! I go to sleep.");
+  MSG_process_on_exit(my_onexit, NULL);
+   
+  MSG_process_sleep(atoi(argv[1]));
+  XBT_INFO("Done sleeping.");
   return 0;
   return 0;
-}                               /* end_of_dram_master */
+}
 
 /** Test function */
 static msg_error_t test_all(const char *platform_file,
 
 /** Test function */
 static msg_error_t test_all(const char *platform_file,
@@ -36,8 +34,7 @@ static msg_error_t test_all(const char *platform_file,
   msg_error_t res = MSG_OK;
 
   MSG_create_environment(platform_file);
   msg_error_t res = MSG_OK;
 
   MSG_create_environment(platform_file);
-  MSG_function_register("master", master);
-  MSG_function_register("slave", slave);
+  MSG_function_register("sleeper", sleeper);
   MSG_launch_application(application_file);
 
   res = MSG_main();
   MSG_launch_application(application_file);
 
   res = MSG_main();
index 4e98d61..b0cd29c 100644 (file)
@@ -3,57 +3,61 @@
 p Test0 Process without time
 
 $ $SG_TEST_EXENV ${bindir:=.}/start_kill_time/sk_time ${srcdir:=.}/examples/platforms/cluster.xml ${srcdir:=.}/examples/msg/start_kill_time/deployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 p Test0 Process without time
 
 $ $SG_TEST_EXENV ${bindir:=.}/start_kill_time/sk_time ${srcdir:=.}/examples/platforms/cluster.xml ${srcdir:=.}/examples/msg/start_kill_time/deployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (1:master@node-0.acme.org) Hello!
-> [  0.000000] (2:slave@node-1.acme.org) Hello!
-> [  0.000000] (3:slave@node-2.acme.org) Hello!
-> [  0.000000] (4:slave@node-3.acme.org) Hello!
-> [  0.000000] (5:slave@node-4.acme.org) Hello!
-> [  0.000000] (6:slave@node-5.acme.org) Hello!
-> [ 10.000000] (6:slave@node-5.acme.org) OK, goodbye now.
-> [ 10.000000] (1:master@node-0.acme.org) OK, goodbye now.
-> [ 10.000000] (2:slave@node-1.acme.org) OK, goodbye now.
-> [ 10.000000] (3:slave@node-2.acme.org) OK, goodbye now.
-> [ 10.000000] (4:slave@node-3.acme.org) OK, goodbye now.
-> [ 10.000000] (5:slave@node-4.acme.org) OK, goodbye now.
+> [  0.000000] (1:sleeper@node-0.acme.org) Hello! I go to sleep.
+> [ 10.000000] (1:sleeper@node-0.acme.org) Done sleeping.
+> [ 10.000000] (1:sleeper@node-0.acme.org) Exiting now (done sleeping or got killed).
 > [ 10.000000] (0:@) Simulation time 10
 
 p Test1 Process with start time
 
 $ $SG_TEST_EXENV ${bindir:=.}/start_kill_time/sk_time ${srcdir:=.}/examples/platforms/cluster.xml ${srcdir:=.}/examples/msg/start_kill_time/deployment_start.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [ 10.000000] (0:@) Simulation time 10
 
 p Test1 Process with start time
 
 $ $SG_TEST_EXENV ${bindir:=.}/start_kill_time/sk_time ${srcdir:=.}/examples/platforms/cluster.xml ${srcdir:=.}/examples/msg/start_kill_time/deployment_start.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (1:master@node-0.acme.org) Hello!
-> [  1.000000] (2:slave@node-1.acme.org) Hello!
-> [  2.000000] (3:slave@node-2.acme.org) Hello!
-> [  3.000000] (4:slave@node-3.acme.org) Hello!
-> [  4.000000] (5:slave@node-4.acme.org) Hello!
-> [  5.000000] (6:slave@node-5.acme.org) Hello!
-> [ 10.000000] (1:master@node-0.acme.org) OK, goodbye now.
-> [ 11.000000] (2:slave@node-1.acme.org) OK, goodbye now.
-> [ 12.000000] (3:slave@node-2.acme.org) OK, goodbye now.
-> [ 13.000000] (4:slave@node-3.acme.org) OK, goodbye now.
-> [ 14.000000] (5:slave@node-4.acme.org) OK, goodbye now.
-> [ 15.000000] (6:slave@node-5.acme.org) OK, goodbye now.
+> [  0.000000] (1:sleeper@node-0.acme.org) Hello! I go to sleep.
+> [  1.000000] (2:sleeper@node-1.acme.org) Hello! I go to sleep.
+> [  2.000000] (3:sleeper@node-2.acme.org) Hello! I go to sleep.
+> [  3.000000] (4:sleeper@node-3.acme.org) Hello! I go to sleep.
+> [  4.000000] (5:sleeper@node-4.acme.org) Hello! I go to sleep.
+> [  5.000000] (6:sleeper@node-5.acme.org) Hello! I go to sleep.
+> [ 10.000000] (1:sleeper@node-0.acme.org) Done sleeping.
+> [ 10.000000] (1:sleeper@node-0.acme.org) Exiting now (done sleeping or got killed).
+> [ 11.000000] (2:sleeper@node-1.acme.org) Done sleeping.
+> [ 11.000000] (2:sleeper@node-1.acme.org) Exiting now (done sleeping or got killed).
+> [ 12.000000] (3:sleeper@node-2.acme.org) Done sleeping.
+> [ 12.000000] (3:sleeper@node-2.acme.org) Exiting now (done sleeping or got killed).
+> [ 13.000000] (4:sleeper@node-3.acme.org) Done sleeping.
+> [ 13.000000] (4:sleeper@node-3.acme.org) Exiting now (done sleeping or got killed).
+> [ 14.000000] (5:sleeper@node-4.acme.org) Done sleeping.
+> [ 14.000000] (5:sleeper@node-4.acme.org) Exiting now (done sleeping or got killed).
+> [ 15.000000] (6:sleeper@node-5.acme.org) Done sleeping.
+> [ 15.000000] (6:sleeper@node-5.acme.org) Exiting now (done sleeping or got killed).
 > [ 15.000000] (0:@) Simulation time 15
 
 p Test1 Process with kill time
 
 $ $SG_TEST_EXENV ${bindir:=.}/start_kill_time/sk_time ${srcdir:=.}/examples/platforms/cluster.xml ${srcdir:=.}/examples/msg/start_kill_time/deployment_kill.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [ 15.000000] (0:@) Simulation time 15
 
 p Test1 Process with kill time
 
 $ $SG_TEST_EXENV ${bindir:=.}/start_kill_time/sk_time ${srcdir:=.}/examples/platforms/cluster.xml ${srcdir:=.}/examples/msg/start_kill_time/deployment_kill.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (1:master@node-0.acme.org) Hello!
-> [  0.000000] (2:slave@node-1.acme.org) Hello!
-> [  0.000000] (3:slave@node-2.acme.org) Hello!
-> [  0.000000] (4:slave@node-3.acme.org) Hello!
-> [  0.000000] (5:slave@node-4.acme.org) Hello!
-> [  0.000000] (6:slave@node-5.acme.org) Hello!
-> [ 10.000000] (1:master@node-0.acme.org) OK, goodbye now.
-> [ 10.000000] (0:@) Simulation time 10
+> [  0.000000] (1:sleeper@node-1.acme.org) Hello! I go to sleep.
+> [  0.000000] (2:sleeper@node-2.acme.org) Hello! I go to sleep.
+> [  0.000000] (3:sleeper@node-3.acme.org) Hello! I go to sleep.
+> [  6.000000] (1:sleeper@node-1.acme.org) Exiting now (done sleeping or got killed).
+> [  6.000000] (2:sleeper@node-2.acme.org) Exiting now (done sleeping or got killed).
+> [  6.000000] (3:sleeper@node-3.acme.org) Done sleeping.
+> [  6.000000] (3:sleeper@node-3.acme.org) Exiting now (done sleeping or got killed).
+> [  6.000000] (0:@) Simulation time 6
 
 p Test2 Process with start and kill times
 
 $ $SG_TEST_EXENV ${bindir:=.}/start_kill_time/sk_time ${srcdir:=.}/examples/platforms/cluster.xml ${srcdir:=.}/examples/msg/start_kill_time/deployment_start_kill.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 
 p Test2 Process with start and kill times
 
 $ $SG_TEST_EXENV ${bindir:=.}/start_kill_time/sk_time ${srcdir:=.}/examples/platforms/cluster.xml ${srcdir:=.}/examples/msg/start_kill_time/deployment_start_kill.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (1:master@node-0.acme.org) Hello!
-> [  1.000000] (2:slave@node-1.acme.org) Hello!
-> [  2.000000] (3:slave@node-2.acme.org) Hello!
-> [  3.000000] (4:slave@node-3.acme.org) Hello!
-> [  4.000000] (5:slave@node-4.acme.org) Hello!
-> [  5.000000] (6:slave@node-5.acme.org) Hello!
-> [ 10.000000] (1:master@node-0.acme.org) OK, goodbye now.
+> [  0.000000] (1:sleeper@node-0.acme.org) Hello! I go to sleep.
+> [  1.000000] (2:sleeper@node-1.acme.org) Hello! I go to sleep.
+> [  2.000000] (3:sleeper@node-2.acme.org) Hello! I go to sleep.
+> [  3.000000] (4:sleeper@node-3.acme.org) Hello! I go to sleep.
+> [  4.000000] (5:sleeper@node-4.acme.org) Hello! I go to sleep.
+> [  5.000000] (1:sleeper@node-0.acme.org) Exiting now (done sleeping or got killed).
+> [  5.000000] (6:sleeper@node-5.acme.org) Hello! I go to sleep.
+> [  6.000000] (2:sleeper@node-1.acme.org) Exiting now (done sleeping or got killed).
+> [  6.000000] (3:sleeper@node-2.acme.org) Done sleeping.
+> [  6.000000] (3:sleeper@node-2.acme.org) Exiting now (done sleeping or got killed).
+> [  7.000000] (4:sleeper@node-3.acme.org) Done sleeping.
+> [  7.000000] (4:sleeper@node-3.acme.org) Exiting now (done sleeping or got killed).
+> [  9.000000] (5:sleeper@node-4.acme.org) Exiting now (done sleeping or got killed).
+> [ 10.000000] (6:sleeper@node-5.acme.org) Exiting now (done sleeping or got killed).
 > [ 10.000000] (0:@) Simulation time 10
 > [ 10.000000] (0:@) Simulation time 10