aboutsummaryrefslogtreecommitdiff
path: root/src/transport/test_communicator_basic.c
diff options
context:
space:
mode:
authorSchanzenbach, Martin <mschanzenbach@posteo.de>2019-12-26 02:21:17 +0900
committerSchanzenbach, Martin <mschanzenbach@posteo.de>2019-12-26 02:21:17 +0900
commitc1cf4ec20a9a3f5e804e83986dbdb8b8a0bb9ce5 (patch)
tree384eb2d9f28d9a425728dab1644a398aba83b933 /src/transport/test_communicator_basic.c
parent025568d66f1b4bf4007d8effdd73e3f36f26f78b (diff)
parent1a4bd09e63df2300845fcb9bfa150f28943b9aea (diff)
downloadgnunet-c1cf4ec20a9a3f5e804e83986dbdb8b8a0bb9ce5.tar.gz
gnunet-c1cf4ec20a9a3f5e804e83986dbdb8b8a0bb9ce5.zip
merge
Diffstat (limited to 'src/transport/test_communicator_basic.c')
-rw-r--r--src/transport/test_communicator_basic.c57
1 files changed, 21 insertions, 36 deletions
diff --git a/src/transport/test_communicator_basic.c b/src/transport/test_communicator_basic.c
index 4dba9d50c..db396ba66 100644
--- a/src/transport/test_communicator_basic.c
+++ b/src/transport/test_communicator_basic.c
@@ -64,6 +64,8 @@ static struct GNUNET_TIME_Absolute start_short;
64 64
65static struct GNUNET_TIME_Absolute start_long; 65static struct GNUNET_TIME_Absolute start_long;
66 66
67static struct GNUNET_TIME_Absolute timeout;
68
67static struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorQueue *my_tc; 69static struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorQueue *my_tc;
68 70
69#define SHORT_MESSAGE_SIZE 128 71#define SHORT_MESSAGE_SIZE 128
@@ -74,7 +76,7 @@ static struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorQueue *my_tc;
74 76
75#define FIXME_DEAD_BURST_RUNS 1 77#define FIXME_DEAD_BURST_RUNS 1
76 78
77#define TOTAL_ITERATIONS 10 79#define TOTAL_ITERATIONS 20
78 80
79static unsigned int iterations_left = TOTAL_ITERATIONS; 81static unsigned int iterations_left = TOTAL_ITERATIONS;
80 82
@@ -196,6 +198,14 @@ static void
196latency_timeout (void *cls) 198latency_timeout (void *cls)
197{ 199{
198 to_task = NULL; 200 to_task = NULL;
201 if (GNUNET_TIME_absolute_get_remaining (timeout).rel_value_us > 0)
202 {
203 to_task = GNUNET_SCHEDULER_add_at (timeout,
204 &latency_timeout,
205 NULL);
206 return;
207 }
208
199 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 209 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
200 "Latency too high. Test failed. (Phase: %d. Sent: %lu, Received: %lu)\n", 210 "Latency too high. Test failed. (Phase: %d. Sent: %lu, Received: %lu)\n",
201 phase, num_sent, num_received); 211 phase, num_sent, num_received);
@@ -220,10 +230,7 @@ size_test (void *cls)
220 GNUNET_free (payload); 230 GNUNET_free (payload);
221 ack += 5; 231 ack += 5;
222 num_sent++; 232 num_sent++;
223 if (NULL == to_task) 233 timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS);
224 to_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
225 &latency_timeout,
226 NULL);
227 if (ack < 64000) 234 if (ack < 64000)
228 active_task = GNUNET_SCHEDULER_add_now (&size_test, 235 active_task = GNUNET_SCHEDULER_add_now (&size_test,
229 NULL); 236 NULL);
@@ -242,10 +249,7 @@ long_test (void *cls)
242 LONG_MESSAGE_SIZE); 249 LONG_MESSAGE_SIZE);
243 num_sent++; 250 num_sent++;
244 GNUNET_free (payload); 251 GNUNET_free (payload);
245 if (NULL == to_task) 252 timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS);
246 to_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
247 &latency_timeout,
248 NULL);
249 if (num_sent == BURST_PACKETS) 253 if (num_sent == BURST_PACKETS)
250 return; 254 return;
251 active_task = GNUNET_SCHEDULER_add_now (&long_test, 255 active_task = GNUNET_SCHEDULER_add_now (&long_test,
@@ -265,10 +269,7 @@ short_test (void *cls)
265 SHORT_MESSAGE_SIZE); 269 SHORT_MESSAGE_SIZE);
266 num_sent++; 270 num_sent++;
267 GNUNET_free (payload); 271 GNUNET_free (payload);
268 if (NULL == to_task) 272 timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS);
269 to_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
270 &latency_timeout,
271 NULL);
272 if (num_sent >= BURST_PACKETS) 273 if (num_sent >= BURST_PACKETS)
273 return; 274 return;
274 active_task = GNUNET_SCHEDULER_add_now (&short_test, 275 active_task = GNUNET_SCHEDULER_add_now (&short_test,
@@ -300,6 +301,11 @@ add_queue_cb (void *cls,
300 start_short = GNUNET_TIME_absolute_get (); 301 start_short = GNUNET_TIME_absolute_get ();
301 my_tc = tc_queue; 302 my_tc = tc_queue;
302 phase = TP_BURST_SHORT; 303 phase = TP_BURST_SHORT;
304 timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS);
305 GNUNET_assert (NULL == to_task);
306 to_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
307 &latency_timeout,
308 NULL);
303 GNUNET_assert (NULL == active_task); 309 GNUNET_assert (NULL == active_task);
304 active_task = GNUNET_SCHEDULER_add_now (&short_test, 310 active_task = GNUNET_SCHEDULER_add_now (&short_test,
305 NULL); 311 NULL);
@@ -347,6 +353,8 @@ incoming_message_cb (void *cls,
347 "unexpected receiver...\n"); 353 "unexpected receiver...\n");
348 return; 354 return;
349 } 355 }
356 /* Reset timeout */
357 timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS);
350 switch (phase) 358 switch (phase)
351 { 359 {
352 case TP_BURST_SHORT: 360 case TP_BURST_SHORT:
@@ -374,11 +382,6 @@ incoming_message_cb (void *cls,
374 num_sent = 0; 382 num_sent = 0;
375 avg_latency = 0; 383 avg_latency = 0;
376 num_received = 0; 384 num_received = 0;
377 if (NULL != to_task)
378 {
379 GNUNET_SCHEDULER_cancel (to_task);
380 to_task = NULL;
381 }
382 active_task = GNUNET_SCHEDULER_add_now (&long_test, 385 active_task = GNUNET_SCHEDULER_add_now (&long_test,
383 NULL); 386 NULL);
384 } 387 }
@@ -414,11 +417,6 @@ incoming_message_cb (void *cls,
414 num_received = 0; 417 num_received = 0;
415 num_sent = 0; 418 num_sent = 0;
416 avg_latency = 0; 419 avg_latency = 0;
417 if (NULL != to_task)
418 {
419 GNUNET_SCHEDULER_cancel (to_task);
420 to_task = NULL;
421 }
422 active_task = GNUNET_SCHEDULER_add_now (&size_test, 420 active_task = GNUNET_SCHEDULER_add_now (&size_test,
423 NULL); 421 NULL);
424 } 422 }
@@ -440,11 +438,6 @@ incoming_message_cb (void *cls,
440 num_received = 0; 438 num_received = 0;
441 num_sent = 0; 439 num_sent = 0;
442 avg_latency = 0; 440 avg_latency = 0;
443 if (NULL != to_task)
444 {
445 GNUNET_SCHEDULER_cancel (to_task);
446 to_task = NULL;
447 }
448 iterations_left--; 441 iterations_left--;
449 if (0 != iterations_left) 442 if (0 != iterations_left)
450 { 443 {
@@ -460,14 +453,6 @@ incoming_message_cb (void *cls,
460 break; 453 break;
461 } 454 }
462 } 455 }
463 /* Reset timeout */
464 if (NULL != to_task)
465 {
466 GNUNET_SCHEDULER_cancel (to_task);
467 to_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
468 &latency_timeout,
469 NULL);
470 }
471} 456}
472 457
473 458