forked from enlightenment/efl
tests: reduce malloc calls in eina rbtree tests
ref T6830 Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
This commit is contained in:
parent
5f55a07f8a
commit
391ebf9cff
|
@ -286,16 +286,17 @@ eina_rbtree_int_key(const Eina_Rbtree_Int *node,
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Rbtree_Int *
|
static Eina_Rbtree_Int *
|
||||||
_eina_rbtree_int_new(int value)
|
_eina_rbtree_int_init(int num)
|
||||||
{
|
{
|
||||||
Eina_Rbtree_Int *it;
|
return malloc(num * sizeof(Eina_Rbtree_Int));
|
||||||
|
}
|
||||||
|
|
||||||
it = malloc(sizeof (Eina_Rbtree_Int));
|
static Eina_Rbtree_Int *
|
||||||
fail_if(!it);
|
_eina_rbtree_int_new(int value, Eina_Rbtree_Int *mem, int i)
|
||||||
|
{
|
||||||
|
mem[i].value = value;
|
||||||
|
|
||||||
it->value = value;
|
return &mem[i];
|
||||||
|
|
||||||
return it;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EFL_START_TEST(eina_rbtree_insertion)
|
EFL_START_TEST(eina_rbtree_insertion)
|
||||||
|
@ -303,11 +304,12 @@ EFL_START_TEST(eina_rbtree_insertion)
|
||||||
Eina_Rbtree_Int *root = NULL;
|
Eina_Rbtree_Int *root = NULL;
|
||||||
Eina_Rbtree_Int *item;
|
Eina_Rbtree_Int *item;
|
||||||
int i;
|
int i;
|
||||||
|
Eina_Rbtree_Int *mem;
|
||||||
|
|
||||||
|
mem = _eina_rbtree_int_init(500);
|
||||||
for (i = 0; i < 500; ++i)
|
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 = (Eina_Rbtree_Int *)eina_rbtree_inline_insert(
|
||||||
&root->node,
|
&root->node,
|
||||||
&item->node,
|
&item->node,
|
||||||
|
@ -319,6 +321,7 @@ EFL_START_TEST(eina_rbtree_insertion)
|
||||||
_eina_rbtree_black_height(&root->node,
|
_eina_rbtree_black_height(&root->node,
|
||||||
EINA_RBTREE_CMP_NODE_CB(
|
EINA_RBTREE_CMP_NODE_CB(
|
||||||
eina_rbtree_int_cmp));
|
eina_rbtree_int_cmp));
|
||||||
|
free(mem);
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
@ -328,10 +331,12 @@ EFL_START_TEST(eina_rbtree_lookup)
|
||||||
Eina_Rbtree_Int *item;
|
Eina_Rbtree_Int *item;
|
||||||
int list[] = { 50, 100, 10, 43, 23 };
|
int list[] = { 50, 100, 10, 43, 23 };
|
||||||
unsigned int i;
|
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 = (Eina_Rbtree_Int *)eina_rbtree_inline_insert(
|
||||||
&root->node,
|
&root->node,
|
||||||
&item->node,
|
&item->node,
|
||||||
|
@ -357,6 +362,7 @@ EFL_START_TEST(eina_rbtree_lookup)
|
||||||
eina_rbtree_int_key),
|
eina_rbtree_int_key),
|
||||||
NULL);
|
NULL);
|
||||||
fail_if(item);
|
fail_if(item);
|
||||||
|
free(mem);
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
@ -367,15 +373,17 @@ EFL_START_TEST(eina_rbtree_remove)
|
||||||
Eina_Array *ea;
|
Eina_Array *ea;
|
||||||
Eina_Array_Iterator it;
|
Eina_Array_Iterator it;
|
||||||
unsigned int i;
|
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);
|
fail_if(!ea);
|
||||||
|
|
||||||
|
|
||||||
for (i = 0; i < 500; ++i)
|
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);
|
eina_array_push(ea, item);
|
||||||
root = (Eina_Rbtree_Int *)eina_rbtree_inline_insert(
|
root = (Eina_Rbtree_Int *)eina_rbtree_inline_insert(
|
||||||
&root->node,
|
&root->node,
|
||||||
|
@ -401,7 +409,8 @@ EFL_START_TEST(eina_rbtree_remove)
|
||||||
}
|
}
|
||||||
|
|
||||||
fail_if(root != NULL);
|
fail_if(root != NULL);
|
||||||
|
eina_array_free(ea);
|
||||||
|
free(mem);
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
@ -410,27 +419,17 @@ EFL_START_TEST(eina_rbtree_simple_remove)
|
||||||
Eina_Rbtree *root = NULL;
|
Eina_Rbtree *root = NULL;
|
||||||
Eina_Rbtree *lookup;
|
Eina_Rbtree *lookup;
|
||||||
int i;
|
int i;
|
||||||
|
int values[] =
|
||||||
|
{
|
||||||
|
10, 42, 69, 1337
|
||||||
|
};
|
||||||
|
Eina_Rbtree_Int *mem;
|
||||||
|
|
||||||
root =
|
mem = _eina_rbtree_int_init(EINA_C_ARRAY_LENGTH(values));
|
||||||
eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
|
for (i = 0; i < (int)EINA_C_ARRAY_LENGTH(values); i++)
|
||||||
10),
|
root = eina_rbtree_inline_insert(root,
|
||||||
EINA_RBTREE_CMP_NODE_CB(
|
(Eina_Rbtree *)_eina_rbtree_int_new(values[i], mem, i),
|
||||||
eina_rbtree_int_cmp), NULL);
|
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);
|
|
||||||
_eina_rbtree_black_height(root,
|
_eina_rbtree_black_height(root,
|
||||||
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
|
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_int_cmp), NULL);
|
||||||
|
|
||||||
_eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
|
_eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
|
||||||
|
free(mem);
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
@ -459,42 +459,17 @@ EFL_START_TEST(eina_rbtree_simple_remove2)
|
||||||
Eina_Rbtree *root = NULL;
|
Eina_Rbtree *root = NULL;
|
||||||
Eina_Rbtree *lookup;
|
Eina_Rbtree *lookup;
|
||||||
int i;
|
int i;
|
||||||
|
int values[] =
|
||||||
|
{
|
||||||
|
10, 42, 69, 1337, 77, 75, 81
|
||||||
|
};
|
||||||
|
Eina_Rbtree_Int *mem;
|
||||||
|
|
||||||
root =
|
mem = _eina_rbtree_int_init(EINA_C_ARRAY_LENGTH(values));
|
||||||
eina_rbtree_inline_insert(root, (Eina_Rbtree *)_eina_rbtree_int_new(
|
for (i = 0; i < (int)EINA_C_ARRAY_LENGTH(values); i++)
|
||||||
10),
|
root = eina_rbtree_inline_insert(root,
|
||||||
EINA_RBTREE_CMP_NODE_CB(
|
(Eina_Rbtree *)_eina_rbtree_int_new(values[i], mem, i),
|
||||||
eina_rbtree_int_cmp), NULL);
|
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);
|
|
||||||
_eina_rbtree_black_height(root,
|
_eina_rbtree_black_height(root,
|
||||||
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
|
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_int_cmp), NULL);
|
||||||
|
|
||||||
_eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
|
_eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
|
||||||
|
free(mem);
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
@ -523,72 +499,30 @@ EFL_START_TEST(eina_rbtree_simple_remove3)
|
||||||
Eina_Rbtree *root = NULL;
|
Eina_Rbtree *root = NULL;
|
||||||
Eina_Rbtree *lookup;
|
Eina_Rbtree *lookup;
|
||||||
int i;
|
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_black_height(root,
|
||||||
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
|
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_int_cmp), NULL);
|
||||||
|
|
||||||
_eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
|
_eina_rbtree_black_height(root, EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp));
|
||||||
|
free(mem);
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
@ -621,14 +556,17 @@ EFL_START_TEST(eina_rbtree_fuzzy)
|
||||||
unsigned int j;
|
unsigned int j;
|
||||||
|
|
||||||
|
|
||||||
|
Eina_Rbtree_Int *mem, *mem2;
|
||||||
|
|
||||||
|
mem = _eina_rbtree_int_init(10000);
|
||||||
for (i = 0; i < 10000; i++)
|
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,
|
root = eina_rbtree_inline_insert(root, (Eina_Rbtree*) child,
|
||||||
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL);
|
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mem2 = _eina_rbtree_int_init(20 * 1000);
|
||||||
for (j = 0; j < 20; j++)
|
for (j = 0; j < 20; j++)
|
||||||
{
|
{
|
||||||
for (i = 0; i < 1000; i++)
|
for (i = 0; i < 1000; i++)
|
||||||
|
@ -647,7 +585,7 @@ EFL_START_TEST(eina_rbtree_fuzzy)
|
||||||
continue ;
|
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,
|
root = eina_rbtree_inline_insert(root, (Eina_Rbtree*) child,
|
||||||
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL);
|
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL);
|
||||||
added = eina_list_append(added, child);
|
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);
|
EINA_RBTREE_CMP_NODE_CB(eina_rbtree_int_cmp), NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
free(mem2);
|
||||||
|
free(mem);
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue