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\" \
{ "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 }
};
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 */
--- /dev/null
+#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);
+}