From: Rico Tzschichholz Date: Thu, 14 Jun 2018 06:02:31 +0000 (+0200) Subject: tests: Add invalid assignment tests to increase coverage X-Git-Tag: 0.41.90~64 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fe9a8b71c9e06c5e3f33f0d743d8758cb51a755;p=thirdparty%2Fvala.git tests: Add invalid assignment tests to increase coverage --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 4d53645e2..dc98b21b0 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -467,6 +467,11 @@ TESTS = \ parser/yield-method.test \ parser/bug728574.vala \ parser/bug749576.vala \ + semantic/assignment-element-incompatible-ownership.test \ + semantic/assignment-element-incompatible-type.test \ + semantic/assignment-same-variable.vala \ + semantic/assignment-signal-incompatible-method.test \ + semantic/assignment-signal-incompatible-type.test \ semantic/class-base-type-invalid.test \ semantic/class-base-type-less-accessible.test \ semantic/class-compact-derived-instance-field.test \ diff --git a/tests/semantic/assignment-element-incompatible-ownership.test b/tests/semantic/assignment-element-incompatible-ownership.test new file mode 100644 index 000000000..0611c1447 --- /dev/null +++ b/tests/semantic/assignment-element-incompatible-ownership.test @@ -0,0 +1,7 @@ +Invalid Code + +void main () { + string s = "bar"; + (unowned string)[] sa = { "foo" }; + sa[0] = (owned) s; +} diff --git a/tests/semantic/assignment-element-incompatible-type.test b/tests/semantic/assignment-element-incompatible-type.test new file mode 100644 index 000000000..a0de219e9 --- /dev/null +++ b/tests/semantic/assignment-element-incompatible-type.test @@ -0,0 +1,6 @@ +Invalid Code + +void main () { + string[] sa = { "foo" }; + sa[0] = 42; +} diff --git a/tests/semantic/assignment-same-variable.vala b/tests/semantic/assignment-same-variable.vala new file mode 100644 index 000000000..fee85fceb --- /dev/null +++ b/tests/semantic/assignment-same-variable.vala @@ -0,0 +1,17 @@ +class Foo { + public int i = 23; + + public Foo () { + i = i; + } +} + +int i; + +void main () { + string s = "foo"; + s = s; + + i = 42; + i = i; +} diff --git a/tests/semantic/assignment-signal-incompatible-method.test b/tests/semantic/assignment-signal-incompatible-method.test new file mode 100644 index 000000000..dec5362a5 --- /dev/null +++ b/tests/semantic/assignment-signal-incompatible-method.test @@ -0,0 +1,15 @@ +Invalid Code + +class Foo { + signal void bar (); + + Foo () { + bar += foo; + } + + void foo (string s) { + } +} + +void main () { +} diff --git a/tests/semantic/assignment-signal-incompatible-type.test b/tests/semantic/assignment-signal-incompatible-type.test new file mode 100644 index 000000000..f5578ffd8 --- /dev/null +++ b/tests/semantic/assignment-signal-incompatible-type.test @@ -0,0 +1,12 @@ +Invalid Code + +class Foo { + signal void bar (); + + Foo () { + bar += "foo"; + } +} + +void main () { +}