-updating dependency diagram
[oweals/gnunet.git] / src / testing_old / testing.c
index 1b164aa0fe4bf72c6b1180c8082fb43016b0e791..8084a8d59ef3d01c6325920fe06de6445e600f0c 100644 (file)
  */
 #define EMPTY_HACK GNUNET_YES
 
+
+/**
+ * After how long do we retry a service connection that was
+ * unavailable?  Used in cases where an exponential back-off
+ * seems inappropriate.
+ */
+#define GNUNET_CONSTANTS_SERVICE_RETRY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 500)
+
+/**
+ * How long do we wait after a FORK+EXEC before testing for the
+ * resulting process to be up (port open, waitpid, etc.)?
+ */
+#define GNUNET_CONSTANTS_EXEC_WAIT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 200)
+
 /**
  * How long do we wait after starting gnunet-service-arm
  * for the core service to be alive?
@@ -241,7 +255,7 @@ start_fsm (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
       if (NULL == d->hostname)
       {
         GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                    "Starting `%s', with command `%s %s %s %s'.\n",
+                    "Starting local `%s', with command `%s %s %s %s'.\n",
                     "gnunet-peerinfo", "gnunet-peerinfo", "-c", d->cfgfile,
                     "-sq");
         d->proc_arm_peerinfo =
@@ -258,7 +272,7 @@ start_fsm (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
           dst = GNUNET_strdup (d->hostname);
 
         GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                    "Starting `%s', with command `%s %s %s %s %s %s'.\n",
+                    "Starting remove `%s', with command `%s %s %s %s %s %s'.\n",
                     "gnunet-peerinfo", "ssh", dst, "gnunet-peerinfo", "-c",
                     d->cfgfile, "-sq");
         if (d->ssh_port_str == NULL)
@@ -410,16 +424,13 @@ start_fsm (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
     if (NULL == d->hostname)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                  "Starting `%s', with command `%s %s %s %s'.\n",
+                  "Starting local `%s', with command `%s %s %s %s'.\n",
                   "gnunet-arm", "gnunet-arm", "-c", d->cfgfile, 
                   "-s");
       d->proc_arm_start =
          GNUNET_OS_start_process (GNUNET_YES, GNUNET_OS_INHERIT_STD_OUT_AND_ERR, NULL, NULL, "gnunet-arm", "gnunet-arm", "-c",
                                    d->cfgfile,
-                                   "-s", "-q", "-T",
-                                   GNUNET_TIME_relative_to_string
-                                   (GNUNET_TIME_absolute_get_remaining
-                                    (d->max_timeout)), NULL);
+                                   "-s", "-q", "-T", "5 s", NULL);
     }
     else
     {
@@ -429,7 +440,7 @@ start_fsm (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
         dst = GNUNET_strdup (d->hostname);
 
       GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                  "Starting `%s', with command `%s %s %s %s %s %s %s'.\n",
+                  "Starting remote `%s', with command `%s %s %s %s %s %s %s'.\n",
                   "gnunet-arm", "ssh", dst, "gnunet-arm", "-c", d->cfgfile,
                   "-s", "-q");
       if (d->ssh_port_str == NULL)
@@ -438,9 +449,9 @@ start_fsm (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
                                            "-q",
                                            dst, "gnunet-arm",
                                            "-c", d->cfgfile, "-s", "-q", "-T",
-                                           GNUNET_TIME_relative_to_string
+                                           GNUNET_STRINGS_relative_time_to_string
                                            (GNUNET_TIME_absolute_get_remaining
-                                            (d->max_timeout)), NULL);
+                                            (d->max_timeout), GNUNET_NO), NULL);
       }
       else
       {
@@ -451,9 +462,9 @@ start_fsm (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
                                      "-q",
                                      dst, "gnunet-arm",
                                      "-c", d->cfgfile, "-s", "-q", "-T",
-                                     GNUNET_TIME_relative_to_string
+                                     GNUNET_STRINGS_relative_time_to_string
                                      (GNUNET_TIME_absolute_get_remaining
-                                      (d->max_timeout)), NULL);
+                                      (d->max_timeout), GNUNET_NO), NULL);
       }
       GNUNET_free (dst);
     }
@@ -897,7 +908,7 @@ GNUNET_TESTING_daemon_start_stopped_service (struct GNUNET_TESTING_Daemon *d,
                                        arg, "gnunet-arm",
                                        "-c", d->cfgfile, "-i", service, "-q",
                                        "-T",
-                                       GNUNET_TIME_relative_to_string (timeout),
+                                                    GNUNET_STRINGS_relative_time_to_string (timeout, GNUNET_NO),
                                        NULL);
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Starting gnunet-arm with command ssh %s gnunet-arm -c %s -i %s -q\n",
@@ -910,8 +921,7 @@ GNUNET_TESTING_daemon_start_stopped_service (struct GNUNET_TESTING_Daemon *d,
                 "Starting gnunet-arm with config `%s' locally.\n", d->cfgfile);
     d->proc_arm_srv_start = GNUNET_OS_start_process (GNUNET_YES, GNUNET_OS_INHERIT_STD_OUT_AND_ERR, NULL, NULL, "gnunet-arm", "gnunet-arm",
                                        "-c", d->cfgfile, "-i", service, "-q",
-                                       "-T",
-                                       GNUNET_TIME_relative_to_string (timeout),
+                                       "-T", "5 s",
                                        NULL);
   }
 
@@ -965,12 +975,12 @@ GNUNET_TESTING_daemon_start_service (struct GNUNET_TESTING_Daemon *d,
                                        arg, "gnunet-arm",
                                        "-c", d->cfgfile, "-i", service, "-q",
                                        "-T",
-                                       GNUNET_TIME_relative_to_string (timeout),
+                                                    GNUNET_STRINGS_relative_time_to_string (timeout, GNUNET_NO),
                                        NULL);
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Starting gnunet-arm with command ssh %s gnunet-arm -c %s -i %s -q -T %s\n",
                 arg, "gnunet-arm", d->cfgfile, service,
-                GNUNET_TIME_relative_to_string (timeout));
+                GNUNET_STRINGS_relative_time_to_string (timeout, GNUNET_NO));
     GNUNET_free (arg);
   }
   else
@@ -979,13 +989,10 @@ GNUNET_TESTING_daemon_start_service (struct GNUNET_TESTING_Daemon *d,
                 "Starting gnunet-arm with config `%s' locally.\n", d->cfgfile);
     d->proc_arm_srv_start = GNUNET_OS_start_process (GNUNET_YES, GNUNET_OS_INHERIT_STD_OUT_AND_ERR, NULL, NULL, "gnunet-arm", "gnunet-arm",
                                        "-c", d->cfgfile, "-i", service, "-q",
-                                       "-T",
-                                       GNUNET_TIME_relative_to_string (timeout),
-                                       NULL);
+                                       "-T", "5 s", NULL);
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Starting gnunet-arm with command %s -c %s -i %s -q -T %s\n",
-                "gnunet-arm", d->cfgfile, service,
-                GNUNET_TIME_relative_to_string (timeout));
+                "Starting gnunet-arm with command %s -c %s -i %s -q -T \"5 s\"\n",
+                "gnunet-arm", d->cfgfile, service);
   }
 
   d->max_timeout = GNUNET_TIME_relative_to_absolute (timeout);
@@ -1382,7 +1389,7 @@ GNUNET_TESTING_daemon_stop_service (struct GNUNET_TESTING_Daemon *d,
                                        arg, "gnunet-arm",
                                        "-c", d->cfgfile, "-k", service, "-q",
                                        "-T",
-                                       GNUNET_TIME_relative_to_string (timeout),
+                                                   GNUNET_STRINGS_relative_time_to_string (timeout, GNUNET_NO),
                                        NULL);
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Stopping gnunet-arm with command ssh %s gnunet-arm -c %s -k %s -q\n",
@@ -1396,7 +1403,7 @@ GNUNET_TESTING_daemon_stop_service (struct GNUNET_TESTING_Daemon *d,
     d->proc_arm_srv_stop = GNUNET_OS_start_process (GNUNET_YES, GNUNET_OS_INHERIT_STD_OUT_AND_ERR, NULL, NULL, "gnunet-arm", "gnunet-arm",
                                        "-c", d->cfgfile, "-k", service, "-q",
                                        "-T",
-                                       GNUNET_TIME_relative_to_string (timeout),
+                                                   GNUNET_STRINGS_relative_time_to_string (timeout, GNUNET_NO),
                                        NULL);
   }
 
@@ -1550,7 +1557,7 @@ GNUNET_TESTING_daemon_stop (struct GNUNET_TESTING_Daemon *d,
                                        "-q",
                                        arg, "gnunet-arm",
                                        "-c", d->cfgfile, "-e", "-q", "-T",
-                                       GNUNET_TIME_relative_to_string (timeout),
+                                               GNUNET_STRINGS_relative_time_to_string (timeout, GNUNET_NO),
                                        del_arg, NULL);
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Stopping gnunet-arm with command ssh %s gnunet-arm -c %s -e -q %s\n",
@@ -1564,7 +1571,7 @@ GNUNET_TESTING_daemon_stop (struct GNUNET_TESTING_Daemon *d,
                 "Stopping gnunet-arm with config `%s' locally.\n", d->cfgfile);
     d->proc_arm_stop = GNUNET_OS_start_process (GNUNET_NO, GNUNET_OS_INHERIT_STD_OUT_AND_ERR, NULL, NULL, "gnunet-arm", "gnunet-arm",
                                        "-c", d->cfgfile, "-e", "-q", "-T",
-                                       GNUNET_TIME_relative_to_string (timeout),
+                                               GNUNET_STRINGS_relative_time_to_string (timeout, GNUNET_NO),
                                        del_arg, NULL);
     GNUNET_assert (NULL != d->proc_arm_stop);
   }
@@ -1853,7 +1860,7 @@ send_hello (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
                 "Sending connect request to TRANSPORT of %s for peer %s\n",
                 GNUNET_i2s (&ctx->d1->id),
                 GNUNET_h2s (&ctx->d2->id.hashPubKey));
-    GNUNET_TRANSPORT_try_connect (ctx->d1th, &ctx->d2->id);
+    GNUNET_TRANSPORT_try_connect (ctx->d1th, &ctx->d2->id, NULL, NULL); /*FIXME TRY_CONNECT change */
     ctx->timeout_hello =
         GNUNET_TIME_relative_add (ctx->timeout_hello,
                                   GNUNET_TIME_relative_multiply
@@ -1880,7 +1887,7 @@ core_init_notify (void *cls, struct GNUNET_CORE_Handle *server,
 
   if (connect_ctx->send_hello == GNUNET_NO)
   {
-    GNUNET_TRANSPORT_try_connect (connect_ctx->d1th, &connect_ctx->d2->id);
+    GNUNET_TRANSPORT_try_connect (connect_ctx->d1th, &connect_ctx->d2->id, NULL, NULL); /*FIXME TRY_CONNECT change */
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Sending connect request to TRANSPORT of %s for peer %s\n",
                 connect_ctx->d1->shortname, connect_ctx->d2->shortname);
@@ -1961,11 +1968,11 @@ reattempt_daemons_connect (void *cls,
     if (NULL == ctx->d2->th)
     {
       GNUNET_CORE_disconnect (ctx->d1core);
-      GNUNET_free (ctx);
       if (NULL != ctx->cb)
         ctx->cb (ctx->cb_cls, &ctx->d1->id, &ctx->d2->id, 0, ctx->d1->cfg,
                  ctx->d2->cfg, ctx->d1, ctx->d2,
                  _("Failed to connect to transport service!\n"));
+      GNUNET_free (ctx);
       return;
     }
     ctx->d2->ghh =
@@ -1991,11 +1998,11 @@ reattempt_daemons_connect (void *cls,
     if (ctx->d1th == NULL)
     {
       GNUNET_CORE_disconnect (ctx->d1core);
-      GNUNET_free (ctx);
       if (NULL != ctx->cb)
         ctx->cb (ctx->cb_cls, &ctx->d1->id, &ctx->d2->id, 0, ctx->d1->cfg,
                  ctx->d2->cfg, ctx->d1, ctx->d2,
                  _("Failed to connect to transport service!\n"));
+      GNUNET_free (ctx);
       return;
     }
     GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == ctx->hello_send_task);
@@ -2005,7 +2012,7 @@ reattempt_daemons_connect (void *cls,
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Trying to reconnect %s to %s\n",
                 ctx->d1->shortname, ctx->d2->shortname);
-    GNUNET_TRANSPORT_try_connect (ctx->d1th, &ctx->d2->id);
+    GNUNET_TRANSPORT_try_connect (ctx->d1th, &ctx->d2->id, NULL, NULL); /*FIXME TRY_CONNECT change */
   }
   ctx->timeout_task =
       GNUNET_SCHEDULER_add_delayed (ctx->relative_timeout,