summaryrefslogtreecommitdiffstats
path: root/common/collection/collection_ut.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/collection/collection_ut.c')
-rw-r--r--common/collection/collection_ut.c169
1 files changed, 162 insertions, 7 deletions
diff --git a/common/collection/collection_ut.c b/common/collection/collection_ut.c
index eabf52227..21f768bec 100644
--- a/common/collection/collection_ut.c
+++ b/common/collection/collection_ut.c
@@ -31,8 +31,8 @@
int ref_collection_test()
{
- struct collection_item *peer;
- struct collection_item *socket;
+ struct collection_item *peer = NULL;
+ struct collection_item *socket = NULL;
char binary_dump[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
int error = EOK;
@@ -46,7 +46,7 @@ int ref_collection_test()
(error=add_str_property(peer,NULL,"hostname","peerhost.mytest.com",0)) ||
(error=add_str_property(peer,NULL,"IPv4","10.10.10.10",12)) || /* Expect trailing zero to be truncated */
(error=add_str_property(peer,NULL,"IPv6","bla:bla:bla:bla:bla:bla",0))) {
- printf("Failed to add property. Error %d",error);
+ printf("Failed to add property. Error %d\n",error);
destroy_collection(peer);
return error;
}
@@ -109,7 +109,7 @@ int ref_collection_test()
int single_collection_test()
{
- struct collection_item *handle;
+ struct collection_item *handle = NULL;
int error = EOK;
TRACE_FLOW_STRING("single_collection_test","Entry.");
@@ -165,8 +165,8 @@ int single_collection_test()
int add_collection_test()
{
- struct collection_item *peer;
- struct collection_item *socket;
+ struct collection_item *peer = NULL;
+ struct collection_item *socket = NULL;
char binary_dump[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
int error = EOK;
@@ -692,6 +692,160 @@ int iterator_test()
}
+int insert_extract_test()
+{
+ struct collection_item *col;
+ struct collection_item *col2;
+ int error = EOK;
+ struct collection_item *item = (struct collection_item *)(NULL);
+
+ printf("\n\n==== INSERTION TEST ====\n\n");
+
+ if ((error = create_collection(&col, "insertion", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_END,
+ NULL, 0, COL_INSERT_NOCHECK,
+ "property1", "value1", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_END,
+ NULL, 0, COL_INSERT_NOCHECK,
+ "property2", "value2", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_FRONT,
+ NULL, 0, COL_INSERT_NOCHECK,
+ "property0", "value0", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_BEFORE,
+ "property0", 0, COL_INSERT_NOCHECK,
+ "property_-1", "value_-1", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_BEFORE,
+ "property1", 0, COL_INSERT_NOCHECK,
+ "property0_5", "value0_5", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_BEFORE,
+ "property2", 0, COL_INSERT_NOCHECK,
+ "property1_5", "value1_5", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_AFTER,
+ "property_-1", 0, COL_INSERT_NOCHECK,
+ "property_-0_5", "value_-0_5", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_AFTER,
+ "property1_5", 0, COL_INSERT_NOCHECK,
+ "property1_6", "value1_6", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_INDEX,
+ NULL, 10, COL_INSERT_NOCHECK,
+ "property10", "value10", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_INDEX,
+ NULL, 0, COL_INSERT_NOCHECK,
+ "property_-2", "value_-2", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_INDEX,
+ NULL, 1, COL_INSERT_NOCHECK,
+ "property_-1_5", "value_-1_5", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_FIRSTDUP,
+ NULL, 0, COL_INSERT_NOCHECK,
+ "property0", "value0firstdup", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_LASTDUP,
+ NULL, 0, COL_INSERT_NOCHECK,
+ "property0", "value0lastdup", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_NDUP,
+ NULL, 1, COL_INSERT_NOCHECK,
+ "property0", "value0middledup", 0)) ||
+ (error = insert_str_property(col, NULL, 0,
+ NULL, 0, COL_INSERT_DUPOVER ,
+ "property0", "value0firstdupupdate", 0)) ||
+ (error = insert_str_property(col, NULL, 0,
+ NULL, 0, COL_INSERT_DUPOVERT,
+ "property1", "value1update", 0)) ||
+ ((error = insert_str_property(col, NULL, 0,
+ NULL, 0, COL_INSERT_DUPERROR,
+ "property0", "does not matter", 0)) != EEXIST) ||
+ (error = insert_str_property(col, NULL, COL_DSP_NDUP,
+ NULL, 5, COL_INSERT_NOCHECK,
+ "property10", "value10dup", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_LASTDUP,
+ NULL, 0, COL_INSERT_NOCHECK,
+ "property10", "value10lastdup", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_END,
+ NULL, 0, COL_INSERT_DUPMOVET,
+ "property_-2", "value-2moved_to_bottom", 0)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_FRONT,
+ NULL, 0, COL_INSERT_DUPMOVE,
+ "property1_6", "value_1_6_moved_moved_to_front", 0))) {
+
+ printf("ERROR in the ITERATION TEST\n");
+ debug_collection(col,COL_TRAVERSE_DEFAULT);
+ destroy_collection(col);
+ return error;
+ }
+
+ printf("\n\nCollection:\n\n");
+ debug_collection(col,COL_TRAVERSE_DEFAULT);
+
+
+ printf("\n\n==== EXTRACTION TEST ====\n\n");
+
+ if ((error = create_collection(&col2, "extraction", 0)) ||
+ (error = extract_item(col, NULL, COL_DSP_FRONT,
+ NULL, 0, 0, &item)) ||
+ (error = insert_item(col2, NULL, item, COL_DSP_FRONT,
+ NULL, 0, COL_INSERT_NOCHECK)) ||
+ (debug_collection(col2,COL_TRAVERSE_DEFAULT)) ||
+ (error = extract_item(col, NULL, COL_DSP_END,
+ NULL, 0, 0, &item)) ||
+ (error = insert_item(col2, NULL, item, COL_DSP_END,
+ NULL, 0, COL_INSERT_NOCHECK)) ||
+ (debug_collection(col2,COL_TRAVERSE_DEFAULT)) ||
+ (error = insert_str_property(col, NULL, COL_DSP_INDEX,
+ NULL, 100, COL_INSERT_NOCHECK,
+ "property100", "value100", 0)) ||
+ (error = extract_item(col, NULL, COL_DSP_AFTER,
+ "property10", 0, COL_TYPE_STRING, &item)) ||
+ (error = insert_item(col2, NULL, item, COL_DSP_END,
+ NULL, 0, COL_INSERT_NOCHECK)) ||
+ (debug_collection(col2,COL_TRAVERSE_DEFAULT)) ||
+ (error = extract_item(col, NULL, COL_DSP_BEFORE,
+ "property0", 0, COL_TYPE_STRING, &item)) ||
+ (error = insert_item(col2, NULL, item, COL_DSP_END,
+ NULL, 0, COL_INSERT_NOCHECK)) ||
+ (debug_collection(col2,COL_TRAVERSE_DEFAULT)) ||
+ (error = extract_item(col, NULL, COL_DSP_INDEX,
+ NULL, 1, 0, &item)) ||
+ (error = insert_item(col2, NULL, item, COL_DSP_END,
+ NULL, 0, COL_INSERT_NOCHECK)) ||
+ (debug_collection(col2,COL_TRAVERSE_DEFAULT)) ||
+ (error = extract_item(col, NULL, COL_DSP_NDUP,
+ "property0", 1, 0, &item)) ||
+ (error = insert_item(col2, NULL, item, COL_DSP_END,
+ NULL, 0, COL_INSERT_NOCHECK)) ||
+ (debug_collection(col2,COL_TRAVERSE_DEFAULT)) ||
+ (error = extract_item(col, NULL, COL_DSP_LASTDUP,
+ "property0", 0, 0, &item)) ||
+ (error = insert_item(col2, NULL, item, COL_DSP_END,
+ NULL, 0, COL_INSERT_NOCHECK)) ||
+ (debug_collection(col2,COL_TRAVERSE_DEFAULT)) ||
+ (error = extract_item(col, NULL, COL_DSP_FIRSTDUP,
+ "property0", 0, 0, &item)) ||
+ (error = insert_item(col2, NULL, item, COL_DSP_END,
+ NULL, 0, COL_INSERT_NOCHECK)) ||
+ (debug_collection(col2,COL_TRAVERSE_DEFAULT))) {
+
+ printf("ERROR in the EXTRACTION TEST\n");
+ printf("Collection 1\n");
+ debug_collection(col,COL_TRAVERSE_DEFAULT);
+ printf("Collection 2\n");
+ debug_collection(col2,COL_TRAVERSE_DEFAULT);
+ destroy_collection(col);
+ destroy_collection(col2);
+ return error;
+ }
+
+ printf("Collection 1\n");
+ debug_collection(col,COL_TRAVERSE_DEFAULT);
+ printf("Collection 2\n");
+ debug_collection(col2,COL_TRAVERSE_DEFAULT);
+
+ destroy_collection(col2);
+ destroy_collection(col);
+
+
+ return EOK;
+}
+
+
/* Main function of the unit test */
int main()
@@ -703,7 +857,8 @@ int main()
(error=single_collection_test()) ||
(error=add_collection_test()) ||
(error=mixed_collection_test()) ||
- (error=iterator_test())) {
+ (error=iterator_test()) ||
+ (error=insert_extract_test())) {
printf("Failed!\n");
}
else printf("Success!\n");