tasn pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=047d88caa00db9e9b31c88682703462d0d6fa201

commit 047d88caa00db9e9b31c88682703462d0d6fa201
Author: Tom Hacohen <t...@stosb.com>
Date:   Fri Oct 21 15:25:52 2016 +0100

    Eo: Add test for refcount in efl_add_ref
    
    This commits adds a regression test to the previous commit.
---
 src/tests/eo/suite/eo_test_general.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/src/tests/eo/suite/eo_test_general.c 
b/src/tests/eo/suite/eo_test_general.c
index e142d67..bb34b7d 100644
--- a/src/tests/eo/suite/eo_test_general.c
+++ b/src/tests/eo/suite/eo_test_general.c
@@ -618,6 +618,33 @@ START_TEST(efl_refs)
    efl_del(obj2);
    efl_del(obj3);
 
+   /* Setting and removing parents for add_ref */
+   obj = efl_add(SIMPLE_CLASS, NULL);
+   obj2 = efl_add_ref(SIMPLE_CLASS, obj);
+   obj3 = efl_add_ref(SIMPLE_CLASS, NULL);
+
+   ck_assert_int_eq(efl_ref_get(obj2), 2);
+   ck_assert_int_eq(efl_ref_get(obj3), 1);
+
+   efl_parent_set(obj2, obj3);
+   efl_parent_set(obj3, obj);
+   ck_assert_int_eq(efl_ref_get(obj2), 2);
+   ck_assert_int_eq(efl_ref_get(obj3), 2);
+
+   efl_parent_set(obj2, NULL);
+   efl_parent_set(obj3, NULL);
+   ck_assert_int_eq(efl_ref_get(obj2), 1);
+   ck_assert_int_eq(efl_ref_get(obj3), 1);
+
+   efl_parent_set(obj2, obj);
+   efl_parent_set(obj3, obj);
+   ck_assert_int_eq(efl_ref_get(obj2), 2);
+   ck_assert_int_eq(efl_ref_get(obj3), 2);
+
+   efl_del(obj);
+   efl_del(obj2);
+   efl_del(obj3);
+
    /* Just check it doesn't seg atm. */
    obj = efl_add(SIMPLE_CLASS, NULL);
    efl_ref(obj);

-- 


Reply via email to