diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2013-05-03 12:41:58 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2013-05-03 12:41:58 +0000 |
commit | e5853128ecf0bd76956f54175ae755006aa56682 (patch) | |
tree | 6ea2938aa0d85f87b1e50fd0bf0ee93b40a038bd | |
parent | dd9093f1dd38e7e140ad8f7f85af60c139f32834 (diff) | |
download | gnunet-e5853128ecf0bd76956f54175ae755006aa56682.tar.gz gnunet-e5853128ecf0bd76956f54175ae755006aa56682.zip |
- showcase failing controllerlink case
-rw-r--r-- | src/testbed/test_testbed_api_controllerlink.c | 117 |
1 files changed, 85 insertions, 32 deletions
diff --git a/src/testbed/test_testbed_api_controllerlink.c b/src/testbed/test_testbed_api_controllerlink.c index b3e13f1ff..030b65117 100644 --- a/src/testbed/test_testbed_api_controllerlink.c +++ b/src/testbed/test_testbed_api_controllerlink.c | |||
@@ -131,29 +131,44 @@ enum Stage | |||
131 | MASTER_SLAVE2_PEERS_CONNECTED, | 131 | MASTER_SLAVE2_PEERS_CONNECTED, |
132 | 132 | ||
133 | /** | 133 | /** |
134 | * Peer on slave 2 successfully stopped | 134 | * Slave 3 has successfully registered |
135 | */ | 135 | */ |
136 | SLAVE2_PEER_STOP_SUCCESS, | 136 | SLAVE3_REGISTERED, |
137 | 137 | ||
138 | /** | 138 | /** |
139 | * Peer destroy on slave 1 successful | 139 | * Slave 3 has successfully started |
140 | */ | 140 | */ |
141 | SLAVE1_PEER_DESTROY_SUCCESS, | 141 | SLAVE3_STARTED, |
142 | 142 | ||
143 | /** | 143 | /** |
144 | * Peer destory on slave 2 successful | 144 | * Peer created on slave 3 |
145 | */ | 145 | */ |
146 | SLAVE2_PEER_DESTROY_SUCCESS, | 146 | SLAVE3_PEER_CREATE_SUCCESS, |
147 | 147 | ||
148 | /** | 148 | /** |
149 | * Slave 3 has successfully registered | 149 | * Peer started at slave 3 |
150 | */ | 150 | */ |
151 | SLAVE3_REGISTERED, | 151 | SLAVE3_PEER_START_SUCCESS, |
152 | 152 | ||
153 | /** | 153 | /** |
154 | * Slave 3 has successfully started | 154 | * Try to connect peers on slave2 and slave3 |
155 | */ | 155 | */ |
156 | SLAVE3_STARTED, | 156 | SLAVE2_SLAVE3_PEERS_CONNECTED, |
157 | |||
158 | /** | ||
159 | * Peer on slave 2 successfully stopped | ||
160 | */ | ||
161 | SLAVE2_PEER_STOP_SUCCESS, | ||
162 | |||
163 | /** | ||
164 | * Peer destroy on slave 1 successful | ||
165 | */ | ||
166 | SLAVE1_PEER_DESTROY_SUCCESS, | ||
167 | |||
168 | /** | ||
169 | * Peer destory on slave 2 successful | ||
170 | */ | ||
171 | SLAVE2_PEER_DESTROY_SUCCESS, | ||
157 | 172 | ||
158 | /** | 173 | /** |
159 | * The configuration of slave 3 is acquired | 174 | * The configuration of slave 3 is acquired |
@@ -242,6 +257,11 @@ static struct GNUNET_TESTBED_Peer *slave1_peer; | |||
242 | static struct GNUNET_TESTBED_Peer *slave2_peer; | 257 | static struct GNUNET_TESTBED_Peer *slave2_peer; |
243 | 258 | ||
244 | /** | 259 | /** |
260 | * Handle to peer started at slave 2 | ||
261 | */ | ||
262 | static struct GNUNET_TESTBED_Peer *slave3_peer; | ||
263 | |||
264 | /** | ||
245 | * Handle to a peer started at master controller | 265 | * Handle to a peer started at master controller |
246 | */ | 266 | */ |
247 | static struct GNUNET_TESTBED_Peer *master_peer; | 267 | static struct GNUNET_TESTBED_Peer *master_peer; |
@@ -351,6 +371,16 @@ do_abort_now (void *cls) | |||
351 | 371 | ||
352 | 372 | ||
353 | /** | 373 | /** |
374 | * Callback which will be called to after a host registration succeeded or failed | ||
375 | * | ||
376 | * @param cls the host which has been registered | ||
377 | * @param emsg the error message; NULL if host registration is successful | ||
378 | */ | ||
379 | static void | ||
380 | registration_cont (void *cls, const char *emsg); | ||
381 | |||
382 | |||
383 | /** | ||
354 | * Task for inserting delay between tests | 384 | * Task for inserting delay between tests |
355 | * | 385 | * |
356 | * @param | 386 | * @param |
@@ -367,6 +397,10 @@ delay_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
367 | FAIL_TEST (NULL != op); | 397 | FAIL_TEST (NULL != op); |
368 | break; | 398 | break; |
369 | case MASTER_SLAVE2_PEERS_CONNECTED: | 399 | case MASTER_SLAVE2_PEERS_CONNECTED: |
400 | slave3 = GNUNET_TESTBED_host_create_with_id (3, "127.0.0.1", NULL, cfg, 0); | ||
401 | rh = GNUNET_TESTBED_register_host (mc, slave3, ®istration_cont, NULL); | ||
402 | break; | ||
403 | case SLAVE2_SLAVE3_PEERS_CONNECTED: | ||
370 | op = GNUNET_TESTBED_peer_stop (NULL, slave2_peer, NULL, NULL); | 404 | op = GNUNET_TESTBED_peer_stop (NULL, slave2_peer, NULL, NULL); |
371 | FAIL_TEST (NULL != op); | 405 | FAIL_TEST (NULL != op); |
372 | break; | 406 | break; |
@@ -414,6 +448,12 @@ peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg) | |||
414 | &delay_task, | 448 | &delay_task, |
415 | NULL); | 449 | NULL); |
416 | break; | 450 | break; |
451 | case SLAVE3_STARTED: | ||
452 | result = SLAVE3_PEER_CREATE_SUCCESS; | ||
453 | slave3_peer = peer; | ||
454 | GNUNET_TESTBED_operation_done (op); | ||
455 | op = GNUNET_TESTBED_peer_start (NULL, slave3_peer, NULL, NULL); | ||
456 | break; | ||
417 | default: | 457 | default: |
418 | FAIL_TEST (0); | 458 | FAIL_TEST (0); |
419 | } | 459 | } |
@@ -440,16 +480,6 @@ check_operation_success (const struct GNUNET_TESTBED_EventInformation *event) | |||
440 | 480 | ||
441 | 481 | ||
442 | /** | 482 | /** |
443 | * Callback which will be called to after a host registration succeeded or failed | ||
444 | * | ||
445 | * @param cls the host which has been registered | ||
446 | * @param emsg the error message; NULL if host registration is successful | ||
447 | */ | ||
448 | static void | ||
449 | registration_cont (void *cls, const char *emsg); | ||
450 | |||
451 | |||
452 | /** | ||
453 | * Signature of the event handler function called by the | 483 | * Signature of the event handler function called by the |
454 | * respective event controller. | 484 | * respective event controller. |
455 | * | 485 | * |
@@ -506,6 +536,29 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event) | |||
506 | op = GNUNET_TESTBED_peer_start (NULL, slave2_peer, NULL, NULL); | 536 | op = GNUNET_TESTBED_peer_start (NULL, slave2_peer, NULL, NULL); |
507 | FAIL_TEST (NULL != op); | 537 | FAIL_TEST (NULL != op); |
508 | break; | 538 | break; |
539 | case SLAVE3_PEER_CREATE_SUCCESS: | ||
540 | FAIL_TEST (GNUNET_TESTBED_ET_PEER_START == event->type); | ||
541 | FAIL_TEST (event->details.peer_start.host == slave3); | ||
542 | FAIL_TEST (event->details.peer_start.peer == slave3_peer); | ||
543 | GNUNET_TESTBED_operation_done (op); | ||
544 | result = SLAVE3_PEER_START_SUCCESS; | ||
545 | op = GNUNET_TESTBED_overlay_connect (mc, NULL, NULL, slave2_peer, | ||
546 | slave3_peer); | ||
547 | FAIL_TEST (NULL != op); | ||
548 | break; | ||
549 | case SLAVE3_PEER_START_SUCCESS: | ||
550 | FAIL_TEST (NULL != event); | ||
551 | FAIL_TEST (GNUNET_TESTBED_ET_CONNECT == event->type); | ||
552 | FAIL_TEST (event->details.peer_connect.peer1 == slave2_peer); | ||
553 | FAIL_TEST (event->details.peer_connect.peer2 == slave3_peer); | ||
554 | result = SLAVE2_SLAVE3_PEERS_CONNECTED; | ||
555 | GNUNET_TESTBED_operation_done (op); | ||
556 | op = NULL; | ||
557 | delay_task_id = | ||
558 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply | ||
559 | (GNUNET_TIME_UNIT_SECONDS, 1), &delay_task, | ||
560 | NULL); | ||
561 | break; | ||
509 | case SLAVE1_PEER_STOP_SUCCESS: | 562 | case SLAVE1_PEER_STOP_SUCCESS: |
510 | FAIL_TEST (GNUNET_TESTBED_ET_PEER_START == event->type); | 563 | FAIL_TEST (GNUNET_TESTBED_ET_PEER_START == event->type); |
511 | FAIL_TEST (event->details.peer_start.host == slave2); | 564 | FAIL_TEST (event->details.peer_start.host == slave2); |
@@ -528,7 +581,7 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event) | |||
528 | (GNUNET_TIME_UNIT_SECONDS, 1), &delay_task, | 581 | (GNUNET_TIME_UNIT_SECONDS, 1), &delay_task, |
529 | NULL); | 582 | NULL); |
530 | break; | 583 | break; |
531 | case MASTER_SLAVE2_PEERS_CONNECTED: | 584 | case SLAVE2_SLAVE3_PEERS_CONNECTED: |
532 | FAIL_TEST (GNUNET_TESTBED_ET_PEER_STOP == event->type); | 585 | FAIL_TEST (GNUNET_TESTBED_ET_PEER_STOP == event->type); |
533 | FAIL_TEST (event->details.peer_stop.peer == slave2_peer); | 586 | FAIL_TEST (event->details.peer_stop.peer == slave2_peer); |
534 | GNUNET_TESTBED_operation_done (op); | 587 | GNUNET_TESTBED_operation_done (op); |
@@ -548,18 +601,10 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event) | |||
548 | GNUNET_TESTBED_operation_done (op); | 601 | GNUNET_TESTBED_operation_done (op); |
549 | op = NULL; | 602 | op = NULL; |
550 | result = SLAVE2_PEER_DESTROY_SUCCESS; | 603 | result = SLAVE2_PEER_DESTROY_SUCCESS; |
551 | slave3 = GNUNET_TESTBED_host_create_with_id (3, "127.0.0.1", NULL, cfg, 0); | ||
552 | rh = GNUNET_TESTBED_register_host (mc, slave3, ®istration_cont, NULL); | ||
553 | break; | ||
554 | case SLAVE3_REGISTERED: | ||
555 | check_operation_success (event); | ||
556 | GNUNET_TESTBED_operation_done (op); | ||
557 | op = NULL; | ||
558 | result = SLAVE3_STARTED; | ||
559 | op = GNUNET_TESTBED_get_slave_config (NULL, mc, slave3); | 604 | op = GNUNET_TESTBED_get_slave_config (NULL, mc, slave3); |
560 | FAIL_TEST (NULL != op); | 605 | FAIL_TEST (NULL != op); |
561 | break; | 606 | break; |
562 | case SLAVE3_STARTED: | 607 | case SLAVE2_PEER_DESTROY_SUCCESS: |
563 | FAIL_TEST (NULL != event); | 608 | FAIL_TEST (NULL != event); |
564 | FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type); | 609 | FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type); |
565 | FAIL_TEST (event->op == op); | 610 | FAIL_TEST (event->op == op); |
@@ -571,6 +616,14 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event) | |||
571 | op = GNUNET_TESTBED_controller_link (NULL, mc, slave3, slave, cfg3, | 616 | op = GNUNET_TESTBED_controller_link (NULL, mc, slave3, slave, cfg3, |
572 | GNUNET_NO); | 617 | GNUNET_NO); |
573 | break; | 618 | break; |
619 | case SLAVE3_REGISTERED: | ||
620 | check_operation_success (event); | ||
621 | GNUNET_TESTBED_operation_done (op); | ||
622 | op = NULL; | ||
623 | result = SLAVE3_STARTED; | ||
624 | op = GNUNET_TESTBED_peer_create (mc, slave3, cfg, peer_create_cb, NULL); | ||
625 | FAIL_TEST (NULL != op); | ||
626 | break; | ||
574 | case SLAVE3_GET_CONFIG_SUCCESS: | 627 | case SLAVE3_GET_CONFIG_SUCCESS: |
575 | result = SLAVE3_LINK_SUCCESS; | 628 | result = SLAVE3_LINK_SUCCESS; |
576 | GNUNET_TESTBED_operation_done (op); | 629 | GNUNET_TESTBED_operation_done (op); |
@@ -582,7 +635,7 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event) | |||
582 | GNUNET_TESTBED_operation_done (op); | 635 | GNUNET_TESTBED_operation_done (op); |
583 | op = NULL; | 636 | op = NULL; |
584 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply | 637 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply |
585 | (GNUNET_TIME_UNIT_SECONDS, 3), &do_shutdown, | 638 | (GNUNET_TIME_UNIT_SECONDS, 1), &do_shutdown, |
586 | NULL); | 639 | NULL); |
587 | break; | 640 | break; |
588 | default: | 641 | default: |
@@ -621,7 +674,7 @@ registration_cont (void *cls, const char *emsg) | |||
621 | GNUNET_YES); | 674 | GNUNET_YES); |
622 | FAIL_TEST (NULL != op); | 675 | FAIL_TEST (NULL != op); |
623 | break; | 676 | break; |
624 | case SLAVE2_PEER_DESTROY_SUCCESS: | 677 | case MASTER_SLAVE2_PEERS_CONNECTED: |
625 | FAIL_TEST (NULL == emsg); | 678 | FAIL_TEST (NULL == emsg); |
626 | FAIL_TEST (NULL != mc); | 679 | FAIL_TEST (NULL != mc); |
627 | FAIL_TEST (NULL == op); | 680 | FAIL_TEST (NULL == op); |