eo suite: add ptr indirection coverage test
authorJérémy Zurcher <jeremy@asynk.ch>
Fri, 3 May 2013 19:10:50 +0000 (21:10 +0200)
committerJérémy Zurcher <jeremy@asynk.ch>
Fri, 3 May 2013 19:13:03 +0000 (21:13 +0200)
src/Makefile_Eo.am
src/tests/eo/suite/eo_suite.c
src/tests/eo/suite/eo_suite.h
src/tests/eo/suite/eo_test_ptr_indirection.c [new file with mode: 0644]

index e955632..3c1b5d3 100644 (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\" \
index 9d040d3..a9b8b64 100644 (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 }
 };
 
index c26db96..5c37e9f 100644 (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 */
diff --git a/src/tests/eo/suite/eo_test_ptr_indirection.c b/src/tests/eo/suite/eo_test_ptr_indirection.c
new file mode 100644 (file)
index 0000000..eb4da35
--- /dev/null
@@ -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);
+}