fixes
[oweals/gnunet.git] / src / testbed / test_testbed_api_hosts.c
index 54e2461c7eb642fd7a8dc7ea7d93bbbac4590788..12f0b61c742b9754d94e0c112ecb20dd57114cc0 100644 (file)
 static struct GNUNET_TESTBED_Host *host;
 
 /**
- * The host helper handle
+ * An array of hosts which are loaded from a file
  */
-static struct GNUNET_TESTBED_HelperHandle *helper_handle;
+static struct GNUNET_TESTBED_Host **hosts;
+
+/**
+ * Number of hosts in the above list
+ */
+static unsigned int num_hosts;
 
 /**
  * Global test status
@@ -62,28 +67,18 @@ GNUNET_SCHEDULER_TaskIdentifier shutdown_id;
 static void
 do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  GNUNET_TESTBED_host_stop_ (helper_handle);
   GNUNET_TESTBED_host_destroy (host);
+  while (0 != num_hosts)
+  {
+    GNUNET_TESTBED_host_destroy (hosts[num_hosts - 1]);
+    num_hosts--;
+  }
+  GNUNET_free (hosts);
 }
 
 
 /**
- * Callback that will be called when the helper process dies. This is not called
- * when the helper process is stoped using GNUNET_HELPER_stop()
- *
- * @param cls the closure from GNUNET_HELPER_start()
- */
-static void 
-exp_cb (void *cls)
-{
-  status = GNUNET_SYSERR;
-  GNUNET_SCHEDULER_cancel (shutdown_id);
-  GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
-}
-
-
-/**
- * Main run function. 
+ * Main run function.
  *
  * @param cls NULL
  * @param args arguments passed to GNUNET_PROGRAM_run
@@ -102,28 +97,35 @@ 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));
-  helper_handle = GNUNET_TESTBED_host_run_ ("127.0.0.1", host, cfg, &exp_cb, NULL);
-  GNUNET_assert (NULL != helper_handle);
-  shutdown_id = 
-    GNUNET_SCHEDULER_add_delayed (TIME_REL_SECS (2), &do_shutdown, NULL);
+  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);
 }
 
 
-int main (int argc, char **argv)
+int
+main (int argc, char **argv)
 {
   char *const argv2[] = { "test_testbed_api_hosts",
-                          "-c", "test_testbed_api.conf",
-                          NULL
+    "-c", "test_testbed_api.conf",
+    NULL
   };
   struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
 
-  status = GNUNET_YES;
-  if (GNUNET_OK != 
+  status = GNUNET_SYSERR;
+  if (GNUNET_OK !=
       GNUNET_PROGRAM_run ((sizeof (argv2) / sizeof (char *)) - 1, argv2,
-                         "test_testbed_api_hosts", "nohelp", 
-                         options, &run, NULL))
+                          "test_testbed_api_hosts", "nohelp", options, &run,
+                          NULL))
     return 1;
   return (GNUNET_OK == status) ? 0 : 1;
 }
+
+/* end of test_testbed_api_hosts.c */