summaryrefslogtreecommitdiff
path: root/tests/chainup
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2016-11-04 18:06:37 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2017-03-05 15:20:43 +0100
commitb5cb6aafa93331470ada3bb0257f136036b3c5a9 (patch)
tree8df8d1012819ba447f5f82f68411561ec7dc6540 /tests/chainup
parente40b5ffb2dc3d20ef0a7c64935595a1be1cdbf59 (diff)
downloadvala-b5cb6aafa93331470ada3bb0257f136036b3c5a9.tar.gz
tests: Add a bunch of chain-up tests
https://bugzilla.gnome.org/show_bug.cgi?id=567269
Diffstat (limited to 'tests/chainup')
-rw-r--r--tests/chainup/class-base-foo.vala20
-rw-r--r--tests/chainup/class-base.vala20
-rw-r--r--tests/chainup/class-object.vala12
-rw-r--r--tests/chainup/class-this-foo.vala17
-rw-r--r--tests/chainup/class-this.vala17
-rw-r--r--tests/chainup/no-chainup.vala21
-rw-r--r--tests/chainup/struct-base-foo.vala20
-rw-r--r--tests/chainup/struct-base.vala20
-rw-r--r--tests/chainup/struct-this-foo.vala17
-rw-r--r--tests/chainup/struct-this.vala17
10 files changed, 181 insertions, 0 deletions
diff --git a/tests/chainup/class-base-foo.vala b/tests/chainup/class-base-foo.vala
new file mode 100644
index 000000000..606d71975
--- /dev/null
+++ b/tests/chainup/class-base-foo.vala
@@ -0,0 +1,20 @@
+public class Foo {
+ public int i;
+ public Foo.foo () {
+ i = 1;
+ }
+}
+
+public class Bar : Foo {
+ public int j;
+ public Bar () {
+ base.foo ();
+ j = 1;
+ }
+}
+
+void main () {
+ var bar = new Bar ();
+ assert (bar.i == 1);
+ assert (bar.j == 1);
+}
diff --git a/tests/chainup/class-base.vala b/tests/chainup/class-base.vala
new file mode 100644
index 000000000..1bec7e40f
--- /dev/null
+++ b/tests/chainup/class-base.vala
@@ -0,0 +1,20 @@
+public class Foo {
+ public int i;
+ public Foo () {
+ i = 1;
+ }
+}
+
+public class Bar : Foo {
+ public int j;
+ public Bar () {
+ base ();
+ this.j = 1;
+ }
+}
+
+void main () {
+ var bar = new Bar ();
+ assert (bar.i == 1);
+ assert (bar.j == 1);
+}
diff --git a/tests/chainup/class-object.vala b/tests/chainup/class-object.vala
new file mode 100644
index 000000000..1d6b0d777
--- /dev/null
+++ b/tests/chainup/class-object.vala
@@ -0,0 +1,12 @@
+public class Foo : Object {
+ public int i;
+ public Foo () {
+ Object ();
+ i = 1;
+ }
+}
+
+void main () {
+ var foo = new Foo ();
+ assert (foo.i == 1);
+}
diff --git a/tests/chainup/class-this-foo.vala b/tests/chainup/class-this-foo.vala
new file mode 100644
index 000000000..41b3b20b8
--- /dev/null
+++ b/tests/chainup/class-this-foo.vala
@@ -0,0 +1,17 @@
+public class Foo {
+ public int i;
+ public int j;
+ public Foo () {
+ this.foo ();
+ j = 1;
+ }
+ public Foo.foo () {
+ i = 1;
+ }
+}
+
+void main () {
+ var foo = new Foo ();
+ assert (foo.i == 1);
+ assert (foo.j == 1);
+}
diff --git a/tests/chainup/class-this.vala b/tests/chainup/class-this.vala
new file mode 100644
index 000000000..bc091710d
--- /dev/null
+++ b/tests/chainup/class-this.vala
@@ -0,0 +1,17 @@
+public class Foo {
+ public int i;
+ public int j;
+ public Foo () {
+ j = 1;
+ }
+ public Foo.bar () {
+ this ();
+ i = 1;
+ }
+}
+
+void main () {
+ var foo = new Foo.bar ();
+ assert (foo.i == 1);
+ assert (foo.j == 1);
+}
diff --git a/tests/chainup/no-chainup.vala b/tests/chainup/no-chainup.vala
new file mode 100644
index 000000000..d164bb3cd
--- /dev/null
+++ b/tests/chainup/no-chainup.vala
@@ -0,0 +1,21 @@
+public class Foo {
+ int i;
+ public Foo () {
+ i = 0;
+ }
+
+ public Foo.foo () {
+ SourceFunc f = () => true;
+ f ();
+ }
+}
+
+public struct Bar {
+ int i;
+ public Bar () {
+ i = 0;
+ }
+}
+
+void main () {
+}
diff --git a/tests/chainup/struct-base-foo.vala b/tests/chainup/struct-base-foo.vala
new file mode 100644
index 000000000..44aeb3bb1
--- /dev/null
+++ b/tests/chainup/struct-base-foo.vala
@@ -0,0 +1,20 @@
+public struct Foo {
+ public int i;
+ public int j;
+ public Foo.foo () {
+ i = 1;
+ }
+}
+
+public struct Bar : Foo {
+ public Bar () {
+ base.foo ();
+ this.j = 1;
+ }
+}
+
+void main () {
+ var bar = Bar ();
+ //FIXME assert (bar.i == 1);
+ assert (bar.j == 1);
+}
diff --git a/tests/chainup/struct-base.vala b/tests/chainup/struct-base.vala
new file mode 100644
index 000000000..b1622cc24
--- /dev/null
+++ b/tests/chainup/struct-base.vala
@@ -0,0 +1,20 @@
+public struct Foo {
+ public int i;
+ public int j;
+ public Foo () {
+ i = 1;
+ }
+}
+
+public struct Bar : Foo {
+ public Bar () {
+ base ();
+ this.j = 1;
+ }
+}
+
+void main () {
+ var bar = Bar ();
+ assert (bar.i == 1);
+ assert (bar.j == 1);
+}
diff --git a/tests/chainup/struct-this-foo.vala b/tests/chainup/struct-this-foo.vala
new file mode 100644
index 000000000..c0e53beed
--- /dev/null
+++ b/tests/chainup/struct-this-foo.vala
@@ -0,0 +1,17 @@
+public struct Foo {
+ public int i;
+ public int j;
+ public Foo () {
+ this.foo ();
+ j = 1;
+ }
+ public Foo.foo () {
+ i = 1;
+ }
+}
+
+void main () {
+ var foo = Foo ();
+ //FIXME assert (foo.i == 1);
+ assert (foo.j == 1);
+}
diff --git a/tests/chainup/struct-this.vala b/tests/chainup/struct-this.vala
new file mode 100644
index 000000000..1619e0442
--- /dev/null
+++ b/tests/chainup/struct-this.vala
@@ -0,0 +1,17 @@
+public struct Foo {
+ public int i;
+ public int j;
+ public Foo () {
+ j = 1;
+ }
+ public Foo.bar () {
+ this ();
+ i = 1;
+ }
+}
+
+void main () {
+ var foo = Foo.bar ();
+ assert (foo.i == 1);
+ assert (foo.j == 1);
+}