aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/test_testbed_api_controllerlink.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2013-05-03 12:41:58 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2013-05-03 12:41:58 +0000
commite5853128ecf0bd76956f54175ae755006aa56682 (patch)
tree6ea2938aa0d85f87b1e50fd0bf0ee93b40a038bd /src/testbed/test_testbed_api_controllerlink.c
parentdd9093f1dd38e7e140ad8f7f85af60c139f32834 (diff)
downloadgnunet-e5853128ecf0bd76956f54175ae755006aa56682.tar.gz
gnunet-e5853128ecf0bd76956f54175ae755006aa56682.zip
- showcase failing controllerlink case
Diffstat (limited to 'src/testbed/test_testbed_api_controllerlink.c')
-rw-r--r--src/testbed/test_testbed_api_controllerlink.c117
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;
242static struct GNUNET_TESTBED_Peer *slave2_peer; 257static struct GNUNET_TESTBED_Peer *slave2_peer;
243 258
244/** 259/**
260 * Handle to peer started at slave 2
261 */
262static 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 */
247static struct GNUNET_TESTBED_Peer *master_peer; 267static 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 */
379static void
380registration_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, &registration_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 */
448static void
449registration_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, &registration_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);