Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
updating msg prop tests
authorquasar <quasar@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 5 Nov 2007 10:20:23 +0000 (10:20 +0000)
committerquasar <quasar@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 5 Nov 2007 10:20:23 +0000 (10:20 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@4962 48e7efb5-ca39-0410-a469-dd3cf9ba447f

examples/msg/properties/deployment_properties.xml
examples/msg/properties/msg_prop.c
examples/msg/properties/msg_prop.tesh

index b3dba67..65e37b3 100644 (file)
@@ -2,14 +2,14 @@
 <!DOCTYPE platform SYSTEM "surfxml.dtd">
 <platform version="2">
   <!-- The master process (with some arguments) -->
-  <process host="Jacquelin" function="master">
+  <process host="C1-01" function="master">
      <argument value="1"/>       <!-- Number of tasks -->
      <argument value="50000000"/>  <!-- Computation size of tasks -->
      <argument value="1000000"/>   <!-- Communication size of tasks -->
-     <argument value="Boivin"/>  <!-- First slave -->
+     <argument value="C1-00"/>  <!-- First slave -->
   </process>
   <!-- The slave process (with no argument) -->
-  <process host="Boivin" function="slave">
+  <process host="C1-00" function="slave">
     <prop id="SomeProp" value="SomeValue"/>
   </process>
 </platform>
index 3c6c176..960aced 100644 (file)
@@ -1,6 +1,6 @@
-/*     $Id: msg_test.c,v 1.24 2007/03/16 13:18:24 cherierm Exp $        */
+/*     $Id$     */
 
-/* Copyright (c) 2002,2003,2004 Arnaud Legrand. All rights reserved.        */
+/* Copyright (c) 2006. 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. */
@@ -15,7 +15,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,"Messages specific for this msg example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(test,"Property test");
 
 int master(int argc, char *argv[]);
 int slave(int argc, char *argv[]);
@@ -52,7 +52,7 @@ int master(int argc, char *argv[])
   {                  /*  Task creation */
     char sprintf_buffer[64];
 
-    todo = calloc(number_of_tasks, sizeof(m_task_t));
+    todo = xbt_new(m_task_t, sizeof(m_task_t) * number_of_tasks);
 
     for (i = 0; i < number_of_tasks; i++) {
       sprintf(sprintf_buffer, "Task_%d", i);
@@ -62,10 +62,12 @@ int master(int argc, char *argv[])
 
   {                  /* Process organisation */
     slaves_count = argc - 4;
-    slaves = calloc(slaves_count, sizeof(m_host_t));
+    slaves = xbt_new(m_host_t, sizeof(m_host_t) * slaves_count);
     xbt_dict_t props;    
-    for (i = 4; i < argc; i++) {
+    for (i = 4; i < argc; i++) {     
       slaves[i-4] = MSG_get_host_by_name(argv[i]);
+      xbt_assert1(slaves[i-4]!=NULL, "Unknown host %s. Stopping Now! ", argv[i]);
+
       /* Get the property list of the host */
       props = MSG_host_get_properties(slaves[i-4]);
       xbt_dict_cursor_t cursor=NULL;
@@ -77,24 +79,36 @@ int master(int argc, char *argv[])
       }
 
      /* Try to get a property that does not exist */
-     char *noexist=xbt_strdup("Unknown");
-     const char *value = MSG_host_get_property_value(slaves[i-4],noexist);
+     char *noexist="Unknown";
+     const char*value = MSG_host_get_property_value(slaves[i-4],noexist);
      if ( value == NULL) 
        INFO2("Property: %s for host %s is undefined", noexist, argv[i]);
      else
        INFO3("Property: %s for host %s has value: %s", noexist, argv[i], value);
 
-     if(slaves[i-4]==NULL) {
-        INFO1("Unknown host %s. Stopping Now! ", argv[i]);
-        abort();
-       }
-     }
+      /* Modify an existing property test. First check it exists */\
+      INFO0("Trying to modify a host property");
+      char *exist="Hdd";
+      value = MSG_host_get_property_value(slaves[i-4],exist);
+      if ( value == NULL) 
+        INFO1("\tProperty: %s is undefined", exist);
+      else {
+        INFO2("\tProperty: %s old value: %s", exist, value);
+        xbt_dict_set(props, exist, strdup("250"), free);  
+      }
+      /* Test if we have changed the value */
+      value = MSG_host_get_property_value(slaves[i-4],exist);
+      if ( value == NULL) 
+        INFO1("\tProperty: %s is undefined", exist);
+      else
+        INFO2("\tProperty: %s new value: %s", exist, value);
+    }
   }
 
   for (i = 0; i < number_of_tasks; i++) {
     if(MSG_host_self()==slaves[i % slaves_count]) {
     }
-
     MSG_task_put(todo[i], slaves[i % slaves_count],
                  PORT_22);
   }
@@ -133,7 +147,7 @@ int slave(int argc, char *argv[])
       }
 
       /* Try to get a property that does not exist */
-      char *noexist=xbt_strdup("UnknownProcessProp");
+      char *noexist="UnknownProcessProp";
       const char *value = MSG_process_get_property_value(MSG_process_self(),noexist);
       if ( value == NULL) 
         INFO2("Property: %s for process %s is undefined", noexist, MSG_process_get_name(MSG_process_self()));
@@ -143,8 +157,7 @@ int slave(int argc, char *argv[])
       MSG_task_execute(task);
       MSG_task_destroy(task);
     } else {
-      INFO0("Hey ?! What's up ? ");
-      xbt_assert0(0,"Unexpected behavior");
+       xbt_die("Hey ?! What's up ?");
     }
   }
   return 0;
