aboutsummaryrefslogtreecommitdiff
path: root/src/transport/test_communicator_basic.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/test_communicator_basic.c')
-rw-r--r--src/transport/test_communicator_basic.c51
1 files changed, 33 insertions, 18 deletions
diff --git a/src/transport/test_communicator_basic.c b/src/transport/test_communicator_basic.c
index d7622a2cc..ef91e133d 100644
--- a/src/transport/test_communicator_basic.c
+++ b/src/transport/test_communicator_basic.c
@@ -69,7 +69,7 @@ static struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorQueue *my_tc;
69#define BURST_RUNS 1 69#define BURST_RUNS 1
70 70
71#define SHORT_BURST_WINDOW \ 71#define SHORT_BURST_WINDOW \
72 GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS,5) 72 GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS,2)
73 73
74#define LONG_BURST_WINDOW \ 74#define LONG_BURST_WINDOW \
75 GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS,2) 75 GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS,2)
@@ -81,7 +81,7 @@ static struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorQueue *my_tc;
81#define SIZE_CHECK 2 81#define SIZE_CHECK 2
82 82
83 83
84static int num_sent = 0; 84static size_t num_sent = 0;
85 85
86static uint32_t ack = 0; 86static uint32_t ack = 0;
87 87
@@ -91,6 +91,8 @@ static size_t num_received = 0;
91 91
92static uint64_t avg_latency = 0; 92static uint64_t avg_latency = 0;
93 93
94static struct GNUNET_TIME_Relative duration;
95
94static void 96static void
95communicator_available_cb (void *cls, 97communicator_available_cb (void *cls,
96 struct 98 struct
@@ -187,18 +189,20 @@ size_test (void *cls)
187 ack); 189 ack);
188 GNUNET_free (payload); 190 GNUNET_free (payload);
189 ack += 5; 191 ack += 5;
192 num_sent++;
190 if (ack < 64000) 193 if (ack < 64000)
191 GNUNET_SCHEDULER_add_now (&size_test, NULL); 194 GNUNET_SCHEDULER_add_now (&size_test, NULL);
192 else 195 else
193 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, 196 GNUNET_SCHEDULER_add_delayed (SHORT_BURST_WINDOW,
194 &size_test, NULL); 197 &size_test, NULL);
195 return; 198 return;
196 } 199 }
197 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE, 200 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
198 "Size packet test done.\n"); 201 "Size packet test done.\n");
199 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE, 202 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
200 "#packets: %lu -- latency: %lu microseconds\n", 203 "%lu/%lu packets -- avg latency: %lu us\n",
201 num_received, 204 num_received,
205 num_sent,
202 avg_latency); 206 avg_latency);
203 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 207 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
204 "Finished\n"); 208 "Finished\n");
@@ -210,8 +214,6 @@ size_test (void *cls)
210static void 214static void
211long_test (void *cls) 215long_test (void *cls)
212{ 216{
213 struct GNUNET_TIME_Relative duration = GNUNET_TIME_absolute_get_duration (
214 start_long);
215 char *payload; 217 char *payload;
216 if (num_sent < BURST_PACKETS) 218 if (num_sent < BURST_PACKETS)
217 { 219 {
@@ -228,13 +230,14 @@ long_test (void *cls)
228 &long_test, NULL); 230 &long_test, NULL);
229 return; 231 return;
230 } 232 }
231 duration = GNUNET_TIME_absolute_get_duration (start_long);
232 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE, 233 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
233 "Long size packet test done.\n"); 234 "Long size packet test done.\n");
234 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE, 235 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
235 "goodput: %lu kb/s -- #packets: %lu -- latency: %lu microseconds\n", 236 "%lu/%lu packets in %lu us (%lu kb/s) -- avg latency: %lu us\n",
236 (LONG_MESSAGE_SIZE * num_received) / (duration.rel_value_us / 1000),
237 num_received, 237 num_received,
238 num_sent,
239 duration.rel_value_us,
240 (LONG_MESSAGE_SIZE * num_received) / (duration.rel_value_us / 1000),
238 avg_latency); 241 avg_latency);
239 ack = 10; 242 ack = 10;
240 num_received = 0; 243 num_received = 0;
@@ -247,9 +250,8 @@ long_test (void *cls)
247static void 250static void
248short_test (void *cls) 251short_test (void *cls)
249{ 252{
250 struct GNUNET_TIME_Relative duration;
251 char *payload; 253 char *payload;
252 if (num_sent < BURST_PACKETS) 254 while (num_sent < BURST_PACKETS)
253 { 255 {
254 payload = make_payload (SHORT_MESSAGE_SIZE); 256 payload = make_payload (SHORT_MESSAGE_SIZE);
255 GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, 257 GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc,
@@ -257,20 +259,23 @@ short_test (void *cls)
257 SHORT_MESSAGE_SIZE); 259 SHORT_MESSAGE_SIZE);
258 num_sent++; 260 num_sent++;
259 GNUNET_free (payload); 261 GNUNET_free (payload);
260 if (num_sent < BURST_PACKETS) 262 //if (num_sent < BURST_PACKETS)
261 GNUNET_SCHEDULER_add_now (&short_test, NULL); 263 // GNUNET_SCHEDULER_add_now (&short_test, NULL);
262 if (num_sent == BURST_PACKETS) 264 if (num_sent == BURST_PACKETS)
265 {
263 GNUNET_SCHEDULER_add_delayed (SHORT_BURST_WINDOW, 266 GNUNET_SCHEDULER_add_delayed (SHORT_BURST_WINDOW,
264 &short_test, NULL); 267 &short_test, NULL);
265 return; 268 return;
269 }
266 } 270 }
267 duration = GNUNET_TIME_absolute_get_duration (start_short);
268 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE, 271 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
269 "Short size packet test done.\n"); 272 "Short size packet test done.\n");
270 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE, 273 GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
271 "goodput: %lu kb/s -- #packets: %lu -- latency: %lu microseconds\n", 274 "%lu/%lu packets in %lu us (%lu kb/s) -- avg latency: %lu us\n",
272 (SHORT_MESSAGE_SIZE * num_received) / (duration.rel_value_us / 1000),
273 num_received, 275 num_received,
276 num_sent,
277 duration.rel_value_us,
278 (SHORT_MESSAGE_SIZE * num_received) / (duration.rel_value_us / 1000),
274 avg_latency); 279 avg_latency);
275 start_long = GNUNET_TIME_absolute_get (); 280 start_long = GNUNET_TIME_absolute_get ();
276 phase = BURST_LONG; 281 phase = BURST_LONG;
@@ -345,18 +350,28 @@ incoming_message_cb (void *cls,
345 size_t payload_len) 350 size_t payload_len)
346{ 351{
347 if (0 != strcmp ((char*) cls, cfg_peers_name[NUM_PEERS - 1])) 352 if (0 != strcmp ((char*) cls, cfg_peers_name[NUM_PEERS - 1]))
348 return; // TODO? 353 {
354 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
355 "unexpected receiver...\n");
356 return;
357 }
349 if (phase == BURST_SHORT) 358 if (phase == BURST_SHORT)
350 { 359 {
351 GNUNET_assert (SHORT_MESSAGE_SIZE == payload_len); 360 GNUNET_assert (SHORT_MESSAGE_SIZE == payload_len);
352 num_received++; 361 num_received++;
362 duration = GNUNET_TIME_absolute_get_duration (start_short);
353 update_avg_latency (payload); 363 update_avg_latency (payload);
354 } 364 }
355 else if (phase == BURST_LONG) 365 else if (phase == BURST_LONG)
356 { 366 {
357 if (LONG_MESSAGE_SIZE != payload_len) 367 if (LONG_MESSAGE_SIZE != payload_len)
368 {
369 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
370 "Ignoring packet with wrong length\n");
358 return; // Ignore 371 return; // Ignore
372 }
359 num_received++; 373 num_received++;
374 duration = GNUNET_TIME_absolute_get_duration (start_long);
360 update_avg_latency (payload); 375 update_avg_latency (payload);
361 } 376 }
362 else // if (phase == SIZE_CHECK) { 377 else // if (phase == SIZE_CHECK) {