]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
tests: Add regression test
authorRico Tzschichholz <ricotz@ubuntu.com>
Wed, 10 Feb 2016 08:28:38 +0000 (09:28 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 27 Aug 2017 08:33:54 +0000 (10:33 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=761736

tests/Makefile.am
tests/basic-types/bug761736.vala [new file with mode: 0644]

index 6e1b5bff93b6964da025c1f63f33c55b808d1f14..e78fbd2f2dbfffc30eb7b1a800d81ff1aed0cec6 100644 (file)
@@ -41,6 +41,7 @@ TESTS = \
        basic-types/bug729907.vala \
        basic-types/bug731017.vala \
        basic-types/bug761307.vala \
+       basic-types/bug761736.vala \
        basic-types/bug771626.test \
        basic-types/bug777697.test \
        namespaces.vala \
diff --git a/tests/basic-types/bug761736.vala b/tests/basic-types/bug761736.vala
new file mode 100644 (file)
index 0000000..5be3bb1
--- /dev/null
@@ -0,0 +1,42 @@
+const string[] FOO = { "foo", "bar" };
+
+unowned string[] transfer_none () {
+       return FOO;
+}
+
+(unowned string)[] transfer_container () {
+       return FOO;
+}
+
+string[] transfer_full () {
+       return FOO;
+}
+
+void main () {
+       var bar = FOO;
+
+       for (int i = 0; i < 42; i++) {
+               string[] baz = bar;
+       }
+
+       for (int i = 0; i < 42; i++) {
+               unowned string[] a = transfer_none ();
+               assert ("foo" in a);
+               assert ("bar" in a);
+       }
+
+       for (int i = 0; i < 42; i++) {
+               (unowned string)[] a = transfer_container ();
+               assert ("foo" in a);
+               assert ("bar" in a);
+       }
+
+       for (int i = 0; i < 42; i++) {
+               string[] a = transfer_full ();
+               assert ("foo" in a);
+               assert ("bar" in a);
+       }
+
+       assert ("foo" in FOO);
+       assert ("bar" in FOO);
+}