From: Rico Tzschichholz Date: Wed, 10 Feb 2016 08:28:38 +0000 (+0100) Subject: tests: Add regression test X-Git-Tag: 0.37.91~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=537ff8301aeefddb5335bb717eae5961cabb56d9;p=thirdparty%2Fvala.git tests: Add regression test https://bugzilla.gnome.org/show_bug.cgi?id=761736 --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 93d0a0a61..1b1e9e955 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -43,6 +43,7 @@ TESTS = \ basic-types/bug731017.vala \ basic-types/bug756376.vala \ basic-types/bug761307.vala \ + basic-types/bug761736.vala \ basic-types/bug771626.test \ basic-types/bug772426.vala \ basic-types/bug777697.test \ diff --git a/tests/basic-types/bug761736.vala b/tests/basic-types/bug761736.vala new file mode 100644 index 000000000..5be3bb1a0 --- /dev/null +++ b/tests/basic-types/bug761736.vala @@ -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); +}