diff options
-rw-r--r-- | src/testbed/test_testbed_api_controllerlink.c | 140 |
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 | */ |
267 | static enum Stage result; | 267 | static 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) | |||
315 | static void | 329 | static void |
316 | do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 330 | do_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) | |||
374 | static void | 388 | static void |
375 | peer_create_cb (void *cls, struct GNUNET_TESTBED_Peer *peer, const char *emsg) | 389 | peer_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) | |||
416 | static void | 430 | static void |
417 | check_operation_success (const struct GNUNET_TESTBED_EventInformation *event) | 431 | check_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, ®istration_cont, NULL); | 489 | rh = GNUNET_TESTBED_register_host (mc, slave, ®istration_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, ®istration_cont, NULL); | 612 | rh = GNUNET_TESTBED_register_host (mc, slave2, ®istration_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, |