summaryrefslogtreecommitdiff
path: root/tests/basic-types
diff options
context:
space:
mode:
authorCorentin Noël <corentin.noel@collabora.com>2020-10-15 10:35:25 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2021-05-03 09:11:56 +0200
commitf904c7e269c7f7b0a6dcefa4f8f892b981a71917 (patch)
tree6f750c74fa72e6c05bb946b9bbeb33e165f1a406 /tests/basic-types
parent14481195e5ba14347b7c46c0863704843ea5a04b (diff)
downloadvala-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.vala48
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));