diff options
Diffstat (limited to 'common/ini/ini_config_ut.c')
-rw-r--r-- | common/ini/ini_config_ut.c | 345 |
1 files changed, 188 insertions, 157 deletions
diff --git a/common/ini/ini_config_ut.c b/common/ini/ini_config_ut.c index 5441e02c..9aefbe30 100644 --- a/common/ini/ini_config_ut.c +++ b/common/ini/ini_config_ut.c @@ -31,11 +31,12 @@ int basic_test() { int error; - struct collection_item *ini_config = (struct collection_item *)(NULL); - struct collection_item *error_set = (struct collection_item *)(NULL); + struct collection_item *ini_config = NULL; + struct collection_item *error_set = NULL; - error = config_for_app("test", "./ini/ini.conf", "./ini/ini.d", &ini_config,INI_STOP_ON_NONE,&error_set); - if(error) { + error = config_for_app("test", "./ini/ini.conf", "./ini/ini.d", + &ini_config, INI_STOP_ON_NONE, &error_set); + if (error) { printf("Attempt to read configuration returned error: %d\n",error); return error; } @@ -44,10 +45,10 @@ int basic_test() print_collection(ini_config); print_collection(error_set); - printf("\n\n----------------------\n"); + printf("\n\n----------------------\n"); /* Output parsing errors (if any) */ - print_config_parsing_errors(stdout,error_set); - printf("----------------------\n\n\n"); + print_config_parsing_errors(stdout, error_set); + printf("----------------------\n\n\n"); destroy_collection(ini_config); @@ -58,33 +59,62 @@ int basic_test() int single_file() { int error; - struct collection_item *ini_config = (struct collection_item *)(NULL); - struct collection_item *error_set = (struct collection_item *)(NULL); - - error = config_from_file("test", "./ini/not_exist_ini.conf", &ini_config,INI_STOP_ON_NONE,&error_set); - if(error) { - printf("Attempt to read configuration returned error: %d. EXPECTED.\n\n",error); + struct collection_item *ini_config = NULL; + struct collection_item *error_set = NULL; + struct collection_item *lines = NULL; + + error = config_from_file("test", "./ini/not_exist_ini.conf", + &ini_config, INI_STOP_ON_NONE, &error_set); + if (error) { + printf("Attempt to read configuration returned error: %d. EXPECTED.\n\n", error); if(error != ENOENT) return error; } - error = config_from_file("test", "./ini/ini.conf", &ini_config,INI_STOP_ON_NONE,&error_set); - if(error) { + error = config_from_file("test", "./ini/ini.conf", &ini_config, INI_STOP_ON_NONE, &error_set); + if (error) { printf("Attempt to read configuration returned error: %d\n",error); return error; } - debug_collection(ini_config,COL_TRAVERSE_DEFAULT); + debug_collection(ini_config, COL_TRAVERSE_DEFAULT); print_collection(ini_config); print_collection(error_set); - printf("\n\n----------------------\n"); + printf("\n\n----------------------\n"); + /* Output parsing errors (if any) */ + print_file_parsing_errors(stdout, error_set); + printf("----------------------\n\n\n"); + + + destroy_collection(ini_config); + destroy_collection(error_set); + + ini_config = NULL; + error_set = NULL; + + printf("TEST WITH LINES\n"); + + error = config_from_file_with_lines("test", "./ini/ini.conf", + &ini_config, INI_STOP_ON_NONE, + &error_set, &lines); + if (error) { + printf("Attempt to read configuration returned error: %d\n",error); + return error; + } + + debug_collection(ini_config, COL_TRAVERSE_DEFAULT); + debug_collection(lines, COL_TRAVERSE_DEFAULT); + + printf("\n\n----------------------\n"); /* Output parsing errors (if any) */ - print_file_parsing_errors(stdout,error_set); - printf("----------------------\n\n\n"); + print_file_parsing_errors(stdout, error_set); + printf("----------------------\n\n\n"); destroy_collection(ini_config); destroy_collection(error_set); + destroy_collection(lines); + return 0; } @@ -92,40 +122,40 @@ int negative_test() { int error; unsigned int count; - struct collection_item *ini_config = (struct collection_item *)(NULL); + struct collection_item *ini_config = NULL; /* App name is null - expect failure */ - error = config_for_app(NULL, NULL, NULL, NULL,INI_STOP_ON_NONE,NULL); - if(!error) { + error = config_for_app(NULL, NULL, NULL, NULL, INI_STOP_ON_NONE, NULL); + if (!error) { printf("Expected error: %d got success\n",EINVAL); return -1; } /* Config collection storage is NULL - expect failure */ - error = config_for_app("real", NULL, NULL, NULL,INI_STOP_ON_NONE,NULL); - if(!error) { + error = config_for_app("real", NULL, NULL, NULL, INI_STOP_ON_NONE, NULL); + if (!error) { printf("Expected error: %d got success\n",EINVAL); return -1; } /* Config collection storage is NULL - expect failure */ - error = config_for_app("real", "real.conf", NULL, NULL,INI_STOP_ON_NONE,NULL); - if(!error) { + error = config_for_app("real", "real.conf", NULL, NULL, INI_STOP_ON_NONE, NULL); + if (!error) { printf("Expected error: %d got success\n",EINVAL); return -1; } /* Expect success but empty config */ - error = config_for_app("real", "real.conf", NULL, &ini_config,INI_STOP_ON_NONE,NULL); - if(error) { + error = config_for_app("real", "real.conf", NULL, &ini_config, INI_STOP_ON_NONE, NULL); + if (error) { printf("Expected success got error: %d\n",error); return error; } count = 0; - (void)get_collection_count(ini_config,&count); - if(count > 1) { - printf("Expected empty collection but got contents with %d elements\n",count); + (void)get_collection_count(ini_config, &count); + if (count > 1) { + printf("Expected empty collection but got contents with %d elements\n", count); print_collection(ini_config); return -1; } @@ -138,70 +168,72 @@ int negative_test() int real_test(const char *file) { int error; - struct collection_item *ini_config = (struct collection_item *)(NULL); - struct collection_item *error_set = (struct collection_item *)(NULL); - struct collection_iterator *iterator = (struct collection_iterator *)(NULL); - struct collection_item *item = (struct collection_item *)(NULL); + struct collection_item *ini_config = NULL; + struct collection_item *error_set = NULL; + struct collection_iterator *iterator = NULL; + struct collection_item *item = NULL; int type; - printf("\n\n===== REAL TEST START ======\n"); - printf("Reading collection\n"); - error = config_for_app("real", file, "./ini/ini.d", &ini_config,INI_STOP_ON_NONE,&error_set); - if(error) { - printf("Attempt to read configuration returned error: %d\n",error); + printf("\n\n===== REAL TEST START ======\n"); + printf("Reading collection\n"); + error = config_for_app("real", file, "./ini/ini.d", + &ini_config, INI_STOP_ON_NONE, &error_set); + if (error) { + printf("Attempt to read configuration returned error: %d\n", error); return error; } - printf("Debugging the config collection:\n"); - debug_collection(ini_config,COL_TRAVERSE_DEFAULT); - printf("Debugging the error collection:\n"); - debug_collection(error_set,COL_TRAVERSE_DEFAULT); + printf("Debugging the config collection:\n"); + debug_collection(ini_config, COL_TRAVERSE_DEFAULT); + printf("Debugging the error collection:\n"); + debug_collection(error_set, COL_TRAVERSE_DEFAULT); - printf("About to print parsing errors:\n"); - printf("\n\n----------------------\n"); + printf("About to print parsing errors:\n"); + printf("\n\n----------------------\n"); /* Output parsing errors (if any) */ - print_config_parsing_errors(stdout,error_set); - printf("----------------------\n\n\n"); + print_config_parsing_errors(stdout, error_set); + printf("----------------------\n\n\n"); - printf("About to bind iterator to print the config file contents.\n"); + printf("About to bind iterator to print the config file contents.\n"); /* Bind iterator */ - error = bind_iterator(&iterator,ini_config,COL_TRAVERSE_DEFAULT|COL_TRAVERSE_END); - if(error) { + error = bind_iterator(&iterator, ini_config, + COL_TRAVERSE_DEFAULT|COL_TRAVERSE_END); + if (error) { printf("Failed to bind iterator: %d\n",error); destroy_collection(ini_config); destroy_collection(error_set); return error; } - printf("About to start iteration loop.\n"); + printf("About to start iteration loop.\n"); do { /* Loop through a collection */ error = iterate_collection(iterator, &item); - if(error) { - printf("Error iterating collection: %d",error); + if (error) { + printf("Error iterating collection: %d", error); unbind_iterator(iterator); return error; } /* Are we done ? */ - if(item == (struct collection_item *)(NULL)) break; + if (item == (struct collection_item *)(NULL)) break; type = get_item_type(item); /* Start of the collection */ - if(type == COL_TYPE_COLLECTION) - printf("Contents of the configuration for application %s\n",get_item_property(item,NULL)); + if (type == COL_TYPE_COLLECTION) + printf("Contents of the configuration for application %s\n", get_item_property(item, NULL)); /* End of section */ - else if(type == COL_TYPE_END) printf("\n"); + else if (type == COL_TYPE_END) printf("\n"); /* Section header ? */ - else if(type == COL_TYPE_COLLECTIONREF) printf("[%s]\n",get_item_property(item,NULL)); + else if (type == COL_TYPE_COLLECTIONREF) printf("[%s]\n", get_item_property(item, NULL)); /* Anything else - we know they are all strings*/ - else printf("%s = %s\n",get_item_property(item,NULL), (char *)get_item_data(item)); + else printf("%s = %s\n", get_item_property(item, NULL), (char *)get_item_data(item)); } while(1); /* Do not forget to unbind iterator - otherwise there will be a leak */ - printf("About to clean up.\n"); + printf("About to clean up.\n"); unbind_iterator(iterator); destroy_collection(ini_config); @@ -228,40 +260,41 @@ int get_test() void *binary; int length; int i; - char **strarray; + char **strarray; char **strptr; int size; long *array; double *darray; char **prop_array; - printf("\n\n===== GET TEST START ======\n"); - printf("Reading collection\n"); - error = config_for_app("real", NULL, "./ini/ini.d", &ini_config,INI_STOP_ON_NONE,&error_set); - if(error) { - printf("Attempt to read configuration returned error: %d\n",error); + printf("\n\n===== GET TEST START ======\n"); + printf("Reading collection\n"); + error = config_for_app("real", NULL, "./ini/ini.d", + &ini_config, INI_STOP_ON_NONE, &error_set); + if (error) { + printf("Attempt to read configuration returned error: %d\n", error); return error; } - printf("Debugging the config collection:\n"); - debug_collection(ini_config,COL_TRAVERSE_DEFAULT); - printf("Debugging the error collection:\n"); - debug_collection(error_set,COL_TRAVERSE_DEFAULT); + printf("Debugging the config collection:\n"); + debug_collection(ini_config, COL_TRAVERSE_DEFAULT); + printf("Debugging the error collection:\n"); + debug_collection(error_set, COL_TRAVERSE_DEFAULT); destroy_collection(error_set); printf("Negtive test - trying to get non existing key-value pair.\n"); /* Negative test */ item = (struct collection_item *)(NULL); - error = get_config_item("monitor1","description1", ini_config, &item); - if(error) { - printf("Expected success but got error! %d\n",error); + error = get_config_item("monitor1", "description1", ini_config, &item); + if (error) { + printf("Expected success but got error! %d\n", error); destroy_collection(ini_config); return error; } /* Item should not be found */ - if(item != (struct collection_item *)(NULL)) { + if (item != (struct collection_item *)(NULL)) { printf("Expected NULL but got something else!\n"); destroy_collection(ini_config); return -1; @@ -269,9 +302,9 @@ int get_test() /* Another negative test but section exists this time */ item = (struct collection_item *)(NULL); - error = get_config_item("monitor","description1", ini_config, &item); - if(error) { - printf("Expected success but got error! %d\n",error); + error = get_config_item("monitor", "description1", ini_config, &item); + if (error) { + printf("Expected success but got error! %d\n", error); destroy_collection(ini_config); return error; } @@ -287,15 +320,15 @@ int get_test() /* Positive test */ item = (struct collection_item *)(NULL); - error = get_config_item("monitor","description", ini_config, &item); - if(error) { - printf("Expected success but got error! %d\n",error); + error = get_config_item("monitor", "description", ini_config, &item); + if (error) { + printf("Expected success but got error! %d\n", error); destroy_collection(ini_config); return error; } /* Item should be found */ - if(item == (struct collection_item *)(NULL)) { + if (item == (struct collection_item *)(NULL)) { printf("Expected item but got something NULL!\n"); destroy_collection(ini_config); return -1; @@ -308,7 +341,7 @@ int get_test() /* Get a string without duplicication */ /* Negative test */ cstrn = get_const_string_config_value(NULL, NULL); - if(cstrn != NULL) { + if (cstrn != NULL) { printf("Expected error got success.\n"); destroy_collection(ini_config); return -1; @@ -319,13 +352,13 @@ int get_test() /* Now get string from the right item */ error = 0; cstr = get_const_string_config_value(item, &error); - if(error) { - printf("Expected success got error %d.\n",error); + if (error) { + printf("Expected success got error %d.\n", error); destroy_collection(ini_config); return error; } - printf("Value: [%s]\n",cstr); + printf("Value: [%s]\n", cstr); /* Same thing but create a dup */ @@ -333,13 +366,13 @@ int get_test() error = 0; str = get_string_config_value(item, &error); - if(error) { - printf("Expected success got error %d.\n",error); + if (error) { + printf("Expected success got error %d.\n", error); destroy_collection(ini_config); return error; } - printf("Value: [%s]\n",str); + printf("Value: [%s]\n", str); free(str); @@ -347,15 +380,15 @@ int get_test() printf("Convert item to number with strict conversion.\n"); item = (struct collection_item *)(NULL); - error = get_config_item("monitor","bad_number", ini_config, &item); - if(error) { - printf("Expected success but got error! %d\n",error); + error = get_config_item("monitor", "bad_number", ini_config, &item); + if (error) { + printf("Expected success but got error! %d\n", error); destroy_collection(ini_config); return error; } /* Item should be found */ - if(item == (struct collection_item *)(NULL)) { + if (item == (struct collection_item *)(NULL)) { printf("Expected item but got something NULL!\n"); destroy_collection(ini_config); return -1; @@ -367,7 +400,7 @@ int get_test() /* Now try to get value in different ways */ error = 0; number = get_int_config_value(item, 1, 10, &error); - if(error) { + if (error) { /* We expected error in this case */ printf("Expected error.\n"); if(number != 10) { @@ -382,36 +415,34 @@ int get_test() error = 0; number = 1; number = get_int_config_value(item, 0, 10, &error); - if(error) { + if (error) { /* We expected error in this case */ printf("Did not expect error.\n"); destroy_collection(ini_config); return error; } - if(number != 5) { + if (number != 5) { /* We expected error in this case */ printf("We expected that the conversion will return 5.\n"); destroy_collection(ini_config); return -1; } - - /* Get real integer */ printf("Fetch another item from section \"domains/LOCAL\" named \"enumerate\".\n"); item = (struct collection_item *)(NULL); error = get_config_item("domains/LOCAL","enumerate", ini_config, &item); - if(error) { - printf("Expected success but got error! %d\n",error); + if (error) { + printf("Expected success but got error! %d\n", error); destroy_collection(ini_config); return error; } /* Item should be found */ - if(item == (struct collection_item *)(NULL)) { + if (item == (struct collection_item *)(NULL)) { printf("Expected success but got NULL.\n"); destroy_collection(ini_config); return -1; @@ -422,14 +453,14 @@ int get_test() /* Take number out of it */ error = 0; number = get_int_config_value(item, 1, 100, &error); - if(error) { - printf("Did not expect error. Got %d\n",error); + if (error) { + printf("Did not expect error. Got %d\n", error); destroy_collection(ini_config); return error; } /* It is 3 in the file */ - if(number != 3) { + if (number != 3) { printf("We expected that the conversion will return 3.\n"); destroy_collection(ini_config); return -1; @@ -442,14 +473,14 @@ int get_test() /* Take number out of it */ error = 0; number_long = get_long_config_value(item, 1, 100, &error); - if(error) { - printf("Did not expect error. Got %d\n",error); + if (error) { + printf("Did not expect error. Got %d\n", error); destroy_collection(ini_config); return error; } /* It is 3 in the file */ - if(number_long != 3) { + if (number_long != 3) { printf("We expected that the conversion will return 3.\n"); destroy_collection(ini_config); return -1; @@ -462,8 +493,8 @@ int get_test() /* Take number out of it */ error = 0; number_unsigned = get_unsigned_config_value(item, 1, 100, &error); - if(error) { - printf("Did not expect error. Got %d\n",error); + if (error) { + printf("Did not expect error. Got %d\n", error); destroy_collection(ini_config); return error; } @@ -482,14 +513,14 @@ int get_test() /* Take number out of it */ error = 0; number_ulong = get_ulong_config_value(item, 1, 100, &error); - if(error) { - printf("Did not expect error. Got %d\n",error); + if (error) { + printf("Did not expect error. Got %d\n", error); destroy_collection(ini_config); return error; } /* It is 3 in the file */ - if(number_ulong != 3) { + if (number_ulong != 3) { printf("We expected that the conversion will return 3.\n"); destroy_collection(ini_config); return -1; @@ -502,14 +533,14 @@ int get_test() /* Take number out of it */ error = 0; number_double = get_double_config_value(item, 1, 100., &error); - if(error) { - printf("Did not expect error. Got %d\n",error); + if (error) { + printf("Did not expect error. Got %d\n", error); destroy_collection(ini_config); return error; } /* It is 3 in the file */ - if(number_double != 3.) { + if (number_double != 3.) { printf("We expected that the conversion will return 3.\n"); destroy_collection(ini_config); return -1; @@ -522,7 +553,7 @@ int get_test() /* Take number out of it */ error = 0; logical = get_bool_config_value(item, 1, &error); - if(!error) { + if (!error) { printf("Expect error. Got success.\n"); destroy_collection(ini_config); return -1; @@ -533,14 +564,14 @@ int get_test() item = (struct collection_item *)(NULL); error = get_config_item("domains/LOCAL","legacy", ini_config, &item); - if(error) { + if (error) { printf("Expected success but got error! %d\n",error); destroy_collection(ini_config); return error; } /* Item should be found */ - if(item == (struct collection_item *)(NULL)) { + if (item == (struct collection_item *)(NULL)) { printf("Expected success but got NULL.\n"); destroy_collection(ini_config); return -1; @@ -550,13 +581,13 @@ int get_test() error = 0; logical = get_bool_config_value(item, 1, &error); - if(error) { - printf("Expect success got error %d.\n",error); + if (error) { + printf("Expect success got error %d.\n", error); destroy_collection(ini_config); return error; } - if(logical) { + if (logical) { printf("Expected false but got true - bad.\n"); return -1; } @@ -567,14 +598,14 @@ int get_test() item = (struct collection_item *)(NULL); error = get_config_item("domains/EXAMPLE.COM","binary_test", ini_config, &item); - if(error) { - printf("Expected success but got error! %d\n",error); + if (error) { + printf("Expected success but got error! %d\n", error); destroy_collection(ini_config); return error; } /* Item should be found */ - if(item == (struct collection_item *)(NULL)) { + if (item == (struct collection_item *)(NULL)) { printf("Expected success but got NULL.\n"); destroy_collection(ini_config); return -1; @@ -584,14 +615,14 @@ int get_test() error = 0; binary = get_bin_config_value(item, &length, &error); - if(error) { - printf("Expect success got error %d.\n",error); + if (error) { + printf("Expect success got error %d.\n", error); destroy_collection(ini_config); return error; } printf("Binary value (expect 123) = "); - for(i=0;i<length;i++) { + for (i=0;i<length;i++) { printf("%d",*((unsigned char*)(binary)+i)); } printf("\n"); @@ -601,7 +632,7 @@ int get_test() printf("Get string array item\n"); item = (struct collection_item *)(NULL); - error = get_config_item("domains","domainsorder", ini_config, &item); + error = get_config_item("domains", "domainsorder", ini_config, &item); if(error) { printf("Expected success but got error! %d\n",error); destroy_collection(ini_config); @@ -609,7 +640,7 @@ int get_test() } /* Item should be found */ - if(item == (struct collection_item *)(NULL)) { + if (item == (struct collection_item *)(NULL)) { printf("Expected success but got NULL.\n"); destroy_collection(ini_config); return -1; @@ -621,15 +652,15 @@ int get_test() error = 0; strarray = get_string_config_array(item, ",", NULL, &error); - if(error) { - printf("Expect success got error %d.\n",error); + if (error) { + printf("Expect success got error %d.\n", error); destroy_collection(ini_config); return error; } /* Can be used with this cycle */ strptr = strarray; - while(*strptr != NULL) { + while (*strptr != NULL) { printf("[%s]\n",*strptr); strptr++; } @@ -641,29 +672,29 @@ int get_test() error = 0; size = 0; strarray = get_string_config_array(item, ",", &size, &error); - if(error) { - printf("Expect success got error %d.\n",error); + if (error) { + printf("Expect success got error %d.\n", error); destroy_collection(ini_config); return error; } /* Can be used with this cycle */ - for(i=0;i<size;i++) printf("[%s]\n",*(strarray + i)); + for (i=0;i<size;i++) printf("[%s]\n",*(strarray + i)); free_string_config_array(strarray); printf("Get long array item\n"); item = (struct collection_item *)(NULL); - error = get_config_item("domains/EXAMPLE.COM","long_array", ini_config, &item); + error = get_config_item("domains/EXAMPLE.COM", "long_array", ini_config, &item); if(error) { - printf("Expected success but got error! %d\n",error); + printf("Expected success but got error! %d\n", error); destroy_collection(ini_config); return error; } /* Item should be found */ - if(item == (struct collection_item *)(NULL)) { + if (item == (struct collection_item *)(NULL)) { printf("Expected success but got NULL.\n"); destroy_collection(ini_config); return -1; @@ -675,28 +706,28 @@ int get_test() size = 0; /* Here size is not optional!!! */ array = get_long_config_array(item, &size, &error); if(error) { - printf("Expect success got error %d.\n",error); + printf("Expect success got error %d.\n", error); destroy_collection(ini_config); return error; } /* Can be used with this cycle */ - for(i=0;i<size;i++) printf("%ld\n",*(array + i)); + for (i=0;i<size;i++) printf("%ld\n", *(array + i)); free_long_config_array(array); printf("Get double array item\n"); item = (struct collection_item *)(NULL); - error = get_config_item("domains/EXAMPLE.COM","double_array", ini_config, &item); - if(error) { - printf("Expected success but got error! %d\n",error); + error = get_config_item("domains/EXAMPLE.COM", "double_array", ini_config, &item); + if (error) { + printf("Expected success but got error! %d\n", error); destroy_collection(ini_config); return error; } /* Item should be found */ - if(item == (struct collection_item *)(NULL)) { + if (item == (struct collection_item *)(NULL)) { printf("Expected success but got NULL.\n"); destroy_collection(ini_config); return -1; @@ -707,21 +738,21 @@ int get_test() error = 0; size = 0; /* Here size is not optional!!! */ darray = get_double_config_array(item, &size, &error); - if(error) { - printf("Expect success got error %d.\n",error); + if (error) { + printf("Expect success got error %d.\n", error); destroy_collection(ini_config); return error; } /* Can be used with this cycle */ - for(i=0;i<size;i++) printf("%.4f\n",darray[i]); + for (i=0;i<size;i++) printf("%.4f\n", darray[i]); free_double_config_array(darray); printf("\n\nSection list - no size\n"); /* Do not care about the error or size */ - prop_array = get_section_list(ini_config,NULL,NULL); + prop_array = get_section_list(ini_config, NULL, NULL); if (prop_array == NULL) { printf("Expect success got error.\n"); destroy_collection(ini_config); @@ -730,8 +761,8 @@ int get_test() i = 0; while (prop_array[i]) { - printf("Section: [%s]\n", prop_array[i]); - i++; + printf("Section: [%s]\n", prop_array[i]); + i++; } free_section_list(prop_array); @@ -770,13 +801,13 @@ int main() { int error; - if((error=basic_test()) || - (error=single_file()) || - (error=real_test(NULL)) || - /* This should result in merged configuration */ - (error=real_test("./ini/ini.conf")) || - (error= get_test())) { - printf("Test failed! Error %d.\n",error); + if ((error = basic_test()) || + (error = single_file()) || + (error = real_test(NULL)) || + /* This should result in merged configuration */ + (error = real_test("./ini/ini.conf")) || + (error = get_test())) { + printf("Test failed! Error %d.\n", error); return -1; } printf("Success!\n"); |