eo suite: add ptr indirection coverage test

This commit is contained in:
Jérémy Zurcher 2013-05-03 21:10:50 +02:00
parent 96d9869684
commit 88cf0cf460
4 changed files with 37 additions and 0 deletions

View File

@ -85,6 +85,7 @@ tests/eo/suite/eo_suite.h \
tests/eo/suite/eo_test_class_errors.c \
tests/eo/suite/eo_test_general.c \
tests/eo/suite/eo_test_value.c \
tests/eo/suite/eo_test_ptr_indirection.c \
tests/eo/suite/eo_test_init.c
tests_eo_eo_suite_CPPFLAGS = -I$(top_builddir)/src/lib/efl \
-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eo\" \

View File

@ -21,6 +21,7 @@ static const Eo_Test_Case etc[] = {
{ "Eo general", eo_test_general },
{ "Eo class errors", eo_test_class_errors },
{ "Eo eina value", eo_test_value },
{ "Eo pointer indirection", eo_test_ptr_ind },
{ NULL, NULL }
};

View File

@ -7,5 +7,6 @@ void eo_test_init(TCase *tc);
void eo_test_general(TCase *tc);
void eo_test_class_errors(TCase *tc);
void eo_test_value(TCase *tc);
void eo_test_ptr_ind(TCase *tc);
#endif /* _EO_SUITE_H */

View File

@ -0,0 +1,34 @@
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "Eo.h"
#include "eo_suite.h"
#include "eo_test_class_simple.h"
START_TEST(eo_ptr_ind)
{
int i;
int request = 100000;
eo_init();
Eo **objs = calloc(request, sizeof(Eo *));
for (i = 0 ; i < request ; i++)
objs[i] = eo_add(SIMPLE_CLASS, NULL);
for (i = 0 ; i < request; i++)
eo_unref(objs[i]);
eo_unref(objs[0]);
free(objs);
eo_shutdown();
}
END_TEST
void eo_test_ptr_ind(TCase *tc)
{
tcase_add_test(tc, eo_ptr_ind);
}