removed malloc from curl_logger
[oweals/gnunet.git] / src / transport / test_transport_api_reliability.c
index 67884e5ea0e2950fbbad1b5d0be7de1ee559773f..01b58f4fe80da210bed9dbbfbf8ea177fd4a1286 100644 (file)
@@ -47,7 +47,7 @@
  * '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?
@@ -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 (p2.th,
                                            &p1.id,
                                            s, 0, TIMEOUT,
                                            &notify_ready,
                                            NULL);
+    msg_scheduled = n;
+  }
   if (n % 5000 == 0)
     {
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,