]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
tests: Make lambda tests fatal and add some more cases
authorRico Tzschichholz <ricotz@ubuntu.com>
Wed, 22 Nov 2017 20:49:11 +0000 (21:49 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Wed, 22 Nov 2017 20:50:42 +0000 (21:50 +0100)
tests/methods/lambda.vala

index d533f688bf5715bea4a83ee5810a8cd11bea2cc9..c659cb65b125666867e78b1a013d2e36ab2fb823 100644 (file)
@@ -1,20 +1,31 @@
 using GLib;
 
 static delegate int Maman.ActionCallback (int i);
+static delegate void Maman.ActionOutCallback (out int i);
+static delegate void Maman.ActionRefCallback (ref int i);
 
 class Maman.Bar : Object {
        static int do_action (ActionCallback cb) {
                return cb (1);
        }
 
+       static int do_out_action (ActionOutCallback cb) {
+               int i;
+               cb (out i);
+               return i;
+       }
+
+       static int do_ref_action (ActionRefCallback cb) {
+               int i = 1;
+               cb (ref i);
+               return i;
+       }
+
        public static int main () {
-               stdout.printf ("Lambda Test: 1");
-               
-               stdout.printf (" %d", do_action (i => i * 2));
-               
-               stdout.printf (" %d", do_action (i => { return i * 3; }));
-               
-               stdout.printf (" 4\n");
+               assert (do_action (i => i * 2) == 2);
+               assert (do_action (i => { return i * 3; }) == 3);
+               assert (do_out_action ((out i) => { i = 4; }) == 4);
+               assert (do_ref_action ((ref i) => { i += 4; }) == 5);
                
                return 0;
        }