]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
tests: Add "generics reference transfer" test to increase coverage
authorRico Tzschichholz <ricotz@ubuntu.com>
Sun, 18 Apr 2021 20:33:26 +0000 (22:33 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 28 Apr 2021 06:47:50 +0000 (08:47 +0200)
tests/Makefile.am
tests/generics/reference-transfer.vala [new file with mode: 0644]

index 79656a8161dd530ab47e8e842a7d8550728a5f5e..0343c0fdfbddaadfc164a56c47fbc13fc877fd72 100644 (file)
@@ -678,6 +678,7 @@ TESTS = \
        generics/parameter-sizeof-initializer.vala \
        generics/member-dup-destroy.vala \
        generics/property-int-cast.vala \
+       generics/reference-transfer.vala \
        generics/string-literal-comparison.vala \
        generics/type-parameter-properties.vala \
        generics/value-pointer-type-access.vala \
diff --git a/tests/generics/reference-transfer.vala b/tests/generics/reference-transfer.vala
new file mode 100644 (file)
index 0000000..da2c1e3
--- /dev/null
@@ -0,0 +1,24 @@
+class Bar<G> {
+       public G g;
+       public Bar (G g) {
+               this.g = g;
+               assert (g == "bar");
+       }
+}
+
+void bar<G> (Bar<G> g) {
+       var t = (owned) g.g;
+       assert (g.g == null);
+       assert (t == "bar");
+}
+
+void foo<G> (owned G g) {
+       var t = (owned) g;
+       assert (g == null);
+       assert (t == "foo");
+}
+
+void main () {
+       foo<string> ("foo");
+       bar<string> (new Bar<string> ("bar"));
+}