]> 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, 28 Apr 2021 20:01:49 +0000 (22:01 +0200)
tests/Makefile.am
tests/generics/arrays.vala [new file with mode: 0644]

index 16cd7303bb32f2188d0875de32c0fb5bee2b112c..b5a1acf04dcbac3c5fbcc65a5dc0af30b398da7a 100644 (file)
@@ -675,6 +675,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");
+}