@@ -163,10 +176,7 @@ int forwarder(int argc, char *argv[])
     
     for (i = 1; i < argc; i++) {
       slaves[i-1] = MSG_get_host_by_name(argv[i]);
-      if(slaves[i-1]==NULL) {
-       INFO1("Unknown host %s. Stopping Now! ", argv[i]);
-       abort();
-      }
+      xbt_assert1(slaves[i-1]!=NULL, "Unknown host %s. Stopping Now! ", argv[i]);
     }
   }
 
@@ -189,9 +199,8 @@ int forwarder(int argc, char *argv[])
                   PORT_22);
       i++;
     } else {
-      INFO0("Hey ?! What's up ? ");
-      xbt_assert0(0,"Unexpected behavior");
-    }
+       xbt_die("Hey ?! What's up ?");    
+      }
   }
   return 0;
 } /* end_of_forwarder */
index cb0106c..7a86f5b 100644 (file)
@@ -2,12 +2,15 @@
 
 p Testing a MSG application with properties in the XML for Hosts, Links and Processes
 
-$ $SG_TEST_EXENV properties/msg_prop$EXEEXT ${srcdir:=.}/properties/deployment_platform.xml ${srcdir:=.}/properties/deployment_properties.xml 
-> [Jacquelin:master:(1) 0.000000] [msg_test/INFO] Property: mem for host: Boivin has value: 654321
-> [Jacquelin:master:(1) 0.000000] [msg_test/INFO] Property: disk for host: Boivin has value: 123456
-> [Jacquelin:master:(1) 0.000000] [msg_test/INFO] Property: Unknown for host Boivin is undefined
-> [Boivin:slave:(2) 0.303833] [msg_test/INFO] Received "Task_0" 
-> [Boivin:slave:(2) 0.303833] [msg_test/INFO] Property: SomeProp for process slave has value: SomeValue
-> [Boivin:slave:(2) 0.303833] [msg_test/INFO] Property: UnknownProcessProp for process slave is undefined
-> [Boivin:slave:(2) 0.814139] [msg_test/INFO] Received "finalize" 
-> [0.814139] [msg_test/INFO] Simulation time 0.814139
+$ $SG_TEST_EXENV properties/msg_prop$EXEEXT ${srcdir:=.}/../platforms/prop.xml ${srcdir:=.}/properties/deployment_properties.xml 
+> [C1-01:master:(1) 0.000000] [test/INFO] Property: Hdd for host: C1-00 has value: 120
+> [C1-01:master:(1) 0.000000] [test/INFO] Property: Unknown for host C1-00 is undefined
+> [C1-01:master:(1) 0.000000] [test/INFO] Trying to modify a host property
+> [C1-01:master:(1) 0.000000] [test/INFO]      Property: Hdd old value: 120
+> [C1-01:master:(1) 0.000000] [test/INFO]      Property: Hdd new value: 250
+> [C1-00:slave:(2) 0.020200] [test/INFO] Received "Task_0" 
+> [C1-00:slave:(2) 0.020200] [test/INFO] Property: SomeProp for process slave has value: SomeValue
+> [C1-00:slave:(2) 0.020200] [test/INFO] Property: UnknownProcessProp for process slave is undefined
+> [C1-00:slave:(2) 0.070400] [test/INFO] Received "finalize" 
+> [0.070400] [test/INFO] Simulation time 0.0704
+