]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
tests: Add "GObject and GType class lifetime" tests to increase coverage
authorRico Tzschichholz <ricotz@ubuntu.com>
Tue, 18 Feb 2020 14:03:42 +0000 (15:03 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 18 Feb 2020 16:19:39 +0000 (17:19 +0100)
tests/Makefile.am
tests/objects/gobject-class-lifetime.vala [new file with mode: 0644]
tests/objects/gtype-class-lifetime.vala [new file with mode: 0644]

index 071935bd1f1e0680ad9aac298eead81640ffa41e..69456f5bd762d5833b6b225d43288d793e0fddb1 100644 (file)
@@ -352,7 +352,9 @@ TESTS = \
        objects/initially-unowned.vala \
        objects/field-leading-digit.test \
        objects/fields.vala \
+       objects/gobject-class-lifetime.vala \
        objects/gsource.vala \
+       objects/gtype-class-lifetime.vala \
        objects/instance-comparison.vala \
        objects/interface_only.vala \
        objects/interface-async-base-access.vala \
diff --git a/tests/objects/gobject-class-lifetime.vala b/tests/objects/gobject-class-lifetime.vala
new file mode 100644 (file)
index 0000000..85de170
--- /dev/null
@@ -0,0 +1,38 @@
+int pos;
+
+class Foo : Object {
+       public Foo () {
+               assert (++pos == 3);
+               print ("%i. new\n", pos);
+       }
+
+       // GObjectClass.constructor()
+       construct {
+               assert (++pos == 1);
+               print ("%i. constructor\n", pos);
+       }
+
+       // GObjectClass.finalize()
+       ~Foo () {
+               assert (++pos == 5);
+               print ("%i. finalize\n", pos);
+       }
+
+       public override void constructed () {
+               assert (++pos == 2);
+               print ("%i. constructed\n", pos);
+       }
+
+       public override void dispose () {
+               assert (++pos == 4);
+               print ("%i. dispose\n", pos);
+       }
+}
+
+void main () {
+       pos = 0;
+       {
+               var foo = new Foo ();
+       }
+       assert (pos == 5);
+}
diff --git a/tests/objects/gtype-class-lifetime.vala b/tests/objects/gtype-class-lifetime.vala
new file mode 100644 (file)
index 0000000..0c891e7
--- /dev/null
@@ -0,0 +1,21 @@
+int pos;
+
+class Foo {
+       public Foo () {
+               assert (++pos == 1);
+               print ("%i. new\n", pos);
+       }
+
+       ~Foo () {
+               assert (++pos == 2);
+               print ("%i. finalize\n", pos);
+       }
+}
+
+void main () {
+       pos = 0;
+       {
+               var foo = new Foo ();
+       }
+       assert (pos == 2);
+}