error msg
[oweals/gnunet.git] / src / transport / test_transport_api_unreliability.c
index e3ca4be1c3ea15015a1f9dda353856490e16c87c..3658198bdb413a5c5aaaf9e183b7b1bab3eda1ee 100644 (file)
@@ -71,6 +71,8 @@ struct GNUNET_TRANSPORT_TESTING_handle *tth;
  */
 
 /**
+ * Total number of messages to send
+ *
  * Note that this value must not significantly exceed
  * 'MAX_PENDING' in 'gnunet-service-transport.c', otherwise
  * messages may be dropped even for a reliable transport.
@@ -161,7 +163,7 @@ end ()
   {
     if (get_bit (bitmap, i) == 0)
     {
-      GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Did not receive message %d\n", i);
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Did not receive message %d\n", i);
       ok = -1;
     }
   }
@@ -189,6 +191,16 @@ end_badly ()
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Test had timeout while waiting to send data\n");
 
+  int i;
+
+  for (i = 0; i < TOTAL_MSGS; i++)
+  {
+    if (get_bit (bitmap, i) == 0)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Did not receive message %d\n", i);
+      ok = -1;
+    }
+  }
 
   if (th != NULL)
     GNUNET_TRANSPORT_notify_transmit_ready_cancel (th);
@@ -260,7 +272,7 @@ set_bit (unsigned int bitIdx)
 static int
 get_bit (const char *map, unsigned int bit)
 {
-  if (bit >= TOTAL_MSGS)
+  if (bit > TOTAL_MSGS)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "get bit %d of %d(!?!?)\n", bit,
                 sizeof (bitmap) * 8);
@@ -369,10 +381,11 @@ notify_ready (void *cls, size_t size, void *buf)
   s = get_size (n);
   GNUNET_assert (size >= s);
   GNUNET_assert (buf != NULL);
-  GNUNET_assert (n <= TOTAL_MSGS);
+  GNUNET_assert (n < TOTAL_MSGS);
   cbuf = buf;
   do
   {
+    GNUNET_assert (n < TOTAL_MSGS);
     hdr.header.size = htons (s);
     hdr.header.type = htons (MTYPE);
     hdr.num = htonl (n);
@@ -394,7 +407,7 @@ notify_ready (void *cls, size_t size, void *buf)
     if (0 == GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, 16))
       break;                    /* sometimes pack buffer full, sometimes not */
   }
-  while (size - ret >= s);
+  while ((size - ret >= s) && (n < TOTAL_MSGS));
   if (n < TOTAL_MSGS)
   {
     th = GNUNET_TRANSPORT_notify_transmit_ready (p2->th, &p1->id, s, 0,
@@ -444,6 +457,8 @@ static void
 sendtask ()
 {
   start_time = GNUNET_TIME_absolute_get ();
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Starting to send %u messages\n",
+              TOTAL_MSGS);
   th = GNUNET_TRANSPORT_notify_transmit_ready (p2->th, &p1->id, get_size (0), 0,
                                                TIMEOUT_TRANSMIT, &notify_ready,
                                                NULL);