]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
tests: Add "generic array" test to increase coverage
authorRico Tzschichholz <ricotz@ubuntu.com>
Wed, 28 Apr 2021 19:33:10 +0000 (21:33 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 19 May 2021 06:52:12 +0000 (08:52 +0200)
tests/Makefile.am
tests/generics/arrays.vala [new file with mode: 0644]

index 81902def49c8dad7d679f7aba488e170b08ec8cc..b143f825e16c064b846fc2a9e11ed5759baed9f8 100644 (file)
@@ -665,6 +665,7 @@ TESTS = \
        asynchronous/variadic-invalid.test \
        asynchronous/variadic-invalid-2.test \
        asynchronous/yield.vala \
+       generics/arrays.vala \
        generics/arrays-not-supported.test \
        generics/arrays-not-supported-2.test \
        generics/arrays-not-supported-3.test \
diff --git a/tests/generics/arrays.vala b/tests/generics/arrays.vala
new file mode 100644 (file)
index 0000000..b28d8cc
--- /dev/null
@@ -0,0 +1,35 @@
+class Foo<G> {
+       public G[] ga;
+
+       public Foo (G g) {
+               var gs = new G[] { g };
+               assert (gs.length == 1);
+               assert (gs[0] == "foo");
+
+               ga = gs;
+               assert (ga.length == 1);
+               assert (ga[0] == "foo");
+       }
+
+       public void foo (owned G[] gs) {
+               assert (gs.length == 1);
+               assert (gs[0] == "foo");
+       }
+}
+
+void bar<G> (G g) {
+       var gs = new G[] { g };
+       assert (gs.length == 1);
+       assert (gs[0] == "bar");
+
+       var gs_copy = gs;
+       assert (gs_copy.length == 1);
+       assert (gs_copy[0] == "bar");
+}
+
+void main () {
+       var foo = new Foo<string> ("foo");
+       foo.foo (foo.ga);
+
+       bar<string> ("bar");
+}