summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-04-18 22:33:26 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2021-04-28 08:47:50 +0200
commit3ab71ea6d3500856545e8b8736bcee907e58b3c4 (patch)
treee6bd547d19e331ef2b537474189cc4dceb2192a8
parent2278792c6d707f4efae935e606e497b53adcb985 (diff)
downloadvala-3ab71ea6d3500856545e8b8736bcee907e58b3c4.tar.gz
tests: Add "generics reference transfer" test to increase coverage
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/generics/reference-transfer.vala24
2 files changed, 25 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 79656a816..0343c0fdf 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -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
index 000000000..da2c1e305
--- /dev/null
+++ b/tests/generics/reference-transfer.vala
@@ -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"));
+}