Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
change argument testing method (100% coverage)
[simgrid.git] / examples / simdag / scheduling / minmin_test.c
index edf703a..130baf2 100644 (file)
@@ -107,10 +107,10 @@ static double finish_on_at(SD_task_t task, SD_workstation_t workstation)
       if (SD_task_get_kind(parent) == SD_TASK_COMM_E2E) {
         grand_parents = SD_task_get_parents(parent);
 
-        if (xbt_dynar_length(grand_parents) > 1) {
-          XBT_ERROR("Warning: transfer %s has 2 parents",
-                 SD_task_get_name(parent));
-        }
+        xbt_assert(xbt_dynar_length(grand_parents) <2, 
+                  "Error: transfer %s has 2 parents", 
+                  SD_task_get_name(parent));
+        
         xbt_dynar_get_cpy(grand_parents, 0, &grand_parent);
 
         grand_parent_workstation_list =
@@ -157,7 +157,7 @@ static SD_workstation_t SD_task_get_best_workstation(SD_task_t task)
   int i;
   double EFT, min_EFT = -1.0;
   const SD_workstation_t *workstations = SD_workstation_get_list();
-  int nworkstations = SD_workstation_get_number();
+  int nworkstations = SD_workstation_get_count();
   SD_workstation_t best_workstation;
 
   best_workstation = workstations[0];
@@ -182,7 +182,7 @@ static void output_xml(FILE * out, xbt_dynar_t dax)
 {
   unsigned int i, j, k;
   int current_nworkstations;
-  const int nworkstations = SD_workstation_get_number();
+  const int nworkstations = SD_workstation_get_count();
   const SD_workstation_t *workstations = SD_workstation_get_list();
   SD_task_t task;
   SD_workstation_t *list;
@@ -254,37 +254,29 @@ int main(int argc, char **argv)
   SD_workstation_t workstation, selected_workstation = NULL;
   int total_nworkstations = 0;
   const SD_workstation_t *workstations = NULL;
-  xbt_dynar_t dax, changed;
+  xbt_dynar_t dax;
   FILE *out = NULL;
 
   /* initialization of SD */
   SD_init(&argc, argv);
 
   /* Check our arguments */
-  if (argc < 3) {
-    XBT_INFO("Usage: %s platform_file dax_file [jedule_file]", argv[0]);
-    XBT_INFO
-        ("example: %s simulacrum_7_hosts.xml Montage_25.xml Montage_25.jed",
-         argv[0]);
-    exit(1);
-  }
-  char *tracefilename;
-  if (argc == 3) {
-    char *last = strrchr(argv[2], '.');
-
-    tracefilename = bprintf("%.*s.jed",
-                            (int) (last ==
-                                   NULL ? strlen(argv[2]) : last -
-                                   argv[2]), argv[2]);
-  } else {
+  xbt_assert(argc > 2, "Usage: %s platform_file dax_file [jedule_file]\n"
+            "\tExample: %s simulacrum_7_hosts.xml Montage_25.xml Montage_25.jed", 
+            argv[0], argv[0]);
+
+  char *last = strrchr(argv[2], '.');
+  char * tracefilename = bprintf("%.*s.jed",(int) (last == NULL ? 
+                                                  strlen(argv[2]) : 
+                                                  last - argv[2]), argv[2]);  
+  if (argc == 4)
     tracefilename = xbt_strdup(argv[3]);
-  }
 
   /* creation of the environment */
   SD_create_environment(argv[1]);
 
   /*  Allocating the workstation attribute */
-  total_nworkstations = SD_workstation_get_number();
+  total_nworkstations = SD_workstation_get_count();
   workstations = SD_workstation_get_list();
 
   for (cursor = 0; cursor < total_nworkstations; cursor++)
@@ -303,12 +295,11 @@ int main(int argc, char **argv)
   workstation = SD_task_get_best_workstation(task);
   SD_task_schedulel(task, 1, workstation);
 
-  while (!xbt_dynar_is_empty((changed = SD_simulate(-1.0)))) {
+  while (!xbt_dynar_is_empty(SD_simulate(-1.0))) {
     /* Get the set of ready tasks */
     ready_tasks = get_ready_tasks(dax);
     if (xbt_dynar_is_empty(ready_tasks)) {
       xbt_dynar_free_container(&ready_tasks);
-      xbt_dynar_free_container(&changed);
       /* there is no ready task, let advance the simulation */
       continue;
     }
@@ -362,7 +353,6 @@ int main(int argc, char **argv)
     xbt_dynar_free_container(&ready_tasks);
     /* reset the min_finish_time for the next set of ready tasks */
     min_finish_time = -1.;
-    xbt_dynar_free_container(&changed);
   }
 
   XBT_INFO("Simulation Time: %f", SD_get_clock());
@@ -383,7 +373,6 @@ int main(int argc, char **argv)
 
 
   xbt_dynar_free_container(&ready_tasks);
-  xbt_dynar_free_container(&changed);
 
   xbt_dynar_foreach(dax, cursor, task) {
     SD_task_destroy(task);