diff options
author | Corentin Noël <corentin.noel@collabora.com> | 2020-10-15 10:35:25 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-05-03 09:11:56 +0200 |
commit | f904c7e269c7f7b0a6dcefa4f8f892b981a71917 (patch) | |
tree | 6f750c74fa72e6c05bb946b9bbeb33e165f1a406 /tests/basic-types | |
parent | 14481195e5ba14347b7c46c0863704843ea5a04b (diff) | |
download | vala-f904c7e269c7f7b0a6dcefa4f8f892b981a71917.tar.gz |
vala: Add foreach statement support for GLib.GenericArray
It is now possible to use foreach with a GLib.GenericArray type
Diffstat (limited to 'tests/basic-types')
-rw-r--r-- | tests/basic-types/gptrarray.vala | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/basic-types/gptrarray.vala b/tests/basic-types/gptrarray.vala index 6d8aa2d1a..1b5d6c622 100644 --- a/tests/basic-types/gptrarray.vala +++ b/tests/basic-types/gptrarray.vala @@ -26,6 +26,30 @@ void main () { assert (foo3.ref_count == 2); assert (array.length == 3); + int loop_size = 0; + foreach (weak Foo element in array) { + loop_size++; + assert (element.ref_count == 2); + switch (loop_size) { + case 1: assert (element == foo1); break; + case 2: assert (element == foo2); break; + case 3: assert (element == foo3); break; + } + } + assert (loop_size == 3); + + loop_size = 0; + foreach (Foo element in array) { + loop_size++; + assert (element.ref_count == 3); + switch (loop_size) { + case 1: assert (element == foo1); break; + case 2: assert (element == foo2); break; + case 3: assert (element == foo3); break; + } + } + assert (loop_size == 3); + assert (foo2 == array.get (1)); array.set (1, foo4); assert (foo4 == array.get (1)); @@ -73,6 +97,30 @@ void main () { assert (foo3.ref_count == 1); assert (array.length == 3); + int loop_size = 0; + foreach (weak Foo element in array) { + loop_size++; + assert (element.ref_count == 1); + switch (loop_size) { + case 1: assert (element == foo1); break; + case 2: assert (element == foo2); break; + case 3: assert (element == foo3); break; + } + } + assert (loop_size == 3); + + loop_size = 0; + foreach (Foo element in array) { + loop_size++; + assert (element.ref_count == 2); + switch (loop_size) { + case 1: assert (element == foo1); break; + case 2: assert (element == foo2); break; + case 3: assert (element == foo3); break; + } + } + assert (loop_size == 3); + assert (foo2 == array.get (1)); array.set (1, foo4); assert (foo4 == array.get (1)); |