-docu, style fixes
[oweals/gnunet.git] / src / testbed / test_testbed_underlay.c
index 6b66a5f7a27671256b7eb68b93a2bbd5d09093ff..15bdf3f63ce327c760d8188c4f1aa5f312d20067 100644 (file)
@@ -42,6 +42,21 @@ static int result;
 static struct GNUNET_TESTBED_Operation *op;
 
 
+/**
+ * Shutdown testcase
+ *
+ * @param cls NULL
+ * @param tc scheduler task context
+ */
+static void
+do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  if (NULL != op)
+    GNUNET_TESTBED_operation_done (op);
+  op = NULL;
+}
+
+
 /**
  * Callback to be called when an operation is completed
  *
@@ -52,15 +67,19 @@ static struct GNUNET_TESTBED_Operation *op;
  */
 static void
 overlay_connect_status (void *cls,
-                        struct GNUNET_TESTBED_Operation *op,
+                        struct GNUNET_TESTBED_Operation *op_,
                         const char *emsg)
 {
+  GNUNET_assert (op_ == op);
   GNUNET_TESTBED_operation_done (op);
   op = NULL;
   if (NULL == emsg)
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Peers 0 and 2 should not get connected\n");
   else
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peers 0 and 2 not connected: %s.  Success!\n", emsg);
     result = GNUNET_OK;
+  }
   GNUNET_SCHEDULER_shutdown ();
 }
 
@@ -90,15 +109,18 @@ test_master (void *cls,
   if (NULL == peers_)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failing test due to timeout\n");
+    GNUNET_SCHEDULER_shutdown ();
     return;
   }
   GNUNET_assert (NUM_PEERS == num_peers);
-  getchar();
   op = GNUNET_TESTBED_overlay_connect (NULL,
                                        &overlay_connect_status,
                                        NULL,
                                        peers_[0],
                                        peers_[2]);
+  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS,
+                                                               60),
+                                &do_shutdown, NULL);
 }