stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=391ebf9cff11acbe93454c71876b59020b755e35

commit 391ebf9cff11acbe93454c71876b59020b755e35
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Thu Mar 29 15:14:34 2018 -0400

    tests: reduce malloc calls in eina rbtree tests
    
    ref T6830
    
    Reviewed-by: Stefan Schmidt <ste...@osg.samsung.com>
---
 src/tests/eina/eina_test_rbtree.c | 217 ++++++++++++++------------------------
 1 file changed, 78 insertions(+), 139 deletions(-)

diff --git a/src/tests/eina/eina_test_rbtree.c 
b/src/tests/eina/eina_test_rbtree.c
index 2ec9cf461e..acf5290ffd 100644
--- a/src/tests/eina/eina_test_rbtree.c
+++ b/src/tests/eina/eina_test_rbtree.c
@@ -286,16 +286,17 @@ eina_rbtree_int_key(const Eina_Rbtree_Int *node,
 }
 
 static Eina_Rbtree_Int *
-_eina_rbtree_int_new(int value)
+_eina_rbtree_int_init(int num)
 {
-   Eina_Rbtree_Int *it;
-
-   it = malloc(sizeof (Eina_Rbtree_Int));
-   fail_if(!it);
+   return malloc(num * sizeof(Eina_Rbtree_Int));
+}
 
-   it->value = value;
+static Eina_Rbtree_Int *
+_eina_rbtree_int_new(int value, Eina_Rbtree_Int *mem, int i)
+{
+   mem[i].value = value;
 
-   return it;
+   return &mem[i];
 }
 
 EFL_START_TEST(eina_rbtree_insertion)
@@ -303,11 +304,12 @@ EFL_START_TEST(eina_rbtree_insertion)
    Eina_Rbtree_Int *root = NULL;
    Eina_Rbtree_Int *item;
    int i;
+   Eina_Rbtree_Int *mem;
 
-
+   mem = _eina_rbtree_int_init(500);
    for (i = 0; i < 500; ++i)
      {
-        item = _eina_rbtree_int_new(r1[i]);
+        item = _eina_rbtree_int_new(r1[i], mem, i);
         root = (Eina_Rbtree_Int *)eina_rbtree_inline_insert(
               &root->node,
               &item->node,
@@ -319,6 +321,7 @@ EFL_START_TEST(eina_rbtree_insertion)
    _eina_rbtree_black_height(&root->node,
                              EINA_RBTREE_CMP_NODE_CB(
                                 eina_rbtree_int_cmp));
+   free(mem);
 }
 EFL_END_TEST
 
@@ -328,10 +331,12 @@ EFL_START_TEST(eina_rbtree_lookup)
    Eina_Rbtree_Int *item;
    int list[] = { 50, 100, 10, 43, 23 };
    unsigned int i;
+   Eina_Rbtree_Int *mem;
 
-   for (i = 0; i < sizeof (list) / sizeof (int); ++i)
+   mem = _eina_rbtree_int_init(EINA_C_ARRAY_LENGTH(list));
+   for (i = 0; i < EINA_C_ARRAY_LENGTH(list); ++i)
      {
-        item = _eina_rbtree_int_new(list[i]);
+        item = _eina_rbtree_int_new(list[i], mem, i);
         root = (Eina_Rbtree_Int *)eina_rbtree_inline_insert(
               &root->node,
               &item->node,
@@ -357,6 +362,7 @@ EFL_START_TEST(eina_rbtree_lookup)
                                                       eina_rbtree_int_key),
                                                    NULL);
    fail_if(item);
+   free(mem);
 }
 EFL_END_TEST
 
@@ -367,15 +373,17 @@ EFL_START_TEST(eina_rbtree_remove)
    Eina_Array *ea;
    Eina_Array_Iterator it;
    unsigned int i;
+   Eina_Rbtree_Int *mem;
 
+   mem = _eina_rbtree_int_init(500);
 
-   ea = eina_array_new(11);
+   ea = eina_array_new(500);
    fail_if(!ea);
 
 
    for (i = 0; i < 500; ++i)
      {
-        item = _eina_rbtree_int_new(r1[i]);
+        item = _eina_rbtree_int_new(r1[i], mem, i);
         eina_array_push(ea, item);
         root = (Eina_Rbtree_Int *)eina_rbtree_inline_insert(
               &root->node,
@@ -401,7 +409,8 @@ EFL_START_TEST(eina_rbtree_remove)
      }
 
    fail_if(root != NULL);
-
+   eina_array_free(ea);
+   free(mem);
 }
 EFL_END_TEST
 
@@ -410,27 +419,17 @@ EFL_START_TEST(eina_rbtree_simple_remove)
    Eina_Rbtree *root = NULL;
    Eina_Rbtree *lookup;
    int i;
