allow control connections to transport service
[oweals/gnunet.git] / src / testing / test_testing_topology.c
index 0c569880bf8835cb4be52391520cbf6d4d3fddee..4701d2c84e77a47d40fbc186bf91d0cff24f3063 100644 (file)
@@ -4,7 +4,7 @@
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
 #include "platform.h"
 #include "gnunet_testing_lib.h"
 #include "gnunet_core_service.h"
+#include "gnunet_os_lib.h"
 
-#define VERBOSE GNUNET_YES
+#define VERBOSE GNUNET_NO
+
+#define DELAY_FOR_LOGGING GNUNET_NO
 
 /**
  * How long until we fail the whole testcase?
@@ -167,6 +170,20 @@ void shutdown_callback (void *cls,
     }
 }
 
+#if DELAY_FOR_LOGGING
+static void gather_log_data ()
+{
+  char *peer_number;
+  char *connect_number;
+  pid_t mem_process;
+  GNUNET_asprintf(&peer_number, "%llu", num_peers);
+  GNUNET_asprintf(&connect_number, "%llu", expected_connections);
+  mem_process = GNUNET_OS_start_process (NULL, NULL, "./memsize.pl",
+                           "memsize.pl", "totals.txt", peer_number, connect_number, NULL);
+  GNUNET_OS_process_wait(mem_process);
+}
+
+#endif
 static void
 finish_testing ()
 {
@@ -177,6 +194,7 @@ finish_testing ()
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Called finish testing, stopping daemons.\n");
 #endif
+
   int count;
   count = 0;
   pos = test_messages;
@@ -425,14 +443,14 @@ init_notify_peer1 (void *cls,
    * Connect to the receiving peer
    */
   pos->peer2handle = GNUNET_CORE_connect (sched,
-                       pos->peer2->cfg,
-                       TIMEOUT,
-                       pos,
-                       &init_notify_peer2,
-                       NULL,
-                       NULL,
-                       NULL,
-                       GNUNET_YES, NULL, GNUNET_YES, handlers);
+                                         pos->peer2->cfg,
+                                         TIMEOUT,
+                                         pos,
+                                         &init_notify_peer2,
+                                         NULL,
+                                         NULL, 
+                                         NULL, NULL,
+                                         GNUNET_YES, NULL, GNUNET_YES, handlers);
 
 }
 
@@ -467,7 +485,7 @@ send_test_messages (void *cls, const struct GNUNET_SCHEDULER_TaskContext * tc)
                                           TIMEOUT,
                                           pos,
                                           &init_notify_peer1,
-                                          NULL,
+                                          NULL, NULL,
                                           NULL,
                                           NULL,
                                           GNUNET_NO, NULL, GNUNET_NO, no_handlers);
@@ -558,12 +576,22 @@ topology_callback (void *cls,
 #endif
       modnum = expected_messages / 4;
       dotnum = (expected_messages / 50) + 1;
-#if VERBOSE
-      fprintf(stdout, "Test message progress: [");
-#endif
       GNUNET_SCHEDULER_cancel (sched, die_task);
       die_task = GNUNET_SCHEDULER_NO_TASK;
+#if DELAY_FOR_LOGGING
+      fprintf(stdout, "Sending test messages in 10 seconds.\n");
+      GNUNET_SCHEDULER_add_delayed (sched,
+                                    GNUNET_TIME_relative_multiply
+                                    (GNUNET_TIME_UNIT_SECONDS, 10),
+                                    &send_test_messages, test_messages);
+      gather_log_data();
+#else
       GNUNET_SCHEDULER_add_now (sched, &send_test_messages, test_messages);
+#endif
+#if VERBOSE
+      fprintf(stdout, "Test message progress: [");
+#endif
+
     }
   else if (total_connections + failed_connections == expected_connections)
     {
@@ -629,8 +657,8 @@ create_topology ()
 #if VERBOSE
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                   "Topology set up, now starting peers!\n");
-#endif
       fprintf(stdout, "Daemon start progress [");
+#endif
       GNUNET_TESTING_daemons_continue_startup(pg);
     }
   else
@@ -696,10 +724,18 @@ peers_started_callback (void *cls,
        * within a reasonable amount of time */
       die_task = GNUNET_SCHEDULER_add_delayed (sched,
                                                GNUNET_TIME_relative_multiply
-                                               (GNUNET_TIME_UNIT_MINUTES, 5),
+                                               (GNUNET_TIME_UNIT_MINUTES, 8),
                                                &end_badly, "from peers_started_callback");
-
+#if DELAY_FOR_LOGGING
+      fprintf(stdout, "Connecting topology in 10 seconds\n");
+      gather_log_data();
+      GNUNET_SCHEDULER_add_delayed (sched,
+                                    GNUNET_TIME_relative_multiply
+                                    (GNUNET_TIME_UNIT_SECONDS, 10),
+                                    &connect_topology, NULL);
+#else
       connect_topology ();
+#endif
       ok = 0;
     }
 }
@@ -861,7 +897,9 @@ run (void *cls,
   peers_left = num_peers;
   modnum = num_peers / 4;
   dotnum = (num_peers / 50) + 1;
+#if VERBOSE
   fprintf (stdout, "Hostkey generation progress: \[");
+#endif
   /* Set up a task to end testing if peer start fails */
   die_task = GNUNET_SCHEDULER_add_delayed (sched,
                                            GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, SECONDS_PER_PEER_START * num_peers),