removed malloc from curl_logger
[oweals/gnunet.git] / src / transport / test_transport_api_reliability.c
index 03bef3b4e54eceada9a74a3541435187e75a1e39..01b58f4fe80da210bed9dbbfbf8ea177fd4a1286 100644 (file)
  * 'MAX_PENDING' in 'gnunet-service-transport.c', otherwise
  * messages may be dropped even for a reliable transport.
  */
-#define TOTAL_MSGS (60000 * 2)
+#define TOTAL_MSGS (10000)
 
 /**
  * How long until we give up on transmitting the message?
  */
-#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 150)
+#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1500)
 
 #define MTYPE 12345
 
@@ -98,6 +98,11 @@ static char * cert_file_p1;
 static char * key_file_p2;
 static char * cert_file_p2;
 
+static int msg_scheduled;
+static int msg_sent;
+static int msg_recv_expected;
+static int msg_recv;
+
 
 #if VERBOSE
 #define OKPP do { ok++; fprintf (stderr, "Now at stage %u at %s:%u\n", ok, __FILE__, __LINE__); } while (0)
@@ -148,6 +153,8 @@ static void
 end_badly (void *cls,
           const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                 "Reliability failed: \nLast message sent %u \nNext message scheduled %u\nLast message received %u\nMessage expected %u \n ", msg_sent, msg_scheduled, msg_recv, msg_recv_expected);
   GNUNET_break (0);
   GNUNET_TRANSPORT_disconnect (p1.th);
   GNUNET_TRANSPORT_disconnect (p2.th);
@@ -190,6 +197,8 @@ notify_receive (void *cls,
   s = get_size (n);
   if (MTYPE != ntohs (message->type))
     return;
+  msg_recv_expected = n;
+  msg_recv = ntohl(hdr->num);
   if (ntohs (message->size) != s)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -273,6 +282,7 @@ notify_ready (void *cls, size_t size, void *buf)
       hdr.header.size = htons (s);
       hdr.header.type = htons (MTYPE);
       hdr.num = htonl (n);
+      msg_sent = n;
       memcpy (&cbuf[ret], &hdr, sizeof (struct TestMessage));
       ret += sizeof (struct TestMessage);
       memset (&cbuf[ret], n, s - sizeof (struct TestMessage));
@@ -293,11 +303,14 @@ notify_ready (void *cls, size_t size, void *buf)
     }
   while (size - ret >= s);
   if (n < TOTAL_MSGS)
-    GNUNET_TRANSPORT_notify_transmit_ready (p1.th,
-                                           &p2.id,
+  {
+    GNUNET_TRANSPORT_notify_transmit_ready (p2.th,
+                                           &p1.id,
                                            s, 0, TIMEOUT,
                                            &notify_ready,
                                            NULL);
+    msg_scheduled = n;
+  }
   if (n % 5000 == 0)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -339,8 +352,8 @@ notify_connect (void *cls,
 
   if (connected == 2)
     {
-      GNUNET_TRANSPORT_notify_transmit_ready (p1.th,
-                                              &p2.id,
+      GNUNET_TRANSPORT_notify_transmit_ready (p2.th,
+                                              &p1.id,
                                               get_size (0), 0, TIMEOUT,
                                               &notify_ready,
                                               NULL);
@@ -386,8 +399,8 @@ setup_peer (struct PeerContext *p, const char *cfgname)
                  if (GNUNET_CONFIGURATION_have_value (p->cfg,
                                                                                           "transport-https", "KEY_FILE"))
                                GNUNET_CONFIGURATION_get_value_string (p->cfg, "transport-https", "KEY_FILE", &key_file_p1);
-                 else
-                         GNUNET_asprintf(&key_file_p1,"https.key");
+                 if (key_file_p1 == NULL)
+                         GNUNET_asprintf(&key_file_p1,"https_p1.key");
                  if (0 == stat (key_file_p1, &sbuf ))
                  {
                          if (0 == remove(key_file_p1))
@@ -397,8 +410,8 @@ setup_peer (struct PeerContext *p, const char *cfgname)
                  }
                  if (GNUNET_CONFIGURATION_have_value (p->cfg,"transport-https", "CERT_FILE"))
                          GNUNET_CONFIGURATION_get_value_string (p->cfg, "transport-https", "CERT_FILE", &cert_file_p1);
-                 else
-                         GNUNET_asprintf(&cert_file_p1,"https.cert");
+                 if (cert_file_p1 == NULL)
+                         GNUNET_asprintf(&cert_file_p1,"https_p1.cert");
                  if (0 == stat (cert_file_p1, &sbuf ))
                  {
                          if (0 == remove(cert_file_p1))
@@ -412,8 +425,8 @@ setup_peer (struct PeerContext *p, const char *cfgname)
                  if (GNUNET_CONFIGURATION_have_value (p->cfg,
                                                                                           "transport-https", "KEY_FILE"))
                                GNUNET_CONFIGURATION_get_value_string (p->cfg, "transport-https", "KEY_FILE", &key_file_p2);
-                 else
-                         GNUNET_asprintf(&key_file_p2,"https.key");
+                 if (key_file_p2 == NULL)
+                         GNUNET_asprintf(&key_file_p2,"https_p2.key");
                  if (0 == stat (key_file_p2, &sbuf ))
                  {
                          if (0 == remove(key_file_p2))
@@ -423,8 +436,8 @@ setup_peer (struct PeerContext *p, const char *cfgname)
                  }
                  if (GNUNET_CONFIGURATION_have_value (p->cfg,"transport-https", "CERT_FILE"))
                          GNUNET_CONFIGURATION_get_value_string (p->cfg, "transport-https", "CERT_FILE", &cert_file_p2);
-                 else
-                         GNUNET_asprintf(&cert_file_p2,"https.cert");
+                 if (cert_file_p2 == NULL)
+                         GNUNET_asprintf(&cert_file_p2,"https_p2.cert");
                  if (0 == stat (cert_file_p2, &sbuf ))
                  {
                          if (0 == remove(cert_file_p2))