-
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   10),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   42),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   69),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   1337),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
+   int values[] =
+   {
+      10, 42, 69, 1337
+   };
+   Eina_Rbtree_Int *mem;
+
+   mem = _eina_rbtree_int_init(EINA_C_ARRAY_LENGTH(values));
+   for (i = 0; i < (int)EINA_C_ARRAY_LENGTH(values); i++)
+     root = eina_rbtree_inline_insert(root,
+                                  (Eina_Rbtree 
*)_eina_rbtree_int_new(values[i], mem, i),
+                                  EINA_RBTREE_CMP_NODE_CB( 
eina_rbtree_int_cmp), NULL);
    _eina_rbtree_black_height(root,
                              EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
 
@@ -451,6 +450,7 @@ EFL_START_TEST(eina_rbtree_simple_remove)
                                    eina_rbtree_int_cmp), NULL);
 
    _eina_rbtree_black_height(root, 
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
+   free(mem);
 }
 EFL_END_TEST
 
@@ -459,42 +459,17 @@ EFL_START_TEST(eina_rbtree_simple_remove2)
    Eina_Rbtree *root = NULL;
    Eina_Rbtree *lookup;
    int i;
-
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   10),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   42),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   69),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   1337),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   77),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   75),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   81),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
+   int values[] =
+   {
+      10, 42, 69, 1337, 77, 75, 81
+   };
+   Eina_Rbtree_Int *mem;
+
+   mem = _eina_rbtree_int_init(EINA_C_ARRAY_LENGTH(values));
+   for (i = 0; i < (int)EINA_C_ARRAY_LENGTH(values); i++)
+     root = eina_rbtree_inline_insert(root,
+                                  (Eina_Rbtree 
*)_eina_rbtree_int_new(values[i], mem, i),
+                                  EINA_RBTREE_CMP_NODE_CB( 
eina_rbtree_int_cmp), NULL);
    _eina_rbtree_black_height(root,
                              EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
 
@@ -515,6 +490,7 @@ EFL_START_TEST(eina_rbtree_simple_remove2)
                                    eina_rbtree_int_cmp), NULL);
 
    _eina_rbtree_black_height(root, 
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
+   free(mem);
 }
 EFL_END_TEST
 
@@ -523,72 +499,30 @@ EFL_START_TEST(eina_rbtree_simple_remove3)
    Eina_Rbtree *root = NULL;
    Eina_Rbtree *lookup;
    int i;
+   int values[] =
+   {
+      1113497590,
+      499187507,
+      1693860487,
+      26211080,
+      797272577,
+      1252184882,
+      1448158229,
+      1821884856,
+      346086006,
+      936357333,
+      1462073936,
+      1717320055,
+      1845524606
+   };
+   Eina_Rbtree_Int *mem;
+
+   mem = _eina_rbtree_int_init(EINA_C_ARRAY_LENGTH(values));
+   for (i = 0; i < (int)EINA_C_ARRAY_LENGTH(values); i++)
+     root = eina_rbtree_inline_insert(root,
+                                  (Eina_Rbtree 
*)_eina_rbtree_int_new(values[i], mem, i),
+                                  EINA_RBTREE_CMP_NODE_CB( 
eina_rbtree_int_cmp), NULL);
 
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   1113497590),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   499187507),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   1693860487),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   26211080),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   797272577),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   1252184882),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   1448158229),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   1821884856),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   346086006),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   936357333),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   1462073936),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   1717320055),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
-   root =
-      eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
-                                   1845524606),
-                                EINA_RBTREE_CMP_NODE_CB(
-                                   eina_rbtree_int_cmp), NULL);
    _eina_rbtree_black_height(root,
                              EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
 
@@ -609,6 +543,7 @@ EFL_START_TEST(eina_rbtree_simple_remove3)
                                    eina_rbtree_int_cmp), NULL);
 
    _eina_rbtree_black_height(root, 
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
+   free(mem);
 }
 EFL_END_TEST
 
@@ -621,14 +556,17 @@ EFL_START_TEST(eina_rbtree_fuzzy)
    unsigned int j;
 
 
+   Eina_Rbtree_Int *mem, *mem2;
 
+   mem = _eina_rbtree_int_init(10000);
    for (i = 0; i < 10000; i++)
      {
-        child = _eina_rbtree_int_new(r2[i]);
+        child = _eina_rbtree_int_new(r2[i], mem, i);
         root = eina_rbtree_inline_insert(root, (Eina_Rbtree*) child,
                                          
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL);
      }
 
+   mem2 = _eina_rbtree_int_init(20 * 1000);
    for (j = 0; j < 20; j++)
      {
         for (i = 0; i < 1000; i++)
@@ -647,7 +585,7 @@ EFL_START_TEST(eina_rbtree_fuzzy)
                        continue ;
                     }
 
-                  child = _eina_rbtree_int_new(r);
+                  child = _eina_rbtree_int_new(r, mem2, j * 1000 + i);
                   root = eina_rbtree_inline_insert(root, (Eina_Rbtree*) child,
                                                    
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL);
                   added = eina_list_append(added, child);
@@ -668,7 +606,8 @@ EFL_START_TEST(eina_rbtree_fuzzy)
                                               
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL);
           }
      }
-
+   free(mem2);
+   free(mem);
 }
 EFL_END_TEST
 

-- 


Reply via email to