Changeset 3639

Show
Ignore:
Timestamp:
09/06/08 00:39:48 (3 months ago)
Author:
prahal
Message:

Add new conversion testcase to be assured we won't break the way the path is build.
This is a corner case whose sole use is to test conformance (it helped me avoid bad optimisations).

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/tests/format-tests/check_conv.c

    r3324 r3639  
    952952        osync_objformat_unref(format3); 
    953953        osync_objformat_unref(format4); 
     954         
     955        destroy_testbed(testbed); 
     956} 
     957END_TEST 
     958 
     959START_TEST (conv_find_multi_path_multi_target) 
     960{ 
     961        char *testbed = setup_testbed(NULL); 
     962         
     963        OSyncError *error = NULL; 
     964        OSyncFormatEnv *env = osync_format_env_new(&error); 
     965        fail_unless(env != NULL, NULL); 
     966        fail_unless(error == NULL, NULL); 
     967         
     968        OSyncObjFormat *format1 = osync_objformat_new("format1", "objtype", &error); 
     969        fail_unless(format1 != NULL, NULL); 
     970        fail_unless(error == NULL, NULL); 
     971        osync_format_env_register_objformat(env, format1); 
     972         
     973        OSyncObjFormat *format2 = osync_objformat_new("format2", "objtype", &error); 
     974        fail_unless(format2 != NULL, NULL); 
     975        fail_unless(error == NULL, NULL); 
     976        osync_format_env_register_objformat(env, format2); 
     977         
     978        OSyncObjFormat *format3 = osync_objformat_new("format3", "objtype", &error); 
     979        fail_unless(format3 != NULL, NULL); 
     980        fail_unless(error == NULL, NULL); 
     981        osync_format_env_register_objformat(env, format3); 
     982         
     983        OSyncObjFormat *format4 = osync_objformat_new("format4", "objtype", &error); 
     984        fail_unless(format4 != NULL, NULL); 
     985        fail_unless(error == NULL, NULL); 
     986        osync_format_env_register_objformat(env, format4); 
     987 
     988        OSyncObjFormat *format5 = osync_objformat_new("format5", "objtype", &error); 
     989        fail_unless(format5 != NULL, NULL); 
     990        fail_unless(error == NULL, NULL); 
     991        osync_format_env_register_objformat(env, format5); 
     992         
     993        OSyncFormatConverter *converter1 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format2, convert_func, &error); 
     994        fail_unless(converter1 != NULL, NULL); 
     995        fail_unless(error == NULL, NULL); 
     996        osync_format_env_register_converter(env, converter1); 
     997        osync_converter_unref(converter1); 
     998         
     999        OSyncFormatConverter *converter2 = osync_converter_new(OSYNC_CONVERTER_CONV, format2, format4, convert_func, &error); 
     1000        fail_unless(converter2 != NULL, NULL); 
     1001        fail_unless(error == NULL, NULL); 
     1002        osync_format_env_register_converter(env, converter2); 
     1003        osync_converter_unref(converter2); 
     1004         
     1005        OSyncFormatConverter *converter3 = osync_converter_new(OSYNC_CONVERTER_CONV, format1, format3, convert_func, &error); 
     1006        fail_unless(converter3 != NULL, NULL); 
     1007        fail_unless(error == NULL, NULL); 
     1008        osync_format_env_register_converter(env, converter3); 
     1009        osync_converter_unref(converter3); 
     1010         
     1011        OSyncFormatConverter *converter4 = osync_converter_new(OSYNC_CONVERTER_CONV, format3, format4, convert_func, &error); 
     1012        fail_unless(converter4 != NULL, NULL); 
     1013        fail_unless(error == NULL, NULL); 
     1014        osync_format_env_register_converter(env, converter4); 
     1015        osync_converter_unref(converter4); 
     1016 
     1017        OSyncFormatConverter *converter5 = osync_converter_new(OSYNC_CONVERTER_CONV, format3, format5, convert_func, &error); 
     1018        fail_unless(converter5 != NULL, NULL); 
     1019        fail_unless(error == NULL, NULL); 
     1020        osync_format_env_register_converter(env, converter5); 
     1021        osync_converter_unref(converter5); 
     1022 
     1023        OSyncList *targets = NULL;  
     1024        targets = osync_list_prepend(targets, format4); 
     1025        targets = osync_list_prepend(targets, format5); 
     1026 
     1027        OSyncData *data1 = osync_data_new("data", 5, format1, &error); 
     1028        fail_unless(data1 != NULL, NULL); 
     1029        fail_unless(error == NULL, NULL); 
     1030  
     1031        OSyncFormatConverterPath *path = osync_format_env_find_path_formats_with_detectors(env, data1, targets, &error); 
     1032        fail_unless(path != NULL, NULL); 
     1033        fail_unless(error == NULL, NULL); 
     1034         
     1035        fail_unless(osync_converter_path_num_edges(path) == 2, NULL); 
     1036        fail_unless(osync_converter_path_nth_edge(path, 0) == converter1, NULL); 
     1037        fail_unless(osync_converter_path_nth_edge(path, 1) == converter2, NULL); 
     1038         
     1039        osync_converter_path_unref(path); 
     1040         
     1041        osync_format_env_free(env); 
     1042         
     1043        osync_data_unref(data1); 
     1044        osync_objformat_unref(format1); 
     1045        osync_objformat_unref(format2); 
     1046        osync_objformat_unref(format3); 
     1047        osync_objformat_unref(format4); 
     1048        osync_objformat_unref(format5); 
    9541049         
    9551050        destroy_testbed(testbed); 
     
    21182213        create_case(s, "conv_find_multi_target2", conv_find_multi_target2); 
    21192214         
     2215        create_case(s, "conv_find_multi_path_multi_target", conv_find_multi_path_multi_target); 
    21202216 
    21212217        // Gone?