1
/* EINA - EFL data type library
2
* Copyright (C) 2008 Cedric Bail
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
9
* This library is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with this library;
16
* if not, see <http://www.gnu.org/licenses/>.
28
#include "eina_suite.h"
30
typedef struct _Eina_Lazy_Allocator_Test Eina_Lazy_Allocator_Test;
31
struct _Eina_Lazy_Allocator_Test
38
_test_alloc(Eina_Lazy_Allocator_Test *elat, int num)
40
if (elat->num == 10 && num == 1)
43
if (elat->num == 122 && num == 128)
47
elat->data = realloc(elat->data, elat->num);
53
_test_free(Eina_Lazy_Allocator_Test *elat)
60
EFL_START_TEST(eina_lalloc_simple)
62
Eina_Lazy_Allocator_Test *elat;
66
elat = calloc(1, sizeof (Eina_Lazy_Allocator_Test));
69
test = eina_lalloc_new(elat, EINA_LALLOC_ALLOC(
70
_test_alloc), EINA_LALLOC_FREE(_test_free), 10);
73
for (i = 0; i < 10; ++i)
74
fail_if(eina_lalloc_element_add(test) != EINA_TRUE);
75
fail_if(eina_lalloc_element_add(test) != EINA_FALSE);
76
fail_if(eina_lalloc_elements_add(test, 5) != EINA_TRUE);
77
for (i = 0; i < 21; ++i)
78
fail_if(eina_lalloc_element_add(test) != EINA_TRUE);
80
fail_if(eina_lalloc_elements_add(test, 50) != EINA_FALSE);
82
eina_lalloc_free(test);
87
eina_test_lalloc(TCase *tc)
89
tcase_add_test(tc, eina_lalloc_simple);