*/
/**
+ * 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.
end ()
{
unsigned long long delta;
-
+ unsigned long long rate;
char *value_name;
+
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping peers\n");
- delta = GNUNET_TIME_absolute_get_duration (start_time).rel_value;
- FPRINTF (stderr, "\nThroughput was %llu kb/s\n",
- total_bytes * 1000 / 1024 / delta);
+ delta = GNUNET_TIME_absolute_get_duration (start_time).rel_value_us;
+ rate = (1000LL* 1000ll * total_bytes) / (1024 * delta);
+ FPRINTF (stderr, "\nThroughput was %llu KiBytes/s\n",
+ rate);
+
GNUNET_asprintf (&value_name, "unreliable_%s", test_plugin);
- GAUGER ("TRANSPORT", value_name, (int) (total_bytes * 1000 / 1024 / delta),
+ GAUGER ("TRANSPORT", value_name, (int) rate,
"kb/s");
GNUNET_free (value_name);
{
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;
}
}
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);
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);
static void
notify_receive (void *cls, const struct GNUNET_PeerIdentity *peer,
- const struct GNUNET_MessageHeader *message,
- const struct GNUNET_ATS_Information *ats, uint32_t ats_count)
+ const struct GNUNET_MessageHeader *message)
{
static int n;
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);
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,
+ th = GNUNET_TRANSPORT_notify_transmit_ready (p2->th, &p1->id, s,
TIMEOUT_TRANSMIT,
¬ify_ready, NULL);
msg_scheduled = n;
static void
-notify_connect (void *cls, const struct GNUNET_PeerIdentity *peer,
- const struct GNUNET_ATS_Information *ats, uint32_t ats_count)
+notify_connect (void *cls, const struct GNUNET_PeerIdentity *peer)
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Peer `%4s' connected to us (%p)!\n",
sendtask ()
{
start_time = GNUNET_TIME_absolute_get ();
- th = GNUNET_TRANSPORT_notify_transmit_ready (p2->th, &p1->id, get_size (0), 0,
+ 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),
TIMEOUT_TRANSMIT, ¬ify_ready,
NULL);
}