| 280 | | |
| 281 | | destroy_testbed(testbed); |
| 282 | | } |
| 283 | | END_TEST |
| 284 | | |
| 285 | | START_TEST (single_connect_timeout) |
| 286 | | { |
| 287 | | char *testbed = setup_testbed("sync_easy_new"); |
| 288 | | |
| 289 | | setenv("CONNECT_TIMEOUT", "2", TRUE); |
| 290 | | |
| 291 | | OSyncEnv *osync = init_env(); |
| 292 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 293 | | |
| 294 | | OSyncError *error = NULL; |
| 295 | | OSyncEngine *engine = osengine_new(group, &error); |
| 296 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 297 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 298 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 299 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 300 | | osengine_init(engine, &error); |
| 301 | | |
| 302 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 303 | | fail_unless(osync_error_is_set(&error), NULL); |
| 304 | | |
| 305 | | fail_unless(num_member_connect_errors == 1, NULL); |
| 306 | | fail_unless(num_connected == 1, NULL); |
| 307 | | fail_unless(num_disconnected == 1, NULL); |
| 308 | | fail_unless(num_member_sent_changes == 0, NULL); |
| 309 | | fail_unless(num_engine_errors == 1, NULL); |
| 310 | | fail_unless(num_engine_successfull == 0, NULL); |
| 311 | | |
| 312 | | osync_error_free(&error); |
| 313 | | osengine_finalize(engine); |
| 314 | | osengine_free(engine); |
| 315 | | |
| 316 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL); |
| 317 | | |
| 318 | | destroy_testbed(testbed); |
| 319 | | } |
| 320 | | END_TEST |
| 321 | | |
| 322 | | START_TEST (dual_connect_timeout) |
| 323 | | { |
| 324 | | char *testbed = setup_testbed("sync_easy_new"); |
| 325 | | |
| 326 | | setenv("CONNECT_TIMEOUT", "3", TRUE); |
| 327 | | |
| 328 | | OSyncEnv *osync = init_env(); |
| 329 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 330 | | |
| 331 | | OSyncError *error = NULL; |
| 332 | | OSyncEngine *engine = osengine_new(group, &error); |
| 333 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 334 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 335 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 336 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 337 | | osengine_init(engine, &error); |
| 338 | | |
| 339 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 340 | | fail_unless(osync_error_is_set(&error), NULL); |
| 341 | | |
| 342 | | fail_unless(num_member_connect_errors == 2, NULL); |
| 343 | | fail_unless(num_connected == 0, NULL); |
| 344 | | fail_unless(num_disconnected == 0, NULL); |
| 345 | | fail_unless(num_member_sent_changes == 0, NULL); |
| 346 | | fail_unless(num_engine_errors == 1, NULL); |
| 347 | | fail_unless(num_engine_successfull == 0, NULL); |
| 348 | | |
| 349 | | osync_error_free(&error); |
| 350 | | osengine_finalize(engine); |
| 351 | | osengine_free(engine); |
| 352 | | |
| 353 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL); |
| 354 | | |
| 355 | | destroy_testbed(testbed); |
| 356 | | } |
| 357 | | END_TEST |
| 358 | | |
| 359 | | START_TEST (one_of_three_timeout) |
| 360 | | { |
| 361 | | char *testbed = setup_testbed("multisync_easy_new"); |
| 362 | | |
| 363 | | setenv("CONNECT_TIMEOUT", "2", TRUE); |
| 364 | | |
| 365 | | OSyncEnv *osync = init_env(); |
| 366 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 367 | | |
| 368 | | OSyncError *error = NULL; |
| 369 | | OSyncEngine *engine = osengine_new(group, &error); |
| 370 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 371 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 372 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 373 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 374 | | osengine_init(engine, &error); |
| 375 | | |
| 376 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 377 | | fail_unless(osync_error_is_set(&error), NULL); |
| 378 | | |
| 379 | | fail_unless(num_member_connect_errors == 1, NULL); |
| 380 | | fail_unless(num_connected == 2, NULL); |
| 381 | | fail_unless(num_disconnected == 2, NULL); |
| 382 | | fail_unless(num_member_sent_changes == 0, NULL); |
| 383 | | fail_unless(num_engine_errors == 1, NULL); |
| 384 | | fail_unless(num_engine_successfull == 0, NULL); |
| 385 | | |
| 386 | | osync_error_free(&error); |
| 387 | | osengine_finalize(engine); |
| 388 | | osengine_free(engine); |
| 389 | | |
| 390 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL); |
| 391 | | |
| 392 | | destroy_testbed(testbed); |
| 393 | | } |
| 394 | | END_TEST |
| 395 | | |
| 396 | | START_TEST (timeout_and_error) |
| 397 | | { |
| 398 | | char *testbed = setup_testbed("multisync_easy_new"); |
| 399 | | |
| 400 | | setenv("CONNECT_TIMEOUT", "2", TRUE); |
| 401 | | setenv("CONNECT_ERROR", "4", TRUE); |
| 402 | | |
| 403 | | OSyncEnv *osync = init_env(); |
| 404 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 405 | | |
| 406 | | OSyncError *error = NULL; |
| 407 | | OSyncEngine *engine = osengine_new(group, &error); |
| 408 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 409 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 410 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 411 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 412 | | osengine_init(engine, &error); |
| 413 | | |
| 414 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 415 | | fail_unless(osync_error_is_set(&error), NULL); |
| 416 | | |
| 417 | | fail_unless(num_member_connect_errors == 2, NULL); |
| 418 | | fail_unless(num_connected == 1, NULL); |
| 419 | | fail_unless(num_disconnected == 1, NULL); |
| 420 | | fail_unless(num_member_sent_changes == 0, NULL); |
| 421 | | fail_unless(num_engine_errors == 1, NULL); |
| 422 | | fail_unless(num_engine_successfull == 0, NULL); |
| 423 | | |
| 424 | | osync_error_free(&error); |
| 425 | | osengine_finalize(engine); |
| 426 | | osengine_free(engine); |
| 427 | | |
| 428 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL); |
| 593 | | START_TEST (one_of_three_get_changes_timeout) |
| 594 | | { |
| 595 | | char *testbed = setup_testbed("multisync_conflict_data_choose2"); |
| 596 | | |
| 597 | | setenv("GET_CHANGES_TIMEOUT", "1", TRUE); |
| 598 | | setenv("NO_COMMITTED_ALL_CHECK", "1", TRUE); |
| 599 | | |
| 600 | | OSyncEnv *osync = init_env(); |
| 601 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 602 | | |
| 603 | | OSyncError *error = NULL; |
| 604 | | OSyncEngine *engine = osengine_new(group, &error); |
| 605 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 606 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 607 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 608 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 609 | | osengine_init(engine, &error); |
| 610 | | |
| 611 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 612 | | fail_unless(osync_error_is_set(&error), NULL); |
| 613 | | |
| 614 | | fail_unless(num_member_connect_errors == 0, NULL); |
| 615 | | fail_unless(num_connected == 3, NULL); |
| 616 | | fail_unless(num_disconnected == 3, NULL); |
| 617 | | fail_unless(num_member_get_changes_errors == 1, NULL); |
| 618 | | fail_unless(num_member_sent_changes == 2, NULL); |
| 619 | | fail_unless(num_read == 2, NULL); |
| 620 | | fail_unless(num_written == 0, NULL); |
| 621 | | fail_unless(num_conflicts == 0, NULL); |
| 622 | | fail_unless(num_engine_errors == 1, NULL); |
| 623 | | fail_unless(num_engine_successfull == 0, NULL); |
| 624 | | |
| 625 | | osync_error_free(&error); |
| 626 | | osengine_finalize(engine); |
| 627 | | osengine_free(engine); |
| 628 | | |
| 629 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL); |
| 630 | | |
| 631 | | destroy_testbed(testbed); |
| 632 | | } |
| 633 | | END_TEST |
| 634 | | |
| 635 | | START_TEST (get_changes_timeout_and_error) |
| 636 | | { |
| 637 | | char *testbed = setup_testbed("multisync_conflict_data_choose2"); |
| 638 | | |
| 639 | | setenv("GET_CHANGES_TIMEOUT", "3", TRUE); |
| 640 | | setenv("GET_CHANGES_ERROR", "4", TRUE); |
| 641 | | |
| 642 | | OSyncEnv *osync = init_env(); |
| 643 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 644 | | |
| 645 | | OSyncError *error = NULL; |
| 646 | | OSyncEngine *engine = osengine_new(group, &error); |
| 647 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 648 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 649 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 650 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 651 | | osengine_init(engine, &error); |
| 652 | | |
| 653 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 654 | | fail_unless(osync_error_is_set(&error), NULL); |
| 655 | | |
| 656 | | fail_unless(num_member_connect_errors == 0, NULL); |
| 657 | | fail_unless(num_connected == 3, NULL); |
| 658 | | fail_unless(num_disconnected == 3, NULL); |
| 659 | | fail_unless(num_member_sent_changes == 0, NULL); |
| 660 | | fail_unless(num_read == 0, NULL); |
| 661 | | fail_unless(num_written == 0, NULL); |
| 662 | | fail_unless(num_conflicts == 0, NULL); |
| 663 | | fail_unless(num_engine_errors == 1, NULL); |
| 664 | | fail_unless(num_engine_successfull == 0, NULL); |
| 665 | | |
| 666 | | osync_error_free(&error); |
| 667 | | osengine_finalize(engine); |
| 668 | | osengine_free(engine); |
| 669 | | |
| 670 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL); |
| 671 | | |
| 672 | | destroy_testbed(testbed); |
| 673 | | } |
| 674 | | END_TEST |
| 675 | | |
| 676 | | START_TEST (get_changes_timeout_sleep) |
| 677 | | { |
| 678 | | char *testbed = setup_testbed("multisync_conflict_data_choose2"); |
| 679 | | |
| 680 | | setenv("GET_CHANGES_TIMEOUT2", "7", TRUE); |
| 681 | | setenv("NO_COMMITTED_ALL_CHECK", "1", TRUE); |
| 682 | | |
| 683 | | OSyncEnv *osync = init_env(); |
| 684 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 685 | | |
| 686 | | OSyncError *error = NULL; |
| 687 | | OSyncEngine *engine = osengine_new(group, &error); |
| 688 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 689 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 690 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 691 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 692 | | osengine_init(engine, &error); |
| 693 | | |
| 694 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 695 | | fail_unless(osync_error_is_set(&error), NULL); |
| 696 | | |
| 697 | | mark_point(); |
| 698 | | osync_error_free(&error); |
| 699 | | mark_point(); |
| 700 | | osengine_finalize(engine); |
| 701 | | mark_point(); |
| 702 | | osengine_free(engine); |
| 703 | | |
| 704 | | fail_unless(num_member_connect_errors == 0, NULL); |
| 705 | | fail_unless(num_connected == 3, NULL); |
| 706 | | fail_unless(num_disconnected == 3, NULL); |
| 707 | | fail_unless(num_member_sent_changes == 0, NULL); |
| 708 | | fail_unless(num_read == 0, NULL); |
| 709 | | fail_unless(num_written == 0, NULL); |
| 710 | | fail_unless(num_conflicts == 0, NULL); |
| 711 | | fail_unless(num_engine_errors == 1, NULL); |
| 712 | | fail_unless(num_engine_successfull == 0, NULL); |
| 713 | | |
| 714 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL); |
| 715 | | |
| 716 | | destroy_testbed(testbed); |
| 717 | | } |
| 718 | | END_TEST |
| 719 | | |
| 772 | | |
| 773 | | OSyncEnv *osync = init_env(); |
| 774 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 775 | | |
| 776 | | OSyncError *error = NULL; |
| 777 | | OSyncEngine *engine = osengine_new(group, &error); |
| 778 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 779 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 780 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 781 | | osengine_set_mappingstatus_callback(engine, mapping_status, NULL); |
| 782 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 783 | | osengine_init(engine, &error); |
| 784 | | |
| 785 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 786 | | fail_unless(osync_error_is_set(&error), NULL); |
| 787 | | |
| 788 | | mark_point(); |
| 789 | | osync_error_free(&error); |
| 790 | | mark_point(); |
| 791 | | osengine_finalize(engine); |
| 792 | | mark_point(); |
| 793 | | osengine_free(engine); |
| 794 | | |
| 795 | | fail_unless(num_member_connect_errors == 0, NULL); |
| 796 | | fail_unless(num_connected == 3, NULL); |
| 797 | | fail_unless(num_disconnected == 3, NULL); |
| 798 | | fail_unless(num_member_sent_changes == 3, NULL); |
| 799 | | fail_unless(num_read == 1, NULL); |
| 800 | | fail_unless(num_written == 0, NULL); |
| 801 | | fail_unless(num_written_errors == 2, NULL); |
| 802 | | fail_unless(num_mapping_errors == 2, NULL); |
| 803 | | fail_unless(num_conflicts == 0, NULL); |
| 804 | | fail_unless(num_engine_errors == 1, NULL); |
| 805 | | fail_unless(num_engine_successfull == 0, NULL); |
| 806 | | |
| 807 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL); |
| 808 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL); |
| 809 | | |
| 810 | | destroy_testbed(testbed); |
| 811 | | } |
| 812 | | END_TEST |
| 813 | | |
| 814 | | START_TEST (single_commit_timeout) |
| 815 | | { |
| 816 | | char *testbed = setup_testbed("multisync_easy_new"); |
| 817 | | |
| 818 | | setenv("COMMIT_TIMEOUT", "4", TRUE); |
| 819 | | |
| 820 | | OSyncEnv *osync = init_env(); |
| 821 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 822 | | |
| 823 | | OSyncError *error = NULL; |
| 824 | | OSyncEngine *engine = osengine_new(group, &error); |
| 825 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 826 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 827 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 828 | | osengine_set_mappingstatus_callback(engine, mapping_status, NULL); |
| 829 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 830 | | osengine_init(engine, &error); |
| 831 | | |
| 832 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 833 | | fail_unless(osync_error_is_set(&error), NULL); |
| 834 | | |
| 835 | | mark_point(); |
| 836 | | osync_error_free(&error); |
| 837 | | mark_point(); |
| 838 | | osengine_finalize(engine); |
| 839 | | mark_point(); |
| 840 | | osengine_free(engine); |
| 841 | | |
| 842 | | fail_unless(num_member_connect_errors == 0, NULL); |
| 843 | | fail_unless(num_connected == 3, NULL); |
| 844 | | fail_unless(num_disconnected == 3, NULL); |
| 845 | | fail_unless(num_member_sent_changes == 3, NULL); |
| 846 | | fail_unless(num_read == 1, NULL); |
| 847 | | fail_unless(num_written == 1, NULL); |
| 848 | | fail_unless(num_written_errors == 1, NULL); |
| 849 | | fail_unless(num_mapping_errors == 1, NULL); |
| 850 | | fail_unless(num_conflicts == 0, NULL); |
| 851 | | fail_unless(num_engine_errors == 1, NULL); |
| 852 | | fail_unless(num_engine_successfull == 0, NULL); |
| 853 | | |
| 854 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL); |
| 855 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL); |
| 856 | | |
| 857 | | destroy_testbed(testbed); |
| 858 | | } |
| 859 | | END_TEST |
| 860 | | |
| 861 | | START_TEST (dual_commit_timeout) |
| 862 | | { |
| 863 | | char *testbed = setup_testbed("multisync_easy_new"); |
| 864 | | |
| 865 | | setenv("COMMIT_TIMEOUT", "6", TRUE); |
| 866 | | |
| 867 | | OSyncEnv *osync = init_env(); |
| 868 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 869 | | |
| 870 | | OSyncError *error = NULL; |
| 871 | | OSyncEngine *engine = osengine_new(group, &error); |
| 872 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 873 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 874 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 875 | | osengine_set_mappingstatus_callback(engine, mapping_status, NULL); |
| 876 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 877 | | osengine_init(engine, &error); |
| 878 | | |
| 879 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 880 | | fail_unless(osync_error_is_set(&error), NULL); |
| 881 | | |
| 882 | | mark_point(); |
| 883 | | osync_error_free(&error); |
| 884 | | mark_point(); |
| 885 | | osengine_finalize(engine); |
| 886 | | mark_point(); |
| 887 | | osengine_free(engine); |
| 888 | | |
| 889 | | fail_unless(num_member_connect_errors == 0, NULL); |
| 890 | | fail_unless(num_connected == 3, NULL); |
| 891 | | fail_unless(num_disconnected == 3, NULL); |
| 892 | | fail_unless(num_member_sent_changes == 3, NULL); |
| 893 | | fail_unless(num_read == 1, NULL); |
| 894 | | fail_unless(num_written == 0, NULL); |
| 895 | | fail_unless(num_written_errors == 2, NULL); |
| 896 | | fail_unless(num_mapping_errors == 2, NULL); |
| 897 | | fail_unless(num_conflicts == 0, NULL); |
| 898 | | fail_unless(num_engine_errors == 1, NULL); |
| 899 | | fail_unless(num_engine_successfull == 0, NULL); |
| 900 | | |
| 901 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL); |
| 902 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL); |
| 903 | | |
| 904 | | destroy_testbed(testbed); |
| 905 | | } |
| 906 | | END_TEST |
| 907 | | |
| 908 | | START_TEST (commit_timeout_and_error) |
| 909 | | { |
| 910 | | char *testbed = setup_testbed("multisync_easy_new"); |
| 911 | | |
| 912 | | setenv("COMMIT_TIMEOUT", "4", TRUE); |
| 913 | | setenv("COMMIT_ERROR", "2", TRUE); |
| 914 | | |
| 915 | | OSyncEnv *osync = init_env(); |
| 916 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 917 | | |
| 918 | | OSyncError *error = NULL; |
| 919 | | OSyncEngine *engine = osengine_new(group, &error); |
| 920 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 921 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 922 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 923 | | osengine_set_mappingstatus_callback(engine, mapping_status, NULL); |
| 924 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 925 | | osengine_init(engine, &error); |
| 926 | | |
| 927 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 928 | | fail_unless(osync_error_is_set(&error), NULL); |
| 929 | | |
| 930 | | mark_point(); |
| 931 | | osync_error_free(&error); |
| 932 | | mark_point(); |
| 933 | | osengine_finalize(engine); |
| 934 | | mark_point(); |
| 935 | | osengine_free(engine); |
| 936 | | |
| 937 | | fail_unless(num_member_connect_errors == 0, NULL); |
| 938 | | fail_unless(num_connected == 3, NULL); |
| 939 | | fail_unless(num_disconnected == 3, NULL); |
| 940 | | fail_unless(num_member_sent_changes == 3, NULL); |
| 941 | | fail_unless(num_read == 1, NULL); |
| 942 | | fail_unless(num_written == 0, NULL); |
| 943 | | fail_unless(num_written_errors == 2, NULL); |
| 944 | | fail_unless(num_mapping_errors == 2, NULL); |
| 945 | | fail_unless(num_conflicts == 0, NULL); |
| 946 | | fail_unless(num_engine_errors == 1, NULL); |
| 947 | | fail_unless(num_engine_successfull == 0, NULL); |
| 948 | | |
| 949 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL); |
| 950 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL); |
| 951 | | |
| 952 | | destroy_testbed(testbed); |
| 953 | | } |
| 954 | | END_TEST |
| 955 | | |
| 956 | | START_TEST (commit_timeout_and_error2) |
| 957 | | { |
| 958 | | char *testbed = setup_testbed("multisync_easy_new"); |
| 959 | | |
| 960 | | setenv("COMMIT_TIMEOUT", "2", TRUE); |
| 961 | | setenv("COMMIT_ERROR", "4", TRUE); |
| 1312 | | |
| 1313 | | OSyncEnv *osync = init_env(); |
| 1314 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 1315 | | |
| 1316 | | OSyncError *error = NULL; |
| 1317 | | OSyncEngine *engine = osengine_new(group, &error); |
| 1318 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 1319 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 1320 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 1321 | | osengine_set_mappingstatus_callback(engine, mapping_status, NULL); |
| 1322 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 1323 | | osengine_init(engine, &error); |
| 1324 | | |
| 1325 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 1326 | | fail_unless(osync_error_is_set(&error), NULL); |
| 1327 | | |
| 1328 | | mark_point(); |
| 1329 | | osync_error_free(&error); |
| 1330 | | mark_point(); |
| 1331 | | osengine_finalize(engine); |
| 1332 | | mark_point(); |
| 1333 | | osengine_free(engine); |
| 1334 | | |
| 1335 | | fail_unless(num_member_connect_errors == 0, NULL); |
| 1336 | | fail_unless(num_connected == 3, NULL); |
| 1337 | | fail_unless(num_disconnected == 3, NULL); |
| 1338 | | fail_unless(num_member_sent_changes == 3, NULL); |
| 1339 | | fail_unless(num_read == 1, NULL); |
| 1340 | | fail_unless(num_written == 2, NULL); |
| 1341 | | fail_unless(num_written_errors == 0, NULL); |
| 1342 | | fail_unless(num_mapping_errors == 0, NULL); |
| 1343 | | fail_unless(num_conflicts == 0, NULL); |
| 1344 | | fail_unless(num_member_sync_done_errors == 3, NULL); |
| 1345 | | fail_unless(num_engine_errors == 1, NULL); |
| 1346 | | fail_unless(num_engine_successfull == 0, NULL); |
| 1347 | | |
| 1348 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL); |
| 1349 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL); |
| 1350 | | |
| 1351 | | destroy_testbed(testbed); |
| 1352 | | } |
| 1353 | | END_TEST |
| 1354 | | |
| 1355 | | START_TEST (single_sync_done_timeout) |
| 1356 | | { |
| 1357 | | char *testbed = setup_testbed("multisync_easy_new"); |
| 1358 | | |
| 1359 | | setenv("SYNC_DONE_TIMEOUT", "4", TRUE); |
| 1360 | | |
| 1361 | | OSyncEnv *osync = init_env(); |
| 1362 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 1363 | | |
| 1364 | | OSyncError *error = NULL; |
| 1365 | | OSyncEngine *engine = osengine_new(group, &error); |
| 1366 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 1367 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 1368 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 1369 | | osengine_set_mappingstatus_callback(engine, mapping_status, NULL); |
| 1370 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 1371 | | osengine_init(engine, &error); |
| 1372 | | |
| 1373 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 1374 | | fail_unless(osync_error_is_set(&error), NULL); |
| 1375 | | |
| 1376 | | mark_point(); |
| 1377 | | osync_error_free(&error); |
| 1378 | | mark_point(); |
| 1379 | | osengine_finalize(engine); |
| 1380 | | mark_point(); |
| 1381 | | osengine_free(engine); |
| 1382 | | |
| 1383 | | fail_unless(num_member_connect_errors == 0, NULL); |
| 1384 | | fail_unless(num_connected == 3, NULL); |
| 1385 | | fail_unless(num_disconnected == 3, NULL); |
| 1386 | | fail_unless(num_member_sent_changes == 3, NULL); |
| 1387 | | fail_unless(num_read == 1, NULL); |
| 1388 | | fail_unless(num_written == 2, NULL); |
| 1389 | | fail_unless(num_written_errors == 0, NULL); |
| 1390 | | fail_unless(num_mapping_errors == 0, NULL); |
| 1391 | | fail_unless(num_conflicts == 0, NULL); |
| 1392 | | fail_unless(num_member_sync_done_errors == 1, NULL); |
| 1393 | | fail_unless(num_engine_errors == 1, NULL); |
| 1394 | | fail_unless(num_engine_successfull == 0, NULL); |
| 1395 | | |
| 1396 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL); |
| 1397 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL); |
| 1398 | | |
| 1399 | | destroy_testbed(testbed); |
| 1400 | | } |
| 1401 | | END_TEST |
| 1402 | | |
| 1403 | | START_TEST (dual_sync_done_timeout) |
| 1404 | | { |
| 1405 | | char *testbed = setup_testbed("multisync_easy_new"); |
| 1406 | | |
| 1407 | | setenv("SYNC_DONE_TIMEOUT", "6", TRUE); |
| 1408 | | |
| 1409 | | OSyncEnv *osync = init_env(); |
| 1410 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 1411 | | |
| 1412 | | OSyncError *error = NULL; |
| 1413 | | OSyncEngine *engine = osengine_new(group, &error); |
| 1414 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 1415 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 1416 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 1417 | | osengine_set_mappingstatus_callback(engine, mapping_status, NULL); |
| 1418 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 1419 | | osengine_init(engine, &error); |
| 1420 | | |
| 1421 | | fail_unless(!synchronize_once(engine, &error), NULL); |
| 1422 | | fail_unless(osync_error_is_set(&error), NULL); |
| 1423 | | |
| 1424 | | mark_point(); |
| 1425 | | osync_error_free(&error); |
| 1426 | | mark_point(); |
| 1427 | | osengine_finalize(engine); |
| 1428 | | mark_point(); |
| 1429 | | osengine_free(engine); |
| 1430 | | |
| 1431 | | fail_unless(num_member_connect_errors == 0, NULL); |
| 1432 | | fail_unless(num_connected == 3, NULL); |
| 1433 | | fail_unless(num_disconnected == 3, NULL); |
| 1434 | | fail_unless(num_member_sent_changes == 3, NULL); |
| 1435 | | fail_unless(num_read == 1, NULL); |
| 1436 | | fail_unless(num_written == 2, NULL); |
| 1437 | | fail_unless(num_written_errors == 0, NULL); |
| 1438 | | fail_unless(num_mapping_errors == 0, NULL); |
| 1439 | | fail_unless(num_conflicts == 0, NULL); |
| 1440 | | fail_unless(num_member_sync_done_errors == 2, NULL); |
| 1441 | | fail_unless(num_engine_errors == 1, NULL); |
| 1442 | | fail_unless(num_engine_successfull == 0, NULL); |
| 1443 | | |
| 1444 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL); |
| 1445 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL); |
| 1446 | | |
| 1447 | | destroy_testbed(testbed); |
| 1448 | | } |
| 1449 | | END_TEST |
| 1450 | | |
| 1451 | | START_TEST (sync_done_timeout_and_error) |
| 1452 | | { |
| 1453 | | char *testbed = setup_testbed("multisync_easy_new"); |
| 1454 | | |
| 1455 | | setenv("SYNC_DONE_TIMEOUT", "5", TRUE); |
| 1456 | | setenv("SYNC_DONE_ERROR", "2", TRUE); |
| 1647 | | START_TEST (single_disconnect_timeout) |
| 1648 | | { |
| 1649 | | char *testbed = setup_testbed("multisync_easy_new"); |
| 1650 | | |
| 1651 | | setenv("DISCONNECT_TIMEOUT", "4", TRUE); |
| 1652 | | |
| 1653 | | OSyncEnv *osync = init_env(); |
| 1654 | | OSyncGroup *group = osync_group_load(osync, "configs/group", NULL); |
| 1655 | | |
| 1656 | | OSyncError *error = NULL; |
| 1657 | | OSyncEngine *engine = osengine_new(group, &error); |
| 1658 | | osengine_set_memberstatus_callback(engine, member_status, NULL); |
| 1659 | | osengine_set_enginestatus_callback(engine, engine_status, NULL); |
| 1660 | | osengine_set_changestatus_callback(engine, entry_status, NULL); |
| 1661 | | osengine_set_mappingstatus_callback(engine, mapping_status, NULL); |
| 1662 | | osengine_set_conflict_callback(engine, conflict_handler_choose_modified, GINT_TO_POINTER(3)); |
| 1663 | | osengine_init(engine, &error); |
| 1664 | | |
| 1665 | | fail_unless(synchronize_once(engine, &error), NULL); |
| 1666 | | fail_unless(!osync_error_is_set(&error), NULL); |
| 1667 | | |
| 1668 | | mark_point(); |
| 1669 | | osync_error_free(&error); |
| 1670 | | mark_point(); |
| 1671 | | osengine_finalize(engine); |
| 1672 | | mark_point(); |
| 1673 | | osengine_free(engine); |
| 1674 | | |
| 1675 | | fail_unless(num_member_connect_errors == 0, NULL); |
| 1676 | | fail_unless(num_connected == 3, NULL); |
| 1677 | | fail_unless(num_disconnected == 2, NULL); |
| 1678 | | fail_unless(num_member_sent_changes == 3, NULL); |
| 1679 | | fail_unless(num_read == 1, NULL); |
| 1680 | | fail_unless(num_written == 2, NULL); |
| 1681 | | fail_unless(num_written_errors == 0, NULL); |
| 1682 | | fail_unless(num_mapping_errors == 0, NULL); |
| 1683 | | fail_unless(num_conflicts == 0, NULL); |
| 1684 | | fail_unless(num_member_sync_done_errors == 0, NULL); |
| 1685 | | fail_unless(num_member_disconnect_errors == 1, NULL); |
| 1686 | | fail_unless(num_engine_errors == 0, NULL); |
| 1687 | | fail_unless(num_engine_successfull == 1, NULL); |
| 1688 | | |
| 1689 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL); |
| 1690 | | fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL); |
| 1691 | | |
| 1692 | | destroy_testbed(testbed); |
| 1693 | | } |
| 1694 | | END_TEST |
| 1695 | | |
| 1696 | | START_TEST (dual_disconnect_timeout) |
| 1697 | | { |
| 1698 | | char *testbed = setup_testbed("multisync_easy_new"); |