topology option support for GNUNET_TESTBED_run() via configuration
[oweals/gnunet.git] / src / testbed / test_testbed_api_hosts.c
index d870ef4c49dd7b51d6249bfc3c0fa34fc24e67d3..12f0b61c742b9754d94e0c112ecb20dd57114cc0 100644 (file)
  */
 static struct GNUNET_TESTBED_Host *host;
 
+/**
+ * An array of hosts which are loaded from a file
+ */
+static struct GNUNET_TESTBED_Host **hosts;
+
+/**
+ * Number of hosts in the above list
+ */
+static unsigned int num_hosts;
+
 /**
  * Global test status
  */
@@ -58,6 +68,12 @@ static void
 do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   GNUNET_TESTBED_host_destroy (host);
+  while (0 != num_hosts)
+  {
+    GNUNET_TESTBED_host_destroy (hosts[num_hosts - 1]);
+    num_hosts--;
+  }
+  GNUNET_free (hosts);
 }
 
 
@@ -81,6 +97,12 @@ run (void *cls, char *const *args, const char *cfgfile,
   GNUNET_assert (NULL != host);
   GNUNET_assert (0 == GNUNET_TESTBED_host_get_id_ (host));
   GNUNET_assert (host == GNUNET_TESTBED_host_lookup_by_id_ (0));
+  hosts = NULL;
+  num_hosts =  GNUNET_TESTBED_hosts_load_from_file ("sample_hosts.txt",
+                                                    &hosts);
+  GNUNET_assert (15 == num_hosts);
+  GNUNET_assert (NULL != hosts);
+  status = GNUNET_YES;
   shutdown_id =
       GNUNET_SCHEDULER_add_delayed (TIME_REL_SECS (2), &do_shutdown, NULL);
 }
@@ -97,7 +119,7 @@ main (int argc, char **argv)
     GNUNET_GETOPT_OPTION_END
   };
 
-  status = GNUNET_YES;
+  status = GNUNET_SYSERR;
   if (GNUNET_OK !=
       GNUNET_PROGRAM_run ((sizeof (argv2) / sizeof (char *)) - 1, argv2,
                           "test_testbed_api_hosts", "nohelp", options, &run,
@@ -105,3 +127,5 @@ main (int argc, char **argv)
     return 1;
   return (GNUNET_OK == status) ? 0 : 1;
 }
+
+/* end of test_testbed_api_hosts.c */