summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-04-01 15:33:43 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2021-04-01 16:00:00 +0200
commit61dd28834abb0e3b90b6978ca5221dfecd5db415 (patch)
tree7c7d086bb9ff738e24c78f152a60e03325e0678b
parent5aed64231cf86c7346442ebffefdea7903ccad99 (diff)
downloadvala-61dd28834abb0e3b90b6978ca5221dfecd5db415.tar.gz
tests/girwriter: Add tests for implicit parameters in virtual-method/callback
-rw-r--r--tests/girwriter/GirTest-1.0.gir-expected249
-rw-r--r--tests/girwriter/girtest.vala7
-rw-r--r--tests/girwriter/girtest.vapi-expected3
-rw-r--r--tests/girwriter/girtest.vapigen-expected3
4 files changed, 262 insertions, 0 deletions
diff --git a/tests/girwriter/GirTest-1.0.gir-expected b/tests/girwriter/GirTest-1.0.gir-expected
index 845293d78..d2e83c8fd 100644
--- a/tests/girwriter/GirTest-1.0.gir-expected
+++ b/tests/girwriter/GirTest-1.0.gir-expected
@@ -877,6 +877,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>
@@ -1155,6 +1209,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">
@@ -1438,6 +1521,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">
@@ -1614,6 +1751,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">
@@ -2131,6 +2297,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"/>
@@ -2372,6 +2592,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 092b88cd4..61f0f4724 100644
--- a/tests/girwriter/girtest.vala
+++ b/tests/girwriter/girtest.vala
@@ -87,6 +87,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 () {
@@ -298,6 +300,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 {
@@ -321,6 +326,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 e1d7a4f69..7ed0bfe51 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 cb0724d19..a4de2304d 100644
--- a/tests/girwriter/girtest.vapigen-expected
+++ b/tests/girwriter/girtest.vapigen-expected
@@ -9,6 +9,7 @@ namespace GirTest {
[CCode (has_construct_function = false)]
protected AbstractObjectTest ();
public abstract void internal_method (int8 param);
+ 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);
@@ -105,6 +106,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, ...);
@@ -163,6 +165,7 @@ namespace GirTest {
public virtual int get_property ();
public virtual void int8_in (int8 param);
public virtual void internal_method ();
+ 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]