Automated merge

Tue, 28 Sep 2021 18:09:25 +0200

author
Mike Becker <universe@uap-core.de>
date
Tue, 28 Sep 2021 18:09:25 +0200
changeset 445
26ae21face39
parent 441
7d5a06e32aa8 (current diff)
parent 444
cb944fa1852a (diff)
child 446
668757098b73

Automated merge

--- a/src/cx/tree.h	Tue Sep 28 18:09:14 2021 +0200
+++ b/src/cx/tree.h	Tue Sep 28 18:09:25 2021 +0200
@@ -36,7 +36,7 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-
+ 
 void* cx_tree_last(void *node, ptrdiff_t loc_next);
     
 int cx_tree_add_node(void *node, ptrdiff_t loc_parent, ptrdiff_t loc_prev, ptrdiff_t loc_next, void *new_node);
--- a/test/test_allocator.c	Tue Sep 28 18:09:14 2021 +0200
+++ b/test/test_allocator.c	Tue Sep 28 18:09:25 2021 +0200
@@ -80,22 +80,13 @@
     }
 
     suite = CU_add_suite("default allocator", NULL, NULL);
-    if (NULL == suite) {
-        CU_cleanup_registry();
-        return CU_get_error();
-    }
 
-    if (
-            !CU_add_test(suite, "default allocator available", test_default_allocator_available) ||
-            !CU_add_test(suite, "test of malloc()", test_default_malloc)||
-            !CU_add_test(suite, "test of realloc()", test_default_realloc) ||
-            !CU_add_test(suite, "test of realloc() via cxReallocate", test_default_reallocate) ||
-            !CU_add_test(suite, "test of calloc()", test_default_calloc) ||
-            !CU_add_test(suite, "test of free()", test_default_free)
-            ) {
-        CU_cleanup_registry();
-        return CU_get_error();
-    }
+    CU_add_test(suite, "default allocator available", test_default_allocator_available);
+    CU_add_test(suite, "test of malloc()", test_default_malloc);
+    CU_add_test(suite, "test of realloc()", test_default_realloc);
+    CU_add_test(suite, "test of realloc() via cxReallocate", test_default_reallocate);
+    CU_add_test(suite, "test of calloc()", test_default_calloc);
+    CU_add_test(suite, "test of free()", test_default_free);
 
     CU_basic_set_mode(UCX_CU_BRM);
 
--- a/test/test_list.c	Tue Sep 28 18:09:14 2021 +0200
+++ b/test/test_list.c	Tue Sep 28 18:09:25 2021 +0200
@@ -100,41 +100,83 @@
     CU_ASSERT_PTR_EQUAL(&b, cx_linked_list_at(&d, 3, loc_prev, 1));
 }
 
