diff options
author | Christoph Reiter <reiter.christoph@gmail.com> | 2018-02-16 17:43:00 +0100 |
---|---|---|
committer | Christoph Reiter <reiter.christoph@gmail.com> | 2018-02-16 17:43:00 +0100 |
commit | c56b4510649dae58519681c1a53aed85d598139e (patch) | |
tree | 26ca827c3bee994425d2a53f7adb93db1a8cfcc3 | |
parent | 9c3cb6b49c33f53d637e80aad68a67e89d0eb944 (diff) | |
download | pygobject-c56b4510649dae58519681c1a53aed85d598139e.tar.gz |
tests: add tests for boxed in GLists. See !24
-rw-r--r-- | tests/regressextra.c | 33 | ||||
-rw-r--r-- | tests/regressextra.h | 4 | ||||
-rw-r--r-- | tests/test_everything.py | 16 |
3 files changed, 53 insertions, 0 deletions
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): |