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/>.
23 #include "eina_suite.h"
26 static Eina_Array *_modules;
32 /* force modules to be loaded in case they are not installed */
33 _modules = eina_module_list_get(NULL,
34 PACKAGE_BUILD_DIR "/src/modules",
38 eina_module_list_load(_modules);
42 _mempool_shutdown(void)
44 eina_module_list_free(_modules);
45 /* TODO delete the list */
50 _eina_mempool_test(Eina_Mempool *mp, Eina_Bool with_realloc, Eina_Bool with_gc)
57 for (i = 0; i < 512; ++i)
59 tbl[i] = eina_mempool_malloc(mp, sizeof (int));
64 for (i = 0; i < 512; ++i)
65 fail_if(*tbl[i] != i);
67 for (i = 0; i < 256; ++i)
68 eina_mempool_free(mp, tbl[i]);
71 fail_if(eina_mempool_realloc(mp, tbl[500], 25) == NULL);
73 fail_if(eina_mempool_realloc(mp, tbl[500], 25) != NULL);
78 eina_mempool_statistics(mp);
84 #ifdef EINA_BUILD_CHAINED_POOL
85 START_TEST(eina_mempool_chained_mempool)
91 mp = eina_mempool_add("chained_mempool", "test", NULL, sizeof (int), 256);
92 _eina_mempool_test(mp, EINA_FALSE, EINA_FALSE);
99 #ifdef EINA_BUILD_PASS_THROUGH
100 START_TEST(eina_mempool_pass_through)
106 mp = eina_mempool_add("pass_through", "test", NULL, sizeof (int), 8, 0);
107 _eina_mempool_test(mp, EINA_TRUE, EINA_FALSE);
114 #ifdef EINA_BUILD_FIXED_BITMAP
115 START_TEST(eina_mempool_fixed_bitmap)
121 mp = eina_mempool_add("fixed_bitmap", "test", NULL, sizeof (int));
122 _eina_mempool_test(mp, EINA_FALSE, EINA_FALSE);
129 #ifdef EINA_BUILD_EMEMOA_FIXED
130 START_TEST(eina_mempool_ememoa_fixed)
136 mp = eina_mempool_add("ememoa_fixed", "test", NULL, sizeof (int), 8, 0);
137 _eina_mempool_test(mp, EINA_FALSE, EINA_TRUE);
144 #ifdef EINA_BUILD_EMEMOA_UNKNOWN
145 START_TEST(eina_mempool_ememoa_unknown)
151 mp = eina_mempool_add("ememoa_unknown",
160 _eina_mempool_test(mp, EINA_TRUE, EINA_TRUE);
168 eina_test_mempool(TCase *tc)
170 #ifdef EINA_BUILD_CHAINED_POOL
171 tcase_add_test(tc, eina_mempool_chained_mempool);
173 #ifdef EINA_BUILD_PASS_THROUGH
174 tcase_add_test(tc, eina_mempool_pass_through);
176 #ifdef EINA_BUILD_FIXED_BITMAP
177 tcase_add_test(tc, eina_mempool_fixed_bitmap);
179 #ifdef EINA_BUILD_EMEMOA_FIXED
180 tcase_add_test(tc, eina_mempool_ememoa_fixed);
182 #ifdef EINA_BUILD_EMEMOA_UNKNOWN
183 tcase_add_test(tc, eina_mempool_ememoa_unknown);