]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
tests: Add runtime checks to signals tests and increase coverage
authorRico Tzschichholz <ricotz@ubuntu.com>
Thu, 25 Nov 2021 19:22:00 +0000 (20:22 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Mon, 29 Nov 2021 12:31:37 +0000 (13:31 +0100)
tests/objects/signals.vala

index 3e9764d9408106da9a39e4c3ffd3fea44123a8ad..9de25ac831410722ca2cfa5ae2a71035b27363da 100644 (file)
@@ -1,5 +1,7 @@
 using GLib;
 
+int counter;
+
 class Maman.Foo : Object {
        public signal void activated (bool b);
 
@@ -11,66 +13,81 @@ class Maman.Foo : Object {
 class Maman.Bar : Object {
        void activated (Foo foo, bool b) {
                if (b) {
-                       stdout.printf (" BAD");
+                       assert_not_reached ();
                } else {
                        stdout.printf (" 5");
+                       assert (++counter == 5);
                }
        }
 
        public void run () {
                stdout.printf (" 2");
+               assert (++counter == 2);
 
                var foo = new Foo ();
 
                foo.activated.connect ((foo, b) => {
                        if (b) {
                                stdout.printf (" 8");
+                               assert (++counter == 8);
                        } else {
                                stdout.printf (" 4");
+                               assert (++counter == 4);
                        }
                });
 
                foo.activated.connect (activated);
 
                stdout.printf (" 3");
+               assert (++counter == 3);
 
                foo.do_action (false);
 
                stdout.printf (" 6");
+               assert (++counter == 6);
 
                foo.activated.disconnect (activated);
 
                stdout.printf (" 7");
+               assert (++counter == 7);
 
                foo.do_action (true);
 
                stdout.printf (" 9");
+               assert (++counter == 9);
        }
 }
 
 class Maman.UserFoo : Object {
-       public signal void activated (int i1, int i2);
+       public signal void activated (int i1, int i2, out int i3);
 
        public void do_action () {
-               activated (6, -2);
+               int i;
+               activated (6, -2, out i);
+               assert (i == 4);
        }
 }
 
 class Maman.UserBar : Object {
        public void run () {
                stdout.printf (" 2");
+               assert (++counter == 2);
 
                var foo = new UserFoo ();
 
-               foo.activated.connect ((foo, i1, i2) => {
+               foo.activated.connect ((foo, i1, i2, out i3) => {
                        stdout.printf (" %d", i1 + i2);
+                       i3 = i1 + i2;
+                       assert (++counter == 4);
                });
 
                stdout.printf (" 3");
+               assert (++counter == 3);
 
                foo.do_action ();
 
                stdout.printf (" 5");
+               assert (++counter == 5);
        }
 }
 
@@ -82,29 +99,36 @@ class Maman.ReturnFoo : Object {
 class Maman.ReturnBar : Object {
        public void run () {
                stdout.printf (" 2");
+               assert (++counter == 2);
 
                var foo = new ReturnFoo ();
 
                foo.int_activated.connect ((foo, arg) => {
                        stdout.printf (" %d", arg);
+                       assert (++counter == 3);
                        return arg + 1;
                });
 
                foo.string_activated.connect ((foo, arg) => {
                        stdout.printf (arg);
+                       assert (++counter == 5);
                        return " 6";
                });
 
                stdout.printf (" %d", foo.int_activated (3));
+               assert (++counter == 4);
 
                stdout.printf (foo.string_activated (" 5"));
+               assert (++counter == 6);
 
                stdout.printf (" 7");
+               assert (++counter == 7);
        }
 }
 
 void main () {
        stdout.printf ("Signal Test: 1");
+       counter = 1;
 
        var bar = new Maman.Bar ();
        bar.run ();
@@ -112,17 +136,20 @@ void main () {
        stdout.printf (" 10\n");
 
        stdout.printf ("User Signal Test: 1");
+       counter = 1;
 
        var user_bar = new Maman.UserBar ();
        user_bar.run ();
 
        stdout.printf (" 6\n");
+       assert (++counter == 6);
 
        stdout.printf ("Signal Return Test: 1");
+       counter = 1;
 
        var return_bar = new Maman.ReturnBar ();
        return_bar.run ();
 
        stdout.printf (" 8\n");
+       assert (++counter == 8);
 }
-