[pygobject] tests: add tests for boxed in GLists. See !24



commit c56b4510649dae58519681c1a53aed85d598139e
Author: Christoph Reiter <reiter christoph gmail com>
Date:   Fri Feb 16 17:43:00 2018 +0100

    tests: add tests for boxed in GLists. See !24

 tests/regressextra.c     | 33 +++++++++++++++++++++++++++++++++
 tests/regressextra.h     |  4 ++++
 tests/test_everything.py | 16 ++++++++++++++++
 3 files changed, 53 insertions(+)
---
diff --git a/tests/regressextra.c b/tests/regressextra.c
index 9efa5986..4c92f337 100644
--- a/tests/regressextra.c
+++ b/tests/regressextra.c
@@ -67,3 +67,36 @@ regress_test_array_fixed_boxed_none_out (RegressTestBoxedC ***objs)
 
   *objs = arr;
 }
+
+/**
+ * regress_test_glist_boxed_none_return
+ * Return value: (element-type RegressTestBoxedC) (transfer none):
+**/
+GList *
+regress_test_glist_boxed_none_return (guint count)
+{
+    static GList *list = NULL;
+    if (!list) {
+        while (count > 0) {
+            list = g_list_prepend (list, regress_test_boxed_c_new ());
+            count--;
+        }
+    }
+
+    return list;
+}
+
+/**
+ * regress_test_glist_boxed_full_return
+ * Return value: (element-type RegressTestBoxedC) (transfer full):
+**/
+GList *
+regress_test_glist_boxed_full_return (guint count)
+{
+    GList *list = NULL;
+    while (count > 0) {
+        list = g_list_prepend (list, regress_test_boxed_c_new ());
+        count--;
+    }
+    return list;
+}
diff --git a/tests/regressextra.h b/tests/regressextra.h
index bfc6c3b0..d42edbd4 100644
--- a/tests/regressextra.h
+++ b/tests/regressextra.h
@@ -16,5 +16,9 @@ RegressTestBoxedC *regress_test_boxed_c_wrapper_get (RegressTestBoxedCWrapper *s
 
 _GI_TEST_EXTERN
 void regress_test_array_fixed_boxed_none_out (RegressTestBoxedC ***objs);
+_GI_TEST_EXTERN
+GList *regress_test_glist_boxed_none_return (guint count);
+_GI_TEST_EXTERN
+GList *regress_test_glist_boxed_full_return (guint count);
 
 #endif /* REGRESS_EXTRA_H */
diff --git a/tests/test_everything.py b/tests/test_everything.py
index ee852098..c8694add 100644
--- a/tests/test_everything.py
+++ b/tests/test_everything.py
@@ -1166,6 +1166,22 @@ class TestBoxed(unittest.TestCase):
         assert arr[0].refcount == 2
         assert arr[1].refcount == 2
 
+    def test_glist_boxed_none_return(self):
+        assert len(Everything.test_glist_boxed_none_return(0)) == 0
+
+        list_ = Everything.test_glist_boxed_none_return(2)
+        assert len(list_) == 2
+        assert list_[0].refcount == 2
+        assert list_[1].refcount == 2
+
+    def test_glist_boxed_full_return(self):
+        assert len(Everything.test_glist_boxed_full_return(0)) == 0
+
+        list_ = Everything.test_glist_boxed_full_return(2)
+        assert len(list_) == 2
+        assert list_[0].refcount == 1
+        assert list_[1].refcount == 1
+
 
 class TestTortureProfile(unittest.TestCase):
     def test_torture_profile(self):


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]