[vala/0.48] tests/girwriter: Add tests for implicit parameters in virtual-method/callback



commit 4a2714134e1f054a51de78c4dd47b19b94e74a60
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Thu Apr 1 15:33:43 2021 +0200

    tests/girwriter: Add tests for implicit parameters in virtual-method/callback

 tests/girwriter/GirTest-1.0.gir-expected | 249 +++++++++++++++++++++++++++++++
 tests/girwriter/girtest.vala             |   7 +
 tests/girwriter/girtest.vapi-expected    |   3 +
 tests/girwriter/girtest.vapigen-expected |   3 +
 4 files changed, 262 insertions(+)
---
diff --git a/tests/girwriter/GirTest-1.0.gir-expected b/tests/girwriter/GirTest-1.0.gir-expected
index ca15d4c8e..ea89d7e55 100644
--- a/tests/girwriter/GirTest-1.0.gir-expected
+++ b/tests/girwriter/GirTest-1.0.gir-expected
@@ -848,6 +848,60 @@
                                </parameter>
                        </parameters>
                </virtual-method>
+               <method name="method_implicit_params" 
c:identifier="gir_test_object_test_method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" 
scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" 
scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </method>
+               <virtual-method name="method_implicit_params" invoker="method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" 
scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" 
scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </virtual-method>
                <property name="some-property" writable="1" construct="1">
                        <type name="utf8" c:type="gchar*"/>
                </property>
@@ -1111,6 +1165,35 @@
                                </parameters>
                        </callback>
                </field>
+               <field name="method_implicit_params">
+                       <callback name="method_implicit_params" c:type="method_implicit_params">
+                               <return-value transfer-ownership="full">
+                                       <type name="none" c:type="void"/>
+                               </return-value>
+                               <parameters>
+                                       <instance-parameter name="self" transfer-ownership="none">
+                                               <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
+                                       </instance-parameter>
+                                       <parameter name="param1" transfer-ownership="none">
+                                               <array length="1" c:type="gint*">
+                                                       <type name="gint" c:type="gint"/>
+                                               </array>
+                                       </parameter>
+                                       <parameter name="param1_length1" transfer-ownership="none">
+                                               <type name="gint" c:type="gint"/>
+                                       </parameter>
+                                       <parameter name="param2" transfer-ownership="none" closure="3" 
scope="notified" destroy="4">
+                                               <type name="GirTest.DelegateTest" 
c:type="GirTestDelegateTest"/>
+                                       </parameter>
+                                       <parameter name="param2_target" transfer-ownership="none" 
allow-none="1">
+                                               <type name="gpointer" c:type="void*"/>
+                                       </parameter>
+                                       <parameter name="param2_target_destroy_notify" 
transfer-ownership="none" scope="call">
+                                               <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                                       </parameter>
+                               </parameters>
+                       </callback>
+               </field>
                <field name="signal_with_default_handlder">
                        <callback name="object_test_signal_with_default_handlder" 
c:type="object_test_signal_with_default_handlder">
                                <return-value transfer-ownership="full">
@@ -1368,6 +1451,60 @@
                                </parameter>
                        </parameters>
                </virtual-method>
+               <method name="method_implicit_params" 
c:identifier="gir_test_abstract_object_test_method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.AbstractObjectTest" 
c:type="GirTestAbstractObjectTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" 
scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" 
scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </method>
+               <virtual-method name="method_implicit_params" invoker="method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.AbstractObjectTest" 
c:type="GirTestAbstractObjectTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" 
scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" 
scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </virtual-method>
        </class>
        <record name="AbstractObjectTestClass" c:type="GirTestAbstractObjectTestClass" 
glib:is-gtype-struct-for="AbstractObjectTest">
                <field name="parent_class" readable="0" private="1">
@@ -1529,6 +1666,35 @@
                                </parameters>
                        </callback>
                </field>
