aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/test_testbed_api_controllerlink.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2013-02-13 10:32:08 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2013-02-13 10:32:08 +0000
commita874deb287c61ad82338e4e504a47bb255798e6d (patch)
tree886193a9cf321667690ca776e8bb114b8d8e7481 /src/testbed/test_testbed_api_controllerlink.c
parenta723c8ff7a37099345d539a8ceaac7898ce84d33 (diff)
downloadgnunet-a874deb287c61ad82338e4e504a47bb255798e6d.tar.gz
gnunet-a874deb287c61ad82338e4e504a47bb255798e6d.zip
- fail test without dumping core
Diffstat (limited to 'src/testbed/test_testbed_api_controllerlink.c')
-rw-r--r--src/testbed/test_testbed_api_controllerlink.c140
1 files changed, 77 insertions, 63 deletions
diff --git a/src/testbed/test_testbed_api_controllerlink.c b/src/testbed/test_testbed_api_controllerlink.c
index 1d0a3652c..f0ce4daa5 100644
--- a/src/testbed/test_testbed_api_controllerlink.c
+++ b/src/testbed/test_testbed_api_controllerlink.c
@@ -266,6 +266,20 @@ uint64_t event_mask;
266 */ 266 */
267static enum Stage result; 267static enum Stage result;
268 268
269/**
270 * shortcut to exit during failure
271 */
272#define FAIL_TEST(cond) do { \
273 if (!(cond)) { \
274 GNUNET_break(0); \
275 if (GNUNET_SCHEDULER_NO_TASK != abort_task) \
276 GNUNET_SCHEDULER_cancel (abort_task); \
277 abort_task = GNUNET_SCHEDULER_NO_TASK; \
278 GNUNET_SCHEDULER_add_now (do_shutdown, NULL); \
279 return; \
280 } \
281 } while (0)
282
269 283
270/** 284/**
271 * Shutdown nicely 285 * Shutdown nicely
@@ -315,7 +329,7 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
315static void 329static void
316do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 330do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
317{ 331{
318 LOG (GNUNET_ERROR_TYPE_WARNING, "Test timedout -- Aborting\n"); 332 LOG (GNUNET_ERROR_TYPE_WARNING, "Aborting\n");
319 abort_task = GNUNET_SCHEDULER_NO_TASK; 333 abort_task = GNUNET_SCHEDULER_NO_TASK;
320 do_shutdown (cls, tc); 334 do_shutdown (cls, tc);
321} 335}
@@ -350,14 +364,14 @@ delay_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
350 { 364 {
351 case SLAVE2_PEER_CREATE_SUCCESS: 365 case SLAVE2_PEER_CREATE_SUCCESS:
352 op = GNUNET_TESTBED_peer_stop (slave1_peer, NULL, NULL); 366 op = GNUNET_TESTBED_peer_stop (slave1_peer, NULL, NULL);
353 GNUNET_assert (NULL != op); 367 FAIL_TEST (NULL != op);
354 break; 368 break;
355 case MASTER_SLAVE2_PEERS_CONNECTED: 369 case MASTER_SLAVE2_PEERS_CONNECTED:
356 op = GNUNET_TESTBED_peer_stop (slave2_peer, NULL, NULL); 370 op = GNUNET_TESTBED_peer_stop (slave2_peer, NULL, NULL);
357 GNUNET_assert (NULL != op); 371 FAIL_TEST (NULL != op);
358 break; 372 break;
359 default: 373 default:
360 GNUNET_assert (0); 374 FAIL_TEST (0);
361 } 375 }
362} 376}
363 377
@@ -374,8 +388,8 @@ delay_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
374static void 388static void
375peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg) 389peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg)
376{ 390{
377 GNUNET_assert (NULL != peer); 391 FAIL_TEST (NULL != peer);
378 GNUNET_assert (NULL == emsg); 392 FAIL_TEST (NULL == emsg);
379 switch (result) 393 switch (result)
380 { 394 {
381 case MASTER_STARTED: 395 case MASTER_STARTED:
@@ -401,9 +415,9 @@ peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg)
401 NULL); 415 NULL);
402 break; 416 break;
403 default: 417 default:
404 GNUNET_assert (0); 418 FAIL_TEST (0);
405 } 419 }
406 GNUNET_assert (NULL != op); 420 FAIL_TEST (NULL != op);
407} 421}
408 422
409 423
@@ -416,12 +430,12 @@ peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg)
416static void 430static void
417check_operation_success (const struct GNUNET_TESTBED_EventInformation *event) 431check_operation_success (const struct GNUNET_TESTBED_EventInformation *event)
418{ 432{
419 GNUNET_assert (NULL != event); 433 FAIL_TEST (NULL != event);
420 GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type); 434 FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
421 GNUNET_assert (event->details.operation_finished.operation == op); 435 FAIL_TEST (event->details.operation_finished.operation == op);
422 GNUNET_assert (NULL == event->details.operation_finished.op_cls); 436 FAIL_TEST (NULL == event->details.operation_finished.op_cls);
423 GNUNET_assert (NULL == event->details.operation_finished.emsg); 437 FAIL_TEST (NULL == event->details.operation_finished.emsg);
424 GNUNET_assert (NULL == event->details.operation_finished.generic); 438 FAIL_TEST (NULL == event->details.operation_finished.generic);
425} 439}
426 440
427 441
@@ -452,60 +466,60 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
452 GNUNET_TESTBED_operation_done (op); 466 GNUNET_TESTBED_operation_done (op);
453 op = NULL; 467 op = NULL;
454 result = SLAVE1_LINK_SUCCESS; 468 result = SLAVE1_LINK_SUCCESS;
455 GNUNET_assert (NULL != slave2); 469 FAIL_TEST (NULL != slave2);
456 GNUNET_assert (NULL != slave); 470 FAIL_TEST (NULL != slave);
457 op = GNUNET_TESTBED_peer_create (mc, slave, cfg, peer_create_cb, NULL); 471 op = GNUNET_TESTBED_peer_create (mc, slave, cfg, peer_create_cb, NULL);
458 GNUNET_assert (NULL != op); 472 FAIL_TEST (NULL != op);
459 break; 473 break;
460 case SLAVE1_PEER_START_SUCCESS: 474 case SLAVE1_PEER_START_SUCCESS:
461 check_operation_success (event); 475 check_operation_success (event);
462 GNUNET_TESTBED_operation_done (op); 476 GNUNET_TESTBED_operation_done (op);
463 result = SLAVE2_LINK_SUCCESS; 477 result = SLAVE2_LINK_SUCCESS;
464 op = GNUNET_TESTBED_peer_create (mc, slave2, cfg, peer_create_cb, NULL); 478 op = GNUNET_TESTBED_peer_create (mc, slave2, cfg, peer_create_cb, NULL);
465 GNUNET_assert (NULL != op); 479 FAIL_TEST (NULL != op);
466 break; 480 break;
467 case MASTER_PEER_CREATE_SUCCESS: 481 case MASTER_PEER_CREATE_SUCCESS:
468 GNUNET_assert (GNUNET_TESTBED_ET_PEER_START == event->type); 482 FAIL_TEST (GNUNET_TESTBED_ET_PEER_START == event->type);
469 GNUNET_assert (event->details.peer_start.host == host); 483 FAIL_TEST (event->details.peer_start.host == host);
470 GNUNET_assert (event->details.peer_start.peer == master_peer); 484 FAIL_TEST (event->details.peer_start.peer == master_peer);
471 GNUNET_TESTBED_operation_done (op); 485 GNUNET_TESTBED_operation_done (op);
472 result = MASTER_PEER_START_SUCCESS; 486 result = MASTER_PEER_START_SUCCESS;
473 slave = GNUNET_TESTBED_host_create_with_id (1, "127.0.0.1", NULL, 0); 487 slave = GNUNET_TESTBED_host_create_with_id (1, "127.0.0.1", NULL, 0);
474 GNUNET_assert (NULL != slave); 488 FAIL_TEST (NULL != slave);
475 rh = GNUNET_TESTBED_register_host (mc, slave, &registration_cont, NULL); 489 rh = GNUNET_TESTBED_register_host (mc, slave, &registration_cont, NULL);
476 GNUNET_assert (NULL != rh); 490 FAIL_TEST (NULL != rh);
477 break; 491 break;
478 case SLAVE1_PEER_CREATE_SUCCESS: 492 case SLAVE1_PEER_CREATE_SUCCESS:
479 GNUNET_assert (GNUNET_TESTBED_ET_PEER_START == event->type); 493 FAIL_TEST (GNUNET_TESTBED_ET_PEER_START == event->type);
480 GNUNET_assert (event->details.peer_start.host == slave); 494 FAIL_TEST (event->details.peer_start.host == slave);
481 GNUNET_assert (event->details.peer_start.peer == slave1_peer); 495 FAIL_TEST (event->details.peer_start.peer == slave1_peer);
482 GNUNET_TESTBED_operation_done (op); 496 GNUNET_TESTBED_operation_done (op);
483 result = SLAVE1_PEER_START_SUCCESS; 497 result = SLAVE1_PEER_START_SUCCESS;
484 op = GNUNET_TESTBED_controller_link (NULL, mc, slave2, slave, cfg, 498 op = GNUNET_TESTBED_controller_link (NULL, mc, slave2, slave, cfg,
485 GNUNET_YES); 499 GNUNET_YES);
486 break; 500 break;
487 case SLAVE2_PEER_CREATE_SUCCESS: 501 case SLAVE2_PEER_CREATE_SUCCESS:
488 GNUNET_assert (GNUNET_TESTBED_ET_PEER_STOP == event->type); 502 FAIL_TEST (GNUNET_TESTBED_ET_PEER_STOP == event->type);
489 GNUNET_assert (event->details.peer_stop.peer == slave1_peer); 503 FAIL_TEST (event->details.peer_stop.peer == slave1_peer);
490 GNUNET_TESTBED_operation_done (op); 504 GNUNET_TESTBED_operation_done (op);
491 result = SLAVE1_PEER_STOP_SUCCESS; 505 result = SLAVE1_PEER_STOP_SUCCESS;
492 op = GNUNET_TESTBED_peer_start (NULL, slave2_peer, NULL, NULL); 506 op = GNUNET_TESTBED_peer_start (NULL, slave2_peer, NULL, NULL);
493 GNUNET_assert (NULL != op); 507 FAIL_TEST (NULL != op);
494 break; 508 break;
495 case SLAVE1_PEER_STOP_SUCCESS: 509 case SLAVE1_PEER_STOP_SUCCESS:
496 GNUNET_assert (GNUNET_TESTBED_ET_PEER_START == event->type); 510 FAIL_TEST (GNUNET_TESTBED_ET_PEER_START == event->type);
497 GNUNET_assert (event->details.peer_start.host == slave2); 511 FAIL_TEST (event->details.peer_start.host == slave2);
498 GNUNET_assert (event->details.peer_start.peer == slave2_peer); 512 FAIL_TEST (event->details.peer_start.peer == slave2_peer);
499 GNUNET_TESTBED_operation_done (op); 513 GNUNET_TESTBED_operation_done (op);
500 result = SLAVE2_PEER_START_SUCCESS; 514 result = SLAVE2_PEER_START_SUCCESS;
501 op = GNUNET_TESTBED_overlay_connect (mc, NULL, NULL, master_peer, 515 op = GNUNET_TESTBED_overlay_connect (mc, NULL, NULL, master_peer,
502 slave2_peer); 516 slave2_peer);
503 break; 517 break;
504 case SLAVE2_PEER_START_SUCCESS: 518 case SLAVE2_PEER_START_SUCCESS:
505 GNUNET_assert (NULL != event); 519 FAIL_TEST (NULL != event);
506 GNUNET_assert (GNUNET_TESTBED_ET_CONNECT == event->type); 520 FAIL_TEST (GNUNET_TESTBED_ET_CONNECT == event->type);
507 GNUNET_assert (event->details.peer_connect.peer1 == master_peer); 521 FAIL_TEST (event->details.peer_connect.peer1 == master_peer);
508 GNUNET_assert (event->details.peer_connect.peer2 == slave2_peer); 522 FAIL_TEST (event->details.peer_connect.peer2 == slave2_peer);
509 result = MASTER_SLAVE2_PEERS_CONNECTED; 523 result = MASTER_SLAVE2_PEERS_CONNECTED;
510 GNUNET_TESTBED_operation_done (op); 524 GNUNET_TESTBED_operation_done (op);
511 op = NULL; 525 op = NULL;
@@ -515,19 +529,19 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
515 NULL); 529 NULL);
516 break; 530 break;
517 case MASTER_SLAVE2_PEERS_CONNECTED: 531 case MASTER_SLAVE2_PEERS_CONNECTED:
518 GNUNET_assert (GNUNET_TESTBED_ET_PEER_STOP == event->type); 532 FAIL_TEST (GNUNET_TESTBED_ET_PEER_STOP == event->type);
519 GNUNET_assert (event->details.peer_stop.peer == slave2_peer); 533 FAIL_TEST (event->details.peer_stop.peer == slave2_peer);
520 GNUNET_TESTBED_operation_done (op); 534 GNUNET_TESTBED_operation_done (op);
521 result = SLAVE2_PEER_STOP_SUCCESS; 535 result = SLAVE2_PEER_STOP_SUCCESS;
522 op = GNUNET_TESTBED_peer_destroy (slave1_peer); 536 op = GNUNET_TESTBED_peer_destroy (slave1_peer);
523 GNUNET_assert (NULL != op); 537 FAIL_TEST (NULL != op);
524 break; 538 break;
525 case SLAVE2_PEER_STOP_SUCCESS: 539 case SLAVE2_PEER_STOP_SUCCESS:
526 check_operation_success (event); 540 check_operation_success (event);
527 GNUNET_TESTBED_operation_done (op); 541 GNUNET_TESTBED_operation_done (op);
528 result = SLAVE1_PEER_DESTROY_SUCCESS; 542 result = SLAVE1_PEER_DESTROY_SUCCESS;
529 op = GNUNET_TESTBED_peer_destroy (slave2_peer); 543 op = GNUNET_TESTBED_peer_destroy (slave2_peer);
530 GNUNET_assert (NULL != op); 544 FAIL_TEST (NULL != op);
531 break; 545 break;
532 case SLAVE1_PEER_DESTROY_SUCCESS: 546 case SLAVE1_PEER_DESTROY_SUCCESS:
533 check_operation_success (event); 547 check_operation_success (event);
@@ -543,14 +557,14 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
543 op = NULL; 557 op = NULL;
544 result = SLAVE3_STARTED; 558 result = SLAVE3_STARTED;
545 op = GNUNET_TESTBED_get_slave_config (NULL, mc, slave3); 559 op = GNUNET_TESTBED_get_slave_config (NULL, mc, slave3);
546 GNUNET_assert (NULL != op); 560 FAIL_TEST (NULL != op);
547 break; 561 break;
548 case SLAVE3_STARTED: 562 case SLAVE3_STARTED:
549 GNUNET_assert (NULL != event); 563 FAIL_TEST (NULL != event);
550 GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type); 564 FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
551 GNUNET_assert (event->details.operation_finished.operation == op); 565 FAIL_TEST (event->details.operation_finished.operation == op);
552 GNUNET_assert (NULL == event->details.operation_finished.op_cls); 566 FAIL_TEST (NULL == event->details.operation_finished.op_cls);
553 GNUNET_assert (NULL == event->details.operation_finished.emsg); 567 FAIL_TEST (NULL == event->details.operation_finished.emsg);
554 cfg3 = GNUNET_CONFIGURATION_dup (event->details.operation_finished.generic); 568 cfg3 = GNUNET_CONFIGURATION_dup (event->details.operation_finished.generic);
555 GNUNET_TESTBED_operation_done (op); 569 GNUNET_TESTBED_operation_done (op);
556 result = SLAVE3_GET_CONFIG_SUCCESS; 570 result = SLAVE3_GET_CONFIG_SUCCESS;
@@ -572,7 +586,7 @@ controller_cb (void *cls, const struct GNUNET_TESTBED_EventInformation *event)
572 NULL); 586 NULL);
573 break; 587 break;
574 default: 588 default:
575 GNUNET_assert (0); 589 FAIL_TEST (0);
576 } 590 }
577} 591}
578 592
@@ -590,31 +604,31 @@ registration_cont (void *cls, const char *emsg)
590 switch (result) 604 switch (result)
591 { 605 {
592 case MASTER_PEER_START_SUCCESS: 606 case MASTER_PEER_START_SUCCESS:
593 GNUNET_assert (NULL == emsg); 607 FAIL_TEST (NULL == emsg);
594 GNUNET_assert (NULL != mc); 608 FAIL_TEST (NULL != mc);
595 result = SLAVE1_REGISTERED; 609 result = SLAVE1_REGISTERED;
596 slave2 = GNUNET_TESTBED_host_create_with_id (2, "127.0.0.1", NULL, 0); 610 slave2 = GNUNET_TESTBED_host_create_with_id (2, "127.0.0.1", NULL, 0);
597 GNUNET_assert (NULL != slave2); 611 FAIL_TEST (NULL != slave2);
598 rh = GNUNET_TESTBED_register_host (mc, slave2, &registration_cont, NULL); 612 rh = GNUNET_TESTBED_register_host (mc, slave2, &registration_cont, NULL);
599 GNUNET_assert (NULL != rh); 613 FAIL_TEST (NULL != rh);
600 break; 614 break;
601 case SLAVE1_REGISTERED: 615 case SLAVE1_REGISTERED:
602 GNUNET_assert (NULL == emsg); 616 FAIL_TEST (NULL == emsg);
603 GNUNET_assert (NULL != mc); 617 FAIL_TEST (NULL != mc);
604 result = SLAVE2_REGISTERED; 618 result = SLAVE2_REGISTERED;
605 GNUNET_assert (NULL != cfg); 619 FAIL_TEST (NULL != cfg);
606 op = GNUNET_TESTBED_controller_link (NULL, mc, slave, NULL, cfg, 620 op = GNUNET_TESTBED_controller_link (NULL, mc, slave, NULL, cfg,
607 GNUNET_YES); 621 GNUNET_YES);
608 GNUNET_assert (NULL != op); 622 FAIL_TEST (NULL != op);
609 break; 623 break;
610 case SLAVE2_PEER_DESTROY_SUCCESS: 624 case SLAVE2_PEER_DESTROY_SUCCESS:
611 GNUNET_assert (NULL == emsg); 625 FAIL_TEST (NULL == emsg);
612 GNUNET_assert (NULL != mc); 626 FAIL_TEST (NULL != mc);
613 GNUNET_assert (NULL == op); 627 FAIL_TEST (NULL == op);
614 result = SLAVE3_REGISTERED; 628 result = SLAVE3_REGISTERED;
615 op = GNUNET_TESTBED_controller_link (NULL, mc, slave3, NULL, cfg, 629 op = GNUNET_TESTBED_controller_link (NULL, mc, slave3, NULL, cfg,
616 GNUNET_YES); 630 GNUNET_YES);
617 GNUNET_assert (NULL != op); 631 FAIL_TEST (NULL != op);
618 break; 632 break;
619 default: 633 default:
620 GNUNET_break (0); 634 GNUNET_break (0);
@@ -638,7 +652,7 @@ status_cb (void *cls, const struct GNUNET_CONFIGURATION_Handle *config,
638 switch (result) 652 switch (result)
639 { 653 {
640 case INIT: 654 case INIT:
641 GNUNET_assert (GNUNET_OK == status); 655 FAIL_TEST (GNUNET_OK == status);
642 event_mask = 0; 656 event_mask = 0;
643 event_mask |= (1L << GNUNET_TESTBED_ET_PEER_START); 657 event_mask |= (1L << GNUNET_TESTBED_ET_PEER_START);
644 event_mask |= (1L << GNUNET_TESTBED_ET_PEER_STOP); 658 event_mask |= (1L << GNUNET_TESTBED_ET_PEER_STOP);
@@ -646,10 +660,10 @@ status_cb (void *cls, const struct GNUNET_CONFIGURATION_Handle *config,
646 event_mask |= (1L << GNUNET_TESTBED_ET_OPERATION_FINISHED); 660 event_mask |= (1L << GNUNET_TESTBED_ET_OPERATION_FINISHED);
647 mc = GNUNET_TESTBED_controller_connect (config, host, event_mask, 661 mc = GNUNET_TESTBED_controller_connect (config, host, event_mask,
648 &controller_cb, NULL); 662 &controller_cb, NULL);
649 GNUNET_assert (NULL != mc); 663 FAIL_TEST (NULL != mc);
650 result = MASTER_STARTED; 664 result = MASTER_STARTED;
651 op = GNUNET_TESTBED_peer_create (mc, host, cfg, peer_create_cb, NULL); 665 op = GNUNET_TESTBED_peer_create (mc, host, cfg, peer_create_cb, NULL);
652 GNUNET_assert (NULL != op); 666 FAIL_TEST (NULL != op);
653 break; 667 break;
654 default: 668 default:
655 GNUNET_break (0); 669 GNUNET_break (0);
@@ -704,7 +718,7 @@ run (void *cls, char *const *args, const char *cfgfile,
704 const struct GNUNET_CONFIGURATION_Handle *config) 718 const struct GNUNET_CONFIGURATION_Handle *config)
705{ 719{
706 host = GNUNET_TESTBED_host_create (NULL, NULL, 0); 720 host = GNUNET_TESTBED_host_create (NULL, NULL, 0);
707 GNUNET_assert (NULL != host); 721 FAIL_TEST (NULL != host);
708 if (NULL == 722 if (NULL ==
709 (hc_handle = 723 (hc_handle =
710 GNUNET_TESTBED_is_host_habitable (host, config, &host_habitable_cb, 724 GNUNET_TESTBED_is_host_habitable (host, config, &host_habitable_cb,