diff options
Diffstat (limited to 'src/transport/test_communicator_basic.c')
-rw-r--r-- | src/transport/test_communicator_basic.c | 56 |
1 files changed, 24 insertions, 32 deletions
diff --git a/src/transport/test_communicator_basic.c b/src/transport/test_communicator_basic.c index c469a55a1..e99db7cfb 100644 --- a/src/transport/test_communicator_basic.c +++ b/src/transport/test_communicator_basic.c | |||
@@ -43,8 +43,6 @@ | |||
43 | 43 | ||
44 | static struct GNUNET_SCHEDULER_Task *to_task; | 44 | static struct GNUNET_SCHEDULER_Task *to_task; |
45 | 45 | ||
46 | static struct GNUNET_SCHEDULER_Task *active_task; | ||
47 | |||
48 | static int queue_est = GNUNET_NO; | 46 | static int queue_est = GNUNET_NO; |
49 | 47 | ||
50 | static struct GNUNET_PeerIdentity peer_id[NUM_PEERS]; | 48 | static struct GNUNET_PeerIdentity peer_id[NUM_PEERS]; |
@@ -233,21 +231,21 @@ size_test (void *cls) | |||
233 | { | 231 | { |
234 | char *payload; | 232 | char *payload; |
235 | 233 | ||
236 | active_task = NULL; | ||
237 | GNUNET_assert (TP_SIZE_CHECK == phase); | 234 | GNUNET_assert (TP_SIZE_CHECK == phase); |
238 | if (ack >= 64000) | 235 | if (ack >= 64000) |
239 | return; /* Leave some room for our protocol, so not 2^16 exactly */ | 236 | return; /* Leave some room for our protocol, so not 2^16 exactly */ |
240 | payload = make_payload (ack); | 237 | payload = make_payload (ack); |
238 | ack += 5; | ||
239 | num_sent++; | ||
241 | GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, | 240 | GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, |
241 | (ack < 64000) | ||
242 | ? &size_test | ||
243 | : NULL, | ||
244 | NULL, | ||
242 | payload, | 245 | payload, |
243 | ack); | 246 | ack); |
244 | GNUNET_free (payload); | 247 | GNUNET_free (payload); |
245 | ack += 5; | ||
246 | num_sent++; | ||
247 | timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS); | 248 | timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS); |
248 | if (ack < 64000) | ||
249 | active_task = GNUNET_SCHEDULER_add_now (&size_test, | ||
250 | NULL); | ||
251 | } | 249 | } |
252 | 250 | ||
253 | 251 | ||
@@ -256,18 +254,18 @@ long_test (void *cls) | |||
256 | { | 254 | { |
257 | char *payload; | 255 | char *payload; |
258 | 256 | ||
259 | active_task = NULL; | ||
260 | payload = make_payload (LONG_MESSAGE_SIZE); | 257 | payload = make_payload (LONG_MESSAGE_SIZE); |
258 | num_sent++; | ||
261 | GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, | 259 | GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, |
260 | (BURST_PACKETS == | ||
261 | num_sent) | ||
262 | ? NULL | ||
263 | : &long_test, | ||
264 | NULL, | ||
262 | payload, | 265 | payload, |
263 | LONG_MESSAGE_SIZE); | 266 | LONG_MESSAGE_SIZE); |
264 | num_sent++; | ||
265 | GNUNET_free (payload); | 267 | GNUNET_free (payload); |
266 | timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS); | 268 | timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS); |
267 | if (num_sent == BURST_PACKETS) | ||
268 | return; | ||
269 | active_task = GNUNET_SCHEDULER_add_now (&long_test, | ||
270 | NULL); | ||
271 | } | 269 | } |
272 | 270 | ||
273 | 271 | ||
@@ -276,18 +274,18 @@ short_test (void *cls) | |||
276 | { | 274 | { |
277 | char *payload; | 275 | char *payload; |
278 | 276 | ||
279 | active_task = NULL; | ||
280 | payload = make_payload (SHORT_MESSAGE_SIZE); | 277 | payload = make_payload (SHORT_MESSAGE_SIZE); |
278 | num_sent++; | ||
281 | GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, | 279 | GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, |
280 | (BURST_PACKETS == | ||
281 | num_sent) | ||
282 | ? NULL | ||
283 | : &short_test, | ||
284 | NULL, | ||
282 | payload, | 285 | payload, |
283 | SHORT_MESSAGE_SIZE); | 286 | SHORT_MESSAGE_SIZE); |
284 | num_sent++; | ||
285 | GNUNET_free (payload); | 287 | GNUNET_free (payload); |
286 | timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS); | 288 | timeout = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_SECONDS); |
287 | if (num_sent >= BURST_PACKETS) | ||
288 | return; | ||
289 | active_task = GNUNET_SCHEDULER_add_now (&short_test, | ||
290 | NULL); | ||
291 | } | 289 | } |
292 | 290 | ||
293 | 291 | ||
@@ -320,9 +318,7 @@ add_queue_cb (void *cls, | |||
320 | to_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, | 318 | to_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, |
321 | &latency_timeout, | 319 | &latency_timeout, |
322 | NULL); | 320 | NULL); |
323 | GNUNET_assert (NULL == active_task); | 321 | short_test (NULL); |
324 | active_task = GNUNET_SCHEDULER_add_now (&short_test, | ||
325 | NULL); | ||
326 | } | 322 | } |
327 | 323 | ||
328 | 324 | ||
@@ -398,8 +394,7 @@ incoming_message_cb (void *cls, | |||
398 | num_sent = 0; | 394 | num_sent = 0; |
399 | avg_latency = 0; | 395 | avg_latency = 0; |
400 | num_received = 0; | 396 | num_received = 0; |
401 | active_task = GNUNET_SCHEDULER_add_now (&long_test, | 397 | long_test (NULL); |
402 | NULL); | ||
403 | } | 398 | } |
404 | break; | 399 | break; |
405 | } | 400 | } |
@@ -436,8 +431,7 @@ incoming_message_cb (void *cls, | |||
436 | num_received = 0; | 431 | num_received = 0; |
437 | num_sent = 0; | 432 | num_sent = 0; |
438 | avg_latency = 0; | 433 | avg_latency = 0; |
439 | active_task = GNUNET_SCHEDULER_add_now (&size_test, | 434 | size_test (NULL); |
440 | NULL); | ||
441 | } | 435 | } |
442 | break; | 436 | break; |
443 | } | 437 | } |
@@ -462,8 +456,7 @@ incoming_message_cb (void *cls, | |||
462 | { | 456 | { |
463 | start_short = GNUNET_TIME_absolute_get (); | 457 | start_short = GNUNET_TIME_absolute_get (); |
464 | phase = TP_BURST_SHORT; | 458 | phase = TP_BURST_SHORT; |
465 | active_task = GNUNET_SCHEDULER_add_now (&short_test, | 459 | short_test (NULL); |
466 | NULL); | ||
467 | break; | 460 | break; |
468 | } | 461 | } |
469 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 462 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
@@ -484,10 +477,9 @@ do_shutdown (void *cls) | |||
484 | GNUNET_SCHEDULER_cancel (to_task); | 477 | GNUNET_SCHEDULER_cancel (to_task); |
485 | to_task = NULL; | 478 | to_task = NULL; |
486 | } | 479 | } |
487 | if (NULL != active_task) | 480 | for (unsigned int i = 0; i < NUM_PEERS; i++) |
488 | { | 481 | { |
489 | GNUNET_SCHEDULER_cancel (active_task); | 482 | GNUNET_TRANSPORT_TESTING_transport_communicator_service_stop (tc_hs[i]); |
490 | active_task = NULL; | ||
491 | } | 483 | } |
492 | } | 484 | } |
493 | 485 | ||