+void test_linked_list_add(void) {
+    struct node {
+        void *prev;
+        void *next;
+        int value;
+    };
+    
+    struct node nodes[4];
+    
+    // test with begin, end / prev, next
+    memset(nodes, 0, 4*sizeof(struct node));
+    void *begin = NULL;
+    void *end = NULL;
+    
+    ptrdiff_t loc_prev = offsetof(struct node, prev);
+    ptrdiff_t loc_next = offsetof(struct node, next);
+    
+    int ret;
+    ret = cx_linked_list_add(&begin, &end, loc_prev, loc_next, &nodes[0]);
+    CU_ASSERT_EQUAL(ret, 0);
+    CU_ASSERT_PTR_EQUAL(begin, &nodes[0]);
+    CU_ASSERT_PTR_EQUAL(end, &nodes[0]);
+    CU_ASSERT_PTR_EQUAL(nodes[0].prev, NULL);
+    CU_ASSERT_PTR_EQUAL(nodes[0].next, NULL);
+    
+    ret = cx_linked_list_add(&begin, &end, loc_prev, loc_next, &nodes[1]);
+    CU_ASSERT_EQUAL(ret, 0);
+    CU_ASSERT_PTR_EQUAL(begin, &nodes[0]);
+    CU_ASSERT_PTR_EQUAL(end, &nodes[1]);
+    CU_ASSERT_PTR_EQUAL(nodes[0].next, &nodes[1]);
+    CU_ASSERT_PTR_EQUAL(nodes[1].prev, &nodes[0]);
+    
+    // test with begin only / prev, next
+    memset(nodes, 0, 4*sizeof(struct node));
+    begin = NULL;
+    end = NULL;
+    
+    ret = cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[0]);
+    CU_ASSERT_EQUAL(ret, 0);
+    CU_ASSERT_PTR_EQUAL(begin, &nodes[0]);
+    ret = cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[1]);
+    CU_ASSERT_EQUAL(ret, 0);
+    CU_ASSERT_PTR_EQUAL(begin, &nodes[0]);
+    CU_ASSERT_PTR_EQUAL(nodes[0].next, &nodes[1]);
+    CU_ASSERT_PTR_EQUAL(nodes[1].prev, &nodes[0]);
+    
+    ret = cx_linked_list_add(&begin, NULL, loc_prev, loc_next, &nodes[2]);
+    CU_ASSERT_PTR_EQUAL(nodes[1].next, &nodes[2]);
+    CU_ASSERT_PTR_EQUAL(nodes[2].prev, &nodes[1]);
+    
+    // test with begin, end / next
+    memset(nodes, 0, 4*sizeof(struct node));
+    begin = NULL;
+    end = NULL;
+    
+    ret = cx_linked_list_add(&begin, &end, -1, loc_next, &nodes[0]);
+    CU_ASSERT_EQUAL(ret, 0);
+    CU_ASSERT_PTR_EQUAL(begin, &nodes[0]);
+    CU_ASSERT_PTR_EQUAL(end, &nodes[0]);
+    ret = cx_linked_list_add(&begin, &end, -1, loc_next, &nodes[1]);
+    CU_ASSERT_PTR_EQUAL(end, &nodes[1]);
+    CU_ASSERT_PTR_EQUAL(nodes[0].next, &nodes[1]);
+    CU_ASSERT_PTR_EQUAL(nodes[1].prev, NULL);
+}
+
 int main() {
     CU_pSuite suite = NULL;
-
+    
     if (CUE_SUCCESS != CU_initialize_registry()) {
         return CU_get_error();
     }
 
     suite = CU_add_suite("linked list suite", NULL, NULL);
-    if (NULL == suite) {
-        CU_cleanup_registry();
-        return CU_get_error();
-    }
-
-    if (
-            !CU_add_test(suite, "linked list: create and destroy", test_linked_list_create) ||
-            !CU_add_test(suite, "linked list: get node at index", test_linked_list_at)
-            ) {
-        CU_cleanup_registry();
-        return CU_get_error();
-    }
-
-    suite = CU_add_suite("array suite", NULL, NULL);
-    if (NULL == suite) {
-        CU_cleanup_registry();
-        return CU_get_error();
-    }
-
-    /*
-    if (
-            !CU_add_test(suite, "array...", test_array...)
-            ) {
-        CU_cleanup_registry();
-        return CU_get_error();
-    }
-    */
+    
+    CU_add_test(suite, "linked list: create and destroy", test_linked_list_create);
+    CU_add_test(suite, "linked list: get node at index", test_linked_list_at);
+    CU_add_test(suite, "linked list: add", test_linked_list_add);
 
     CU_basic_set_mode(UCX_CU_BRM);
 
--- a/test/test_tree.c	Tue Sep 28 18:09:14 2021 +0200
+++ b/test/test_tree.c	Tue Sep 28 18:09:25 2021 +0200
@@ -167,23 +167,9 @@
     }
 
     suite = CU_add_suite("tree suite", NULL, NULL);
-    if (NULL == suite) {
-        CU_cleanup_registry();
-        return CU_get_error();
-    }
 
-    if (
-            !CU_add_test(suite, "ll add tree node", test_cx_tree_add_node)
-            ) {
-        CU_cleanup_registry();
-        return CU_get_error();
-    }
-    if (
-            !CU_add_test(suite, "ll add tree child node", test_cx_tree_add_child_node)
-            ) {
-        CU_cleanup_registry();
-        return CU_get_error();
-    }
+    CU_add_test(suite, "ll add tree node", test_cx_tree_add_node);
+    CU_add_test(suite, "ll add tree child node", test_cx_tree_add_child_node);
     
     
     CU_basic_set_mode(UCX_CU_BRM);

mercurial