+               <field name="method_implicit_params">
+                       <callback name="method_implicit_params" c:type="method_implicit_params">
+                               <return-value transfer-ownership="full">
+                                       <type name="none" c:type="void"/>
+                               </return-value>
+                               <parameters>
+                                       <instance-parameter name="self" transfer-ownership="none">
+                                               <type name="GirTest.AbstractObjectTest" 
c:type="GirTestAbstractObjectTest*"/>
+                                       </instance-parameter>
+                                       <parameter name="param1" transfer-ownership="none">
+                                               <array length="1" c:type="gint*">
+                                                       <type name="gint" c:type="gint"/>
+                                               </array>
+                                       </parameter>
+                                       <parameter name="param1_length1" transfer-ownership="none">
+                                               <type name="gint" c:type="gint"/>
+                                       </parameter>
+                                       <parameter name="param2" transfer-ownership="none" closure="3" 
scope="notified" destroy="4">
+                                               <type name="GirTest.DelegateTest" 
c:type="GirTestDelegateTest"/>
+                                       </parameter>
+                                       <parameter name="param2_target" transfer-ownership="none" 
allow-none="1">
+                                               <type name="gpointer" c:type="void*"/>
+                                       </parameter>
+                                       <parameter name="param2_target_destroy_notify" 
transfer-ownership="none" scope="call">
+                                               <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                                       </parameter>
+                               </parameters>
+                       </callback>
+               </field>
        </record>
        <record name="AbstractObjectTestPrivate" c:type="GirTestAbstractObjectTestPrivate" disguised="1"/>
        <class name="ImplementionTest" c:type="GirTestImplementionTest" c:symbol-prefix="implemention_test" 
glib:type-name="GirTestImplementionTest" glib:get-type="gir_test_implemention_test_get_type" 
glib:type-struct="ImplementionTestClass" parent="GObject.Object">
@@ -2026,6 +2192,60 @@
                                </parameter>
                        </parameters>
                </virtual-method>
+               <method name="method_implicit_params" 
c:identifier="gir_test_interface_test_method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" 
scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" 
scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </method>
+               <virtual-method name="method_implicit_params" invoker="method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" 
scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" 
scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </virtual-method>
                <function name="static_method" c:identifier="gir_test_interface_test_static_method">
                        <return-value transfer-ownership="full">
                                <type name="none" c:type="void"/>
@@ -2255,6 +2475,35 @@
                                </parameters>
                        </callback>
                </field>
+               <field name="method_implicit_params">
+                       <callback name="method_implicit_params" c:type="method_implicit_params">
+                               <return-value transfer-ownership="full">
+                                       <type name="none" c:type="void"/>
+                               </return-value>
+                               <parameters>
+                                       <instance-parameter name="self" transfer-ownership="none">
+                                               <type name="GirTest.InterfaceTest" 
c:type="GirTestInterfaceTest*"/>
+                                       </instance-parameter>
+                                       <parameter name="param1" transfer-ownership="none">
+                                               <array length="1" c:type="gint*">
+                                                       <type name="gint" c:type="gint"/>
+                                               </array>
+                                       </parameter>
+                                       <parameter name="param1_length1" transfer-ownership="none">
+                                               <type name="gint" c:type="gint"/>
+                                       </parameter>
+                                       <parameter name="param2" transfer-ownership="none" closure="3" 
scope="notified" destroy="4">
+                                               <type name="GirTest.DelegateTest" 
c:type="GirTestDelegateTest"/>
+                                       </parameter>
+                                       <parameter name="param2_target" transfer-ownership="none" 
allow-none="1">
+                                               <type name="gpointer" c:type="void*"/>
+                                       </parameter>
+                                       <parameter name="param2_target_destroy_notify" 
transfer-ownership="none" scope="call">
+                                               <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                                       </parameter>
+                               </parameters>
+                       </callback>
+               </field>
                <field name="get_property">
                        <callback name="get_property" c:type="get_property">
                                <return-value transfer-ownership="none">
diff --git a/tests/girwriter/girtest.vala b/tests/girwriter/girtest.vala
index e39dabc59..a08020bd0 100644
--- a/tests/girwriter/girtest.vala
+++ b/tests/girwriter/girtest.vala
@@ -82,6 +82,8 @@ namespace GirTest {
                [NoWrapper]
                public virtual async void no_wrapper_method_async () {
                }
+               public virtual void method_implicit_params (int[] param1, owned DelegateTest param2) {
+               }
                [HasEmitter]
                public signal void some_signal (int param);
                public static void static_method () {
@@ -284,6 +286,9 @@ namespace GirTest {
                [NoWrapper]
                public virtual async void no_wrapper_method_async () {
                }
+
+               public virtual void method_implicit_params (int[] param1, owned DelegateTest param2) {
+               }
        }
 
        public abstract class AbstractObjectTest : Object {
@@ -305,6 +310,8 @@ namespace GirTest {
 
                [NoWrapper]
                public abstract async void no_wrapper_method_async ();
+
+               public abstract void method_implicit_params (int[] param1, owned DelegateTest param2);
        }
 
        public interface PrerequisiteTest : InterfaceTest {
diff --git a/tests/girwriter/girtest.vapi-expected b/tests/girwriter/girtest.vapi-expected
index aa02fb5cb..807080a33 100644
--- a/tests/girwriter/girtest.vapi-expected
+++ b/tests/girwriter/girtest.vapi-expected
@@ -7,6 +7,7 @@ namespace GirTest {
        [CCode (cheader_filename = "girtest.h")]
        public abstract class AbstractObjectTest : GLib.Object {
                protected AbstractObjectTest ();
+               public abstract void method_implicit_params (int[] param1, owned GirTest.DelegateTest param2);
                public abstract void method_int8_in (int8 param);
                public abstract void method_int8_inout (ref int8 param);
                public abstract void method_int8_out (out int8 param);
@@ -73,6 +74,7 @@ namespace GirTest {
                public int[] int_in_int_in_array_return (int param1, int param2);
                public ObjectTest.may_fail (int param) throws GirTest.ErrorTest;
                public void method ();
+               public virtual void method_implicit_params (int[] param1, owned GirTest.DelegateTest param2);
                public virtual void method_throw () throws GirTest.ErrorTest;
                public void method_valist (int param, va_list vargs);
                public void method_varargs (int param, ...);
@@ -126,6 +128,7 @@ namespace GirTest {
        public interface InterfaceTest : GLib.Object {
                public virtual async void coroutine_async ();
                public virtual void int8_in (int8 param);
+               public virtual void method_implicit_params (int[] param1, owned GirTest.DelegateTest param2);
                public virtual void method_valist (int param, va_list vargs);
                [NoWrapper]
                public virtual void no_wrapper_method ();
diff --git a/tests/girwriter/girtest.vapigen-expected b/tests/girwriter/girtest.vapigen-expected
index b03b374e7..35a839f72 100644
--- a/tests/girwriter/girtest.vapigen-expected
+++ b/tests/girwriter/girtest.vapigen-expected
@@ -8,6 +8,7 @@ namespace GirTest {
        public abstract class AbstractObjectTest : GLib.Object {
                [CCode (has_construct_function = false)]
                protected AbstractObjectTest ();
+               public abstract void method_implicit_params ([CCode (array_length_cname = "param1_length1", 
array_length_pos = 1.5)] int[] param1, owned GirTest.DelegateTest param2);
                public abstract void method_int8_in (int8 param);
                public abstract void method_int8_inout (ref int8 param);
                public abstract void method_int8_out (out int8 param);
@@ -102,6 +103,7 @@ namespace GirTest {
                [CCode (cname = "gir_test_object_test_new_may_fail", has_construct_function = false)]
                public ObjectTest.may_fail (int param) throws GirTest.ErrorTest;
                public void method ();
+               public virtual void method_implicit_params ([CCode (array_length_cname = "param1_length1", 
array_length_pos = 1.5)] int[] param1, owned GirTest.DelegateTest param2);
                public virtual void method_throw () throws GirTest.ErrorTest;
                public void method_valist (int param, va_list vargs);
                public void method_varargs (int param, ...);
@@ -159,6 +161,7 @@ namespace GirTest {
                public virtual void coroutine_finish (GLib.AsyncResult _res_);
                public virtual int get_property ();
                public virtual void int8_in (int8 param);
+               public virtual void method_implicit_params ([CCode (array_length_cname = "param1_length1", 
array_length_pos = 1.5)] int[] param1, owned GirTest.DelegateTest param2);
                [NoWrapper]
                public virtual void no_wrapper_method ();
                [NoWrapper